使用 C++ 进行 NPU 加速
本教程提供了使用 SyNAP C++ 框架为 Synaptics Astra 构建嵌入式 AI 应用程序的快速指南。它涵盖了在您的主机上设置与 Synaptics Astra™ Machina™ 环境相匹配的环境,这样您就可以轻松构建在 Yocto Linux 开发板上运行的 C++ 应用程序。该设置包括所有必要的库和依赖项,如 SyNAP 框架、CMake 等,以确保开发和部署顺利进行。
您可以构建任何 C++ 应用程序。在本教程中,您将学习构建 synap_cli 应用程序。
关于 SyNAP 框架
SyNAP 框架提供了在 Synaptics Astra 硬件上执行预编译神经网络的方法,以及对 YOLOv5 和 YOLOv8 等流行模型执行各种预处理和后处理功能。推理可以在各种硬件单元上进行 - NPU、GPU、CPU 或它们的组合,具体取决于模型的编译方式。
如果您想构建或修改整个 SyNAP 框架,这允许您修改预处理或后处理代码,请按照 修改 SyNAP 框架 教程。
步骤 1:设置工具链环境
首先,在您的开发环境中解压并设置工具链。在您的主机开发机器上,从这里下载适用于您的特定 SL16xx 芯片的预构建工具链。
在本教程中,您将使用 SL1680 芯片和预构建镜像,因此请下载 SL1680 的预构建工具链。下载后,使用 bash 命令执行它。
bash poky-glibc-x86_64-astra-media-cortexa73-sl1680-toolchain-4.0.17.sh
工具链环境包含了在 Yocto Linux 上编译 C++ 应用程序所需的一切。要激活环境:
. /opt/poky/4.0.17/environment-setup-cortexa73-poky-linux
随着未来版本的发布,工具链文件名可能会改变,因此请相应地调整上述命令。
要检查环境是否激活,在 Ubuntu 终端中使用以下命令:
echo $CC
步骤 2:创建简单的 C++ 项目
由于在本教程中您要构建 synap_cli 应用程序,您需要 synap_cli 的源代码和用于构建应用程序的 CMake 文件。
您可以下载 SyNAP 框架 并检出最新的分支版本(这里我们使用 v1.3.0)。您只需要 synap-framework/app 中的 synap_cli 文件夹。
git clone https://github.com/synaptics-astra/synap-framework.git
git fetch --all
git checkout v1.3.0
如果您正在构建不需要 SyNAP 的自己的 C++ 应用程序,可以跳过步骤 2。您需要为您的项目创建一个 CMakeLists.txt 文件。这个 CMakeLists.txt 应该引用代码所需的所有库,包括工具链提供的库(例如,synap_app、synap_img 等)。
步骤 3:编译 C++ 应用程序
一旦您有了 SyNAP 的源代码,导航到 synap-framework/app/synap_cli 文件夹,并在 CMakeLists.txt 文件中的目标链接中添加 synap_img 库。
target_link_libraries(${name} PRIVATE synap_app synap_preprocess synapnb synap_postprocess synap_img)
设置好工具链和项目后,创建一个 build 文件夹并编译应用程序:
cd app/synap_cli/
mkdir build && cd build
cmake .. -G Ninja
ninja