intel NCS2计算棒是由openvino支持的,但是目前openvino只有2022.3.1版本支持NCS2了,之后的版本都不支持计算棒了。
本文记录一下再NVIDIA Jetson Nano上用openvino实现NCS2的调用。
通过交叉编译openvino samples,通过benchmark app实现模型推理。
环境配置
-
openvino归档文件,可以再这个链接上下载
然后解压
wget https://storage.openvinotoolkit.org/repositories/openvino/packages/2022.3.1/linux/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64.tgz tar -zxvf l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64.tgz
-
安装openvino依赖
cd l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/install_dependencies sudo -E ./install_openvino_dependencies.sh
-
确保一个python 3.7或者3.9版本
-
确保cmake版本高于3.13,否则会报错。Jetson Nano上的cmake只有3.10,我手动安装了一个
编译openvino samples
直接进入samples/cpp
,直接在板子上编译太慢了,幸好项目不大。
export PATH=/home/yanghuan/Downloads/cmake-3.28.0-rc1-linux-aarch64/bin:$PATH
export LD_LIBRARY_PATH=/home/yanghuan/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/runtime/lib/aarch64:$LD_LIBRARY_PATH
cd l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/samples/cpp
./build_samples.sh -i bin/ -b build/
这样在bin/
目录下就是可执行文件了。
配置NCS2
这里参考官网文档
最后重启插上NCS2。
export LD_LIBRARY_PATH=/home/yanghuan/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/runtime/lib/aarch64:$LD_LIBRARY_PATH
cd ~/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/samples/cpp/bin/samples_bin
# 查询设备
./hello_query_device
测试模型延迟
这里提交一个mobilenetv2的模型试试
-
NCS2推理
./benchmark_app \ -m /home/yanghuan/Downloads/mobilenet_v2.onnx \ -d MYRIAD \ -b 1 \ -shape [1,3,256,256] \ -hint latency \ -niter 10
-
CPU推理
./benchmark_app \ -m /home/yanghuan/Downloads/mobilenet_v2.onnx \ -d CPU \ -b 1 \ -shape [1,3,256,256] \ -hint latency \ -niter 10 -nthreads 2