## NPU SystemService (compatible with both TRIV1 and TRIV2) [![Version](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/version.svg)](/CHANGES) [![Code Coverage](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/codecoverage.svg)](http://nnsuiteci.mooo.com/NPU_SystemService/ci/gcov_html/index.html) [![Unit Test](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/unittest.svg)](http://nnsuiteci.mooo.com/NPU_SystemService/ci/unittest_result/) [![SAM Score](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/samscore.svg)](https://code.sec.samsung.net/architecturemanager/app/sam/NPU_SystemService/npu-engine/latest/overview) [![Issues](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/issues.svg)](https://github.sec.samsung.net/AIP/NPU_SystemService/issues) [![Pull Requests](https://github.sec.samsung.net/nnsuite/n2s2/blob/master/AIP_NPU_SystemService/badges/pulls.svg)](https://github.sec.samsung.net/AIP/NPU_SystemService/pulls) ## Directory Structure ``` NPU_SystemService/ Root directory |-- src/ | |-- core/ Source files for NPU Engine | |-- host/ Source files for Host Lib (not used currently) |-- include/ | |-- common/ Definitions for Common Data | |-- host/ Definitions for User APIs |-- tests/ | |-- unittests Source files for Unit Tests | |-- apptests Source files for App Tests | `-- utils Source files for Test Utils |-- packaging/ Tizen Packaging Files (i.e., FastModel Simulator) |-- debian/ Debian Packaging Files (i.e., Ubuntu 16.04) `-- doc/ Documentation ``` ## Getting Started - How to setup your own FastModel enviornment (in Ubuntu 16.04 running on your host PC): press [here](https://github.sec.samsung.net/AIP/NPU_bootstrap/blob/master/README.md) - How to build the NPU Engine library (FastModel or Ubuntu): press [here](/doc/how_to_build.md) - How to test NPU-DDK packages on FastModel: press [here](/doc/how_to_test.md) - How to use the NPU Engine library in user apps: press [here](/doc/how_to_use.md) - How to debug your apps using the NPU Engine library: press [here](/doc/how_to_debug.md) - Usage examples using the NPU Engine library: press [here](/doc/usage_examples.md) - NPU Engine-enabled bootable images for an FPGA board: press [here](https://github.sec.samsung.net/AIP/meta-trinity/blob/master/README.md) ## Quick-start Guide using Docker - Docker images (xenial, bionic) images from [Artifactory](https://art.sec.samsung.net/artifactory/webapp/#/home) - Trinity NPU simulation by [libmrpsim](https://github.sec.samsung.net/AIP/SIM_TrinityVision2/tree/master/mRPsim) ``` $ sudo apt install docker.io $ sudo docker pull art.sec.samsung.net/aip_docker/n2s2_docker/xenial $ sudo docker run -i -t art.sec.samsung.net/aip_docker/n2s2_docker/xenial /bin/bash root# ls /opt/trinity/share/npu-engine/testdata/npubinfmt_v3/MOBILENET_V1 input_fmap_0.bin model.tvn output_fmap_0.bin root# apptest_tvn_triv2 /opt/trinity/share/npu-engine/testdata/npubinfmt_v3/MOBILENET_V1 >>> Initializaing SPM with zero. It can be time-consuming... >>> Initializaing SPM with zero. It can be time-consuming... [Core Name: NPCore0], [File Name: /opt/trinity/share/mRPsim/decoder-triv2-emul.bin], [Ver: 1] Section(.SRP.FLIH) Base (22000000) Size(36) ... [APPTEST] apptest_tvn_triv2: PASSED root# exit ``` ## Related Projects - [AIP/NPU_Linux-kernel](https://github.sec.samsung.net/AIP/NPU_Linux-kernel): Linux kernel image and drivers (on FastModel simulator) - [AIP/NPU_bootstrap](https://github.sec.samsung.net/AIP/NPU_bootstrap): Bootstrap packages for FastModel simulator - [AIP/NPU_SystemService_Testdata](https://github.sec.samsung.net/AIP/NPU_SystemService_Testdata): Testdata for verification (NPU models and reference input/output) - [AIP/NPU_SystemService_Emulator](https://github.sec.samsung.net/AIP/NPU_SystemService_Emulator): Cpp-based emulator to precheck NPU inferences in Ubuntu env. - [AIP/meta-trinity](https://github.sec.samsung.net/AIP/meta-trinity): Bitbake recipes for an FPGA board (ZCU102-ZYNQMP) - [AIP/n2s2_docker](https://github.sec.samsung.net/AIP/n2s2_docker): Docker images for npu-engine users ## SPIN Repository (to download official packages) - How to create your SPIN account: press [here](https://code.sec.samsung.net/confluence/display/NEWCOMM/SPIN+Request+Process) - Tizen: http://10.113.136.32/download_trbs/snapshots/devel/tizen-6.0-ai/latest/repos/Tizen_Unified_standard - Ubuntu (16.04): http://10.113.136.32/download_trbs/newlive/devel:/Tizen:/6.0:/AI:/UbuntuTools/Ubuntu_16.04 ## Additional Notes - We don't officially support Ubuntu 18.04 as the FastModel Simulator does not fully support it. - While TRIV1 is compatible with one of two binary formats (npubinfmt v1 and v2), TRIV2 requires npubinfmt v3 only. - To use the NPU Engine library, it's mandatory to access the SPIN repository (`10.113.136.32`). Please read the related document carefully. ## Reference Links - Software Stack: http://suprem.sec.samsung.net/confluence/display/ODLC/NPU+OS+Stack - CI Server: http://nnsuiteci.mooo.com/NPU_SystemService/ci/taos/ - Code Coverage: http://nnsuiteci.mooo.com/NPU_SystemService/ci/gcov_html/ - Doxygen manual: http://nnsuiteci.mooo.com/NPU_SystemService/latex/book.pdf