SoConnect (SC) is a benchmark-oriented framework for fastly developping DPDK application, which integrate DOCA and CUDA support, one can use this framework for rapidly developping your own benchmark that can be tested on either x86 server or ARM SoC.
-
Install DPDK and setup DPDK environment (e.g. hugepage, etc.)
-
(Optional) Install and setup DOCA and CUDA environment
-
Install other dependencies
sudo apt-get install libgmp3-dev
python3 -m pip install meson
python3 -m pip install ninja
- Change the
app
withinmeson.build
to build your desired application, full application list can be found undersrc/apps/.app_list
;
- Run the following command to build your application
meson build && cd build
ninja
- Change the configurations under
conf
, these configuration files include:
File | Description |
---|---|
dpdk.conf | Configuration of DPDK including cores, port and queue, etc. |
doca.conf | Configuration of DOCA (if enabled) |
app/*.conf | Configuration of each applications |
- To execute the application binary, run (p.s. assume
echo_client
was built):
sudo ./echo_client
Assume your new benchmark application's name is newapp
:
-
Add Configuration File: add custom configuration file
newapp.conf
toconf/apps
-
Add Headers:
- Duplicate
include/apps/sc_template
underinclude/apps
asinclude/apps/sc_newapp
; - Change filename of
include/apps/sc_newapp/template.hpp
toinclude/apps/sc_newapp/newapp.hpp
; - Change the macro
_SC_TEMPLATE_H_
withininclude/apps/sc_newapp/newapp.hpp
to_SC_NEWAPP_
;
- Duplicate
-
Add Headers:
- Duplicate
src/apps/sc_template
undersrc/apps
assrc/apps/sc_newapp
; - Change filename of
src/apps/sc_newapp/template.cpp
toinclude/apps/sc_newapp/newapp.cpp
; - Change the macro
include/apps/sc_newapp/newapp.cpp
to includesc_newapp/newapp.h
instead ofsc_template/template.h
;
- Duplicate
-
Add
newapp
intosrc/apps/.app_list
;TODO: Develop a automatical script to finish above 1~4's logic
-
Start develop your benchmark's logic;
-
Change the selected application inside
meson.build
to build your benchmark