From fe75716263f25679767d2b1fd32763384ea92efe Mon Sep 17 00:00:00 2001 From: Dongju Chae Date: Tue, 6 Jul 2021 12:01:37 +0900 Subject: [PATCH] [Plugins] Create sub-directory for plugins This patch creates sub-directory for plugins such as nnstreamer, npumgr, and so on. The exsiting codes will be moved to there. Signed-off-by: Dongju Chae --- README.md | 3 ++ meson.build | 1 + meson_options.txt | 3 +- packaging/npu-engine.spec | 53 +++++++++++++++++----- plugins/meson.build | 10 ++++ plugins/nnstreamer/meson.build | 1 + .../npumgr/common}/npumgr_common.h | 5 +- .../apptests => plugins}/npumgr/dummy/meson.build | 1 + {tests/apptests => plugins}/npumgr/dummy/npumgr.cc | 0 .../npumgr/dummy/npumgr_api.cc | 2 +- .../apptests => plugins}/npumgr/dummy/npumgr_api.h | 0 .../npumgr/dummy/npumgr_device.cc | 0 .../npumgr/dummy/npumgr_device.h | 0 .../npumgr/dummy/npumgr_triv2.cc | 0 .../npumgr/dummy/npumgr_triv2.h | 0 .../npumgr/dummy/sr.odl.NPUManager.conf | 0 plugins/npumgr/meson.build | 11 +++++ plugins/npumgr/tests/meson.build | 9 ++++ .../npumgr => plugins/npumgr/tests}/npumgr_test.cc | 2 +- tests/apptests/meson.build | 5 -- tests/apptests/npumgr/meson.build | 19 -------- 21 files changed, 84 insertions(+), 41 deletions(-) create mode 100644 plugins/meson.build create mode 100644 plugins/nnstreamer/meson.build rename {tests/apptests/npumgr => plugins/npumgr/common}/npumgr_common.h (99%) rename {tests/apptests => plugins}/npumgr/dummy/meson.build (96%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr.cc (100%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_api.cc (99%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_api.h (100%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_device.cc (100%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_device.h (100%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_triv2.cc (100%) rename {tests/apptests => plugins}/npumgr/dummy/npumgr_triv2.h (100%) rename {tests/apptests => plugins}/npumgr/dummy/sr.odl.NPUManager.conf (100%) create mode 100644 plugins/npumgr/meson.build create mode 100644 plugins/npumgr/tests/meson.build rename {tests/apptests/npumgr => plugins/npumgr/tests}/npumgr_test.cc (99%) delete mode 100644 tests/apptests/npumgr/meson.build diff --git a/README.md b/README.md index aa30f98..16b2aba 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ NPU_SystemService/ Root directory | |-- unittests Source files for Unit Tests | |-- apptests Source files for App Tests | `-- utils Source files for Test Utils +|-- plugins/ +| |-- npumgr Reference plugin codes for NPU Manager +| `-- nnstreamer Reference plugin codes for NNStreamer |-- packaging/ Tizen Packaging Files (i.e., FastModel or FPGA) |-- debian/ Debian Packaging Files (i.e., Ubuntu 18.04) `-- docs/ Documentation using hotdoc diff --git a/meson.build b/meson.build index 0409751..ee19154 100644 --- a/meson.build +++ b/meson.build @@ -138,6 +138,7 @@ endif subdir('src') subdir('tests') subdir('utils') +subdir('plugins') # Set configuration to install .ini ne_install_conf = configuration_data() diff --git a/meson_options.txt b/meson_options.txt index d496c97..18b537b 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -9,5 +9,6 @@ option('target_platform', type : 'combo', choices : ['debian', 'tizen', 'fpga'], option('enable_npu_emul', type : 'boolean', value : false) option('enable_data_manip', type : 'boolean', value : false) option('enable_buffering', type : 'boolean', value : false) -option('enable_vd_npumgr', type : 'boolean', value : false) +option('enable_plugin_npumgr', type : 'boolean', value : false) +option('enable_plugin_nns', type : 'boolean', value : false) option('kernel_hdr_dir', type : 'string', value : '') diff --git a/packaging/npu-engine.spec b/packaging/npu-engine.spec index a87ba5a..31d9815 100644 --- a/packaging/npu-engine.spec +++ b/packaging/npu-engine.spec @@ -27,23 +27,27 @@ BuildRequires: fuse-devel BuildRequires: gtest-devel BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(tinyxml2) - -BuildRequires: pkgconfig(dlog) - -BuildRequires: glib2-devel +BuildRequires: pkgconfig(dlog) %if 0%{?npu_emul} -BuildRequires: libmrpsim-devel +BuildRequires: libmrpsim-devel %define enable_npu_emul -Denable_npu_emul=true %else %define enable_npu_emul -Denable_npu_emul=false %endif -%if 0%{?vd_npumgr} -BuildRequires: tizen-npumanager-devel -%define enable_vd_npumgr -Denable_vd_npumgr=true +%if 0%{?npumgr_plugin} +BuildRequires: glib2-devel +%define enable_plugin_npumgr -Denable_plugin_npumgr=true +%else +%define enable_plugin_npumgr -Denable_plugin_npumgr=false +%endif + +%if 0%{?nns_plugin} +BuildRequires: nnstreamer-devel +%define enable_plugin_nns -Denable_plugin_nns=true %else -%define enable_vd_npumgr -Denable_vd_npumgr=false +%define enable_plugin_nns -Denable_plugin_nns=false %endif %global debug_package %{nil} @@ -61,7 +65,7 @@ meson --buildtype=plain --bindir=%{neexampledir} --prefix=%{_prefix} \ --libdir=%{_libdir} --includedir=%{_includedir} \ --datadir=%{_datadir} --sysconfdir=%{_sysconfdir} \ -Dtarget_platform=tizen -Denable_data_manip=true \ - %{enable_npu_emul} %{enable_vd_npumgr} \ + %{enable_npu_emul} %{enable_plugin_npumgr} %{enable_plugin_nns} \ build ninja -C build %{?_smp_mflags} @@ -99,8 +103,6 @@ Example application package for NPU Engine, including UnitTests and AppTest with %defattr(-,root,root,-) %{neexampledir}/unittests/* %{neexampledir}/apptests/* -%{_libdir}/libnpumgr*.so -%{_datadir}/dbus-1/system.d/* %package utils Requires: npu-engine = %{version}-%{release} @@ -112,6 +114,33 @@ This probides utility packages for NPU Engine, including metadata extraction of %defattr(-,root,root,-) %{neexampledir}/utils/* +%if 0%{?npumgr_plugin} +%package -n npumgr-srnpu +Summary: Tizen NPU Manager plugin for SR-NPU device family +Requires: npu-engine +%description -n npumgr-srnpu +Reference implementation of Tizen NPU Manager TRIV2 plugin, including a dummy NPU Manager module. +%files -n npumgr-srnpu +%manifest npu-engine.manifest +%{neexampledir}/plugins/npumgr/* +%{_libdir}/libnpumgr*.so +%{_datadir}/dbus-1/system.d/* +%endif + +%if 0%{?nns_plugin} +%package -n nnstreamer-srnpu +Summary: NNStreamer subplugin for SR-NPU device family +Requires: npu-engine +Requires: nnstreamer +%description -n nnstreamer-srnpu +Reference implementation of NNStreamer filter subplugin for SR-NPU (for now, TRIV2 only). +%files -n nnstreamer-srnpu +%manifest npu-engine.manifest +%{neexampledir}/plugins/nnstreamer/* +%{_prefix}/lib/nnstreamer/filters/libnnstreamer_filter_srnpu.so +%{_prefix}/lib/nnstreamer/unittest/nnstreamer_filter_srnpu/* +%endif + %changelog * Fri Jul 02 2021 Dongju Chae - npu-engine v2.3.12 release; See ./CHANGES for details diff --git a/plugins/meson.build b/plugins/meson.build new file mode 100644 index 0000000..3fc9f03 --- /dev/null +++ b/plugins/meson.build @@ -0,0 +1,10 @@ +if get_option('enable_plugin_nns') + subdir('nnstreamer') +endif +if get_option('enable_plugin_npumgr') + if target_platform == 'tizen' + subdir('npumgr') + else + error('npumgr is available only on Tizen env.') + endif +endif diff --git a/plugins/nnstreamer/meson.build b/plugins/nnstreamer/meson.build new file mode 100644 index 0000000..c97c64c --- /dev/null +++ b/plugins/nnstreamer/meson.build @@ -0,0 +1 @@ +# Placeholder of NNStreamer TRIV2 subplugin diff --git a/tests/apptests/npumgr/npumgr_common.h b/plugins/npumgr/common/npumgr_common.h similarity index 99% rename from tests/apptests/npumgr/npumgr_common.h rename to plugins/npumgr/common/npumgr_common.h index aa7708a..8998b5c 100644 --- a/tests/apptests/npumgr/npumgr_common.h +++ b/plugins/npumgr/common/npumgr_common.h @@ -20,14 +20,15 @@ #ifndef PAGE_SHIFT #define PAGE_SHIFT (12) #endif -#ifndef PAGE_SIZE +#ifndef PAGE_SIZE #define PAGE_SIZE (1UL << PAGE_SHIFT) #endif -#ifndef PFN_UP +#ifndef PFN_UP #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT) #endif + #define ALIGNED_SIZE(x) (PFN_UP (x) * PAGE_SIZE) #endif diff --git a/tests/apptests/npumgr/dummy/meson.build b/plugins/npumgr/dummy/meson.build similarity index 96% rename from tests/apptests/npumgr/dummy/meson.build rename to plugins/npumgr/dummy/meson.build index acad147..e68244d 100644 --- a/tests/apptests/npumgr/dummy/meson.build +++ b/plugins/npumgr/dummy/meson.build @@ -14,6 +14,7 @@ if gmodule_dep.found() and giounix_dep.found() npumgr_lib = shared_library ('npumgr', 'npumgr_api.cc', + include_directories : [npumgr_common_inc], dependencies: npumgr_deps, build_rpath : ne_libdir, install : true, diff --git a/tests/apptests/npumgr/dummy/npumgr.cc b/plugins/npumgr/dummy/npumgr.cc similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr.cc rename to plugins/npumgr/dummy/npumgr.cc diff --git a/tests/apptests/npumgr/dummy/npumgr_api.cc b/plugins/npumgr/dummy/npumgr_api.cc similarity index 99% rename from tests/apptests/npumgr/dummy/npumgr_api.cc rename to plugins/npumgr/dummy/npumgr_api.cc index a37d139..28dce58 100644 --- a/tests/apptests/npumgr/dummy/npumgr_api.cc +++ b/plugins/npumgr/dummy/npumgr_api.cc @@ -12,7 +12,7 @@ */ #include "npumgr_api.h" -#include "../npumgr_common.h" +#include #include #include diff --git a/tests/apptests/npumgr/dummy/npumgr_api.h b/plugins/npumgr/dummy/npumgr_api.h similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr_api.h rename to plugins/npumgr/dummy/npumgr_api.h diff --git a/tests/apptests/npumgr/dummy/npumgr_device.cc b/plugins/npumgr/dummy/npumgr_device.cc similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr_device.cc rename to plugins/npumgr/dummy/npumgr_device.cc diff --git a/tests/apptests/npumgr/dummy/npumgr_device.h b/plugins/npumgr/dummy/npumgr_device.h similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr_device.h rename to plugins/npumgr/dummy/npumgr_device.h diff --git a/tests/apptests/npumgr/dummy/npumgr_triv2.cc b/plugins/npumgr/dummy/npumgr_triv2.cc similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr_triv2.cc rename to plugins/npumgr/dummy/npumgr_triv2.cc diff --git a/tests/apptests/npumgr/dummy/npumgr_triv2.h b/plugins/npumgr/dummy/npumgr_triv2.h similarity index 100% rename from tests/apptests/npumgr/dummy/npumgr_triv2.h rename to plugins/npumgr/dummy/npumgr_triv2.h diff --git a/tests/apptests/npumgr/dummy/sr.odl.NPUManager.conf b/plugins/npumgr/dummy/sr.odl.NPUManager.conf similarity index 100% rename from tests/apptests/npumgr/dummy/sr.odl.NPUManager.conf rename to plugins/npumgr/dummy/sr.odl.NPUManager.conf diff --git a/plugins/npumgr/meson.build b/plugins/npumgr/meson.build new file mode 100644 index 0000000..8900e94 --- /dev/null +++ b/plugins/npumgr/meson.build @@ -0,0 +1,11 @@ +glib_dep = dependency('glib-2.0', required: false) +if glib_dep.found() + npumgr_common_inc = include_directories('common') + npumgr_dep = disabler() + + # dummy npu manager + subdir('dummy') + if npumgr_dep.found() + subdir('tests') + endif +endif diff --git a/plugins/npumgr/tests/meson.build b/plugins/npumgr/tests/meson.build new file mode 100644 index 0000000..918a998 --- /dev/null +++ b/plugins/npumgr/tests/meson.build @@ -0,0 +1,9 @@ +# npu manager test program +executable ('apptest_npumgr', + 'npumgr_test.cc', + include_directories : [npumgr_common_inc], + dependencies : [glib_dep, ne_test_utils_common_dep, npumgr_dep], + install : true, + install_rpath : ne_libdir, + install_dir : join_paths(ne_bindir, 'plugins', 'npumgr') +) diff --git a/tests/apptests/npumgr/npumgr_test.cc b/plugins/npumgr/tests/npumgr_test.cc similarity index 99% rename from tests/apptests/npumgr/npumgr_test.cc rename to plugins/npumgr/tests/npumgr_test.cc index 9f8f670..682abd6 100644 --- a/tests/apptests/npumgr/npumgr_test.cc +++ b/plugins/npumgr/tests/npumgr_test.cc @@ -20,7 +20,7 @@ #include #include -#include "npumgr_common.h" +#include using namespace std; diff --git a/tests/apptests/meson.build b/tests/apptests/meson.build index 7869a70..36b4fda 100644 --- a/tests/apptests/meson.build +++ b/tests/apptests/meson.build @@ -136,8 +136,3 @@ executable ('apptest_tvn_triv2_interleave', install_rpath : ne_libdir, install_dir : join_paths(ne_bindir, 'apptests') ) - -# npumgr is available on tizen env. -if target_platform == 'tizen' - subdir('npumgr') -endif diff --git a/tests/apptests/npumgr/meson.build b/tests/apptests/npumgr/meson.build deleted file mode 100644 index b97ad88..0000000 --- a/tests/apptests/npumgr/meson.build +++ /dev/null @@ -1,19 +0,0 @@ -glib_dep = dependency('glib-2.0', required: false) -if glib_dep.found() - if get_option('enable_vd_npumgr') - # vd npu manager - npumgr_dep = dependency('tizen-npumanager') - else - # dummy npu manager - subdir('dummy') - endif - - # npu manager test program - executable ('apptest_npumgr', - 'npumgr_test.cc', - dependencies : [glib_dep, ne_test_utils_common_dep, npumgr_dep], - install : true, - install_rpath : ne_libdir, - install_dir : join_paths(ne_bindir, 'apptests', 'npumgr') - ) -endif -- 2.7.4