wordpress如何添加菜單和數(shù)據(jù)表搜索引擎優(yōu)化的目的是對用戶友好
在上篇文章中,我們學習了移植rk的npu驅動到OpenHarmony提供的內核。本文我們來學習如何在OpenHarmony標準系統(tǒng)rk系列芯片如何使用npu
OpenHarmony RK系列芯片運行npu測試用例
在移植npu驅動到OpenHarmony之后,來運行npu樣例進行簡單測試
1.O 測試準備
1.下載 rknpu2,下載地址:https://github.com/airockchip/rknn-toolkit2/tree/master
2.hdc工具:https://forums.openharmony.cn/forum.php?mod=viewthread&tid=1458
- 下載地址:http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist
1.1 編譯npu樣例
OpenHarmony采用musl作為C標準庫,而不是glibc
- 詳細介紹參考musl官方參考手冊。
- musl與glibc的差異點請參考musl與glibc功能對比。
- OpenHarmony使用llvm開源項目的C++ 標準庫libc++作為C++運行時庫。
下載好rknpu2后,找到瑞芯微提供的librknnrt.so,它是一個板端的runtime庫,npu運行需要該庫。瑞芯微提供了兩種,一種是安卓的so,一種是liunx的so。在OpenHarmony上使用linux的so。
librknnrt.so本文檔采用linux aarch64位的,執(zhí)行readelf -d librknnrt.so可知64位的so依賴以下庫。
libpthread.so.0
libdl.so.2
libstdc++.so.6
libm.so.6
libgcc_s.so.1
rknpu2自帶了一些測試用例,選擇只依賴librknnrt.so庫,不依賴其他庫的。做最小化測試。所以編譯rknn_matmul_api_demo測試樣例,路徑位于rknn-toolkit2-master/rknpu2/examples/rknn_matmul_api_demo。
1.編譯工具鏈選擇gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
- 自行下載:https://releases.linaro.org/components/toolchain/gcc-linaro/
- OpenHarmony源碼也提供了,位于prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
2.在rknn_matmul_api_demo目錄下執(zhí)行如下命令
export GCC_COMPILER=/xxx/xxx/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu ./build-linux.sh -t rk3568 -a aarch64 -b Release
3.編譯好的二進制位于rknpu2/examples/rknn_matmul_api_demo/install
將gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib
下的所有so復制到rknpu2/examples/rknn_matmul_api_demo/install/rknn_matmul_api_demo_Linux/lib
目錄
將rknn_matmul_api_demo二進制文件壓縮為rknn_matmul_api_demo.tar.gz文件
cd rknn_matmul_api_demo
tar -czvf rknn_matmul_api_demo.tar.gz rknn_matmul_api_demo
1.2 運行編譯好的npu樣例
1.將rknn_matmul_api_demo.tar.gz發(fā)送至開發(fā)板data目錄下面
hdc file send rknn_matmul_api_demo.tar.gz /data
2.解壓文件并寫將glibc的所有so復制到開發(fā)板的lib目錄
hdc shell # 進入開發(fā)板data目錄
cd data# 解壓rknn_matmul_api_demo.tar.gz文件
tar -zxvf rknn_matmul_api_demo_Linux.tar.gz# 將glibc的所有so復制到開發(fā)板的lib目錄
mount -o remount,rw /
cp /data/rknn_matmul_api_demo_Linux/lib/* /lib
樣例中的rknn_matmul_api_dynshape_demo默認依賴的庫路徑在開發(fā)板的lib目錄下,所以需要將librknnrt.so依賴的glibc所有so復制到開發(fā)板的lib目錄
3.執(zhí)行樣例
cd rknn_matmul_api_demo_Linux./rknn_matmul_api_dynshape_demo 2 1,64,32#4,64,32#8,64,32 1 1
如果沒有成功移植npu驅動,執(zhí)行樣例會出現(xiàn)如下顯示