A brief guide to Acuitylite

Acuitylite is an end-to-end neural-network deployment tool for embedded systems.
Acuitylite support converting caffe/darknet/onnx/tensorflow/tflite models to TIM-VX/TFLite cases. In addition, Acuitylite support asymmetric uint8 and symmetric int8 quantization.

Attention: We have introduced some important changes and updated the APIs that are not compatible with the version before Acuitylite6.21.0(include). Please read the document and demos carefully.

System Requirement

  • OS:
    Ubuntu Linux 20.04 LTS 64-bit(python3.8)
    Ubuntu Linux 22.04 LTS 64-bit(python3.10)

Install

1. build the recommended docker image and run a container
2. pip install acuitylite --no-deps

Document

Reference: https://verisilicon.github.io/acuitylite

Framework Support

Tips: You can export a TFLite app and using tflite-vx-delegate to run on TIM-VX if the exported TIM-VX app does not meet your requirements.

How to generate nbg and TIM-VX case

When you need generate TIM-VX case and nbg, please set the export() function’s param pack_nbg_unify=True. Such as: TimVxExporter(model).export(pack_nbg_unify=True), it will use our default SDK. If you want to use your own SDK and licence, please set the param of export() viv_sdk, licence. Such as: TimVxExporter(model).export(pack_nbg_unify=True, viv_sdk=your_sdk_path, licence=path_of_licence_txt)

Attention: your sdk directory structure must strictly follow the directory structure of acuitylib/vsi_sdk!!! your sdk need satisfy the structure of “your_sdk_path/build/install”, “your_sdk_path/prebuilt-sdk/x86_64_linux”, otherwise the path may have problems. And the licence content is the device target which you want to use.

How to run TIM-VX case

The exported TIM-VX case supports both make and cmake.
Please set environment for build and run case:

  • TIM_VX_DIR=/path/to/tim-vx/build/install

  • VIVANTE_SDK_DIR=/path/to/tim-vx/prebuilt-sdk/x86_64_linux

  • LD_LIBRARY_PATH=$TIM_VX_DIR/lib:$VIVANTE_SDK_DIR/lib

Attention: The TIM_VX_DIR path should include lib and header files of TIM-VX. You can refer TIM-VX to build TIM-VX.

How to generate nbg by Ovxlib

When you need generate nbg, please use OvxlibExporter class and set the export() function’s param pack_nbg_only=True. Such as: OvxlibExporter(model).export(pack_nbg_only=True), it will use our default SDK. If you want to use your own SDK and licence, please set the “viv_sdk” and “licence” params of export() function. Such as: OvxlibExporter(model).export(pack_nbg_only=True, viv_sdk=your_sdk_path, licence=path_of_licence_txt)

Attention: your sdk directory structure must strictly follow the directory structure of acuitylib/vsi_sdk!!! your sdk need satisfy the structure of “your_sdk_path/prebuilt-sdk/x86_64_linux”, otherwise the path may have problems. The content of licence is the device target which you want to use.

Support

Create issue on github or email to ML_Support@verisilicon.com