js搜索网站开发,个人网站设计首页界面,汉中专业网站建设价格,自己做网站需要做啥目录
引言
驱动移植
例程编译
修改build.sh
执行编译
运行测试
部署libc的库文件
执行测试程序
结语 引言
鸿睿创智的H01开发板是基于RK3568芯片的#xff0c;瑞芯微芯片的一大特色就是提供了NPU推理的支持。本文将对其NPU推理进行测试。
驱动移植
H01的开发板已经…目录
引言
驱动移植
例程编译
修改build.sh
执行编译
运行测试
部署libc的库文件
执行测试程序
结语 引言
鸿睿创智的H01开发板是基于RK3568芯片的瑞芯微芯片的一大特色就是提供了NPU推理的支持。本文将对其NPU推理进行测试。
驱动移植
H01的开发板已经移植好了RKNN的驱动程序。如果是其他RK3568的开发板使用OpenHarmony提供的主线代码可能没有做这个移植可以参考OpenHarmony标准系统上实现对rk系列芯片NPU的支持(驱动移植)-鸿蒙开发者社区-51CTO.COMhttps://ost.51cto.com/posts/29962?loginfrom_csdn我使用hdc shell dmesg | grep RKNPU查看开机内核打印看不到任何相关信息。改用查看可以看到如下信息证明驱动是正常的 例程编译
首先启动Docker编译环境参见【鸿睿创智开发板试用】移植OpenCV 4到OpenHarmony 4.1-CSDN博客。然后下载RKNN Toolkit2
git clone https://github.com/airockchip/rknn-toolkit2.git我选择的是rknn_benchmark示例rknpu2/examples/rknn_benchmark这是测试RKNN工作性能的。
修改build.sh
RKNN的运行库是用GCC编译的对GCC库有依赖。厂商提供的样例也是GCC编译的。这点和一般的OpenHarmony程序基于LLVM编译不同。
这是build-linux_RK3566-3568.sh文件的修改
# for aarch64
GCC_COMPILER/home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
执行编译
./build-linux_RK3566_RK3568.sh
程序编译的过程如下
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
-- Check for working C compiler: /home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g
-- Check for working CXX compiler: /home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
x86_64
-- Configuring done
-- Generating done
CMake Warning:Manually-specified variables were not used by the project:TARGET_SOC-- Build files have been written to: /home/openharmony/rknn-toolkit2/rknpu2/examples/rknn_benchmark/build/build_linux_aarch64
Scanning dependencies of target rknn_benchmark
[ 66%] Building CXX object CMakeFiles/rknn_benchmark.dir/src/cnpy/cnpy.cpp.o
[ 66%] Building CXX object CMakeFiles/rknn_benchmark.dir/src/rknn_benchmark.cpp.o
[100%] Linking CXX executable rknn_benchmark
[100%] Built target rknn_benchmark
[100%] Built target rknn_benchmark
Install the project...
-- Install configuration:
-- Installing: /home/openharmony/rknn-toolkit2/rknpu2/examples/rknn_benchmark/install/rknn_benchmark_Linux/./rknn_benchmark
-- Set runtime path of /home/openharmony/rknn-toolkit2/rknpu2/examples/rknn_benchmark/install/rknn_benchmark_Linux/./rknn_benchmark to lib
-- Up-to-date: /home/openharmony/rknn-toolkit2/rknpu2/examples/rknn_benchmark/install/rknn_benchmark_Linux/lib/librknnrt.so
/home/openharmony/rknn-toolkit2/rknpu2/examples/rknn_benchmark最后所有测试所需要的文件都被打包到install目录中。
运行测试
部署libc的库文件
程序是基于gcc编译的而gcc所使用的库文件在开发板上是没有的所以需要将/home/openharmony/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib下的所有文件打包然后拷贝到开发板上解包到/lib目录下。
执行测试程序
最后就是用mobilenet_v1.rknn文件进行测试结果如下
# ./rknn_benchmark mobilenet_v1.rknn
rknn_api/rknnrt version: 2.3.0 (c949ad889d2024-11-07T11:35:33), driver version: 0.8.8
total weight size: 4365632, total internal size: 1756160
total dma used size: 10706944
model input num: 1, output num: 1
input tensors:index0, nameinput, n_dims4, dims[1, 224, 224, 3], n_elems150528, size150528, w_stride 224, size_with_stride150528, fmtNHWC, typeINT8, qnt_typeAFFINE, zp0, scale0.007812
output tensors:index0, nameMobilenetV1/Predictions/Reshape_1, n_dims2, dims[1, 1001], n_elems1001, size2002, w_stride 0, size_with_stride2002, fmtUNDEFINED, typeFP16, qnt_typeAFFINE, zp0, scale1.000000
custom string:
Warmup ...0: Elapse Time 8.19ms, FPS 122.121: Elapse Time 7.86ms, FPS 127.312: Elapse Time 7.86ms, FPS 127.243: Elapse Time 7.76ms, FPS 128.784: Elapse Time 7.79ms, FPS 128.39
Begin perf ...0: Elapse Time 7.74ms, FPS 129.201: Elapse Time 7.78ms, FPS 128.622: Elapse Time 7.80ms, FPS 128.123: Elapse Time 7.97ms, FPS 125.414: Elapse Time 7.88ms, FPS 126.955: Elapse Time 7.71ms, FPS 129.676: Elapse Time 5.13ms, FPS 195.087: Elapse Time 5.16ms, FPS 193.918: Elapse Time 5.12ms, FPS 195.209: Elapse Time 5.11ms, FPS 195.73Avg Time 6.74ms, Avg FPS 148.372Save output to rt_output0.npy
---- Top5 ----
0.049622 - 620
0.044678 - 645
0.032288 - 627
0.021011 - 819
0.016953 - 790
结语 经过一番折腾最后实现了在开发板上运行RKNN样例的工作。不过这还是不是最终结果还需要测试一下在App中是否可以正常调用特别是和OpenCV结合。