wordpress如何添加菜單和數(shù)據(jù)表搜索引擎優(yōu)化的目的是對(duì)用戶友好
在上篇文章中,我們學(xué)習(xí)了移植rk的npu驅(qū)動(dòng)到OpenHarmony提供的內(nèi)核。本文我們來學(xué)習(xí)如何在OpenHarmony標(biāo)準(zhǔn)系統(tǒng)rk系列芯片如何使用npu
OpenHarmony RK系列芯片運(yùn)行npu測(cè)試用例
在移植npu驅(qū)動(dòng)到OpenHarmony之后,來運(yùn)行npu樣例進(jìn)行簡(jiǎn)單測(cè)試
1.O 測(cè)試準(zhǔn)備
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標(biāo)準(zhǔn)庫,而不是glibc
- 詳細(xì)介紹參考musl官方參考手冊(cè)。
- musl與glibc的差異點(diǎn)請(qǐng)參考musl與glibc功能對(duì)比。
- OpenHarmony使用llvm開源項(xiàng)目的C++ 標(biāo)準(zhǔn)庫libc++作為C++運(yùn)行時(shí)庫。
下載好rknpu2后,找到瑞芯微提供的librknnrt.so,它是一個(gè)板端的runtime庫,npu運(yùn)行需要該庫。瑞芯微提供了兩種,一種是安卓的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自帶了一些測(cè)試用例,選擇只依賴librknnrt.so庫,不依賴其他庫的。做最小化測(cè)試。所以編譯rknn_matmul_api_demo測(cè)試樣例,路徑位于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.編譯好的二進(jìn)制位于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復(fù)制到rknpu2/examples/rknn_matmul_api_demo/install/rknn_matmul_api_demo_Linux/lib
目錄
將rknn_matmul_api_demo二進(jìn)制文件壓縮為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 運(yùn)行編譯好的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ù)制到開發(fā)板的lib目錄
hdc shell # 進(jìn)入開發(fā)板data目錄
cd data# 解壓rknn_matmul_api_demo.tar.gz文件
tar -zxvf rknn_matmul_api_demo_Linux.tar.gz# 將glibc的所有so復(fù)制到開發(fā)板的lib目錄
mount -o remount,rw /
cp /data/rknn_matmul_api_demo_Linux/lib/* /lib
樣例中的rknn_matmul_api_dynshape_demo默認(rèn)依賴的庫路徑在開發(fā)板的lib目錄下,所以需要將librknnrt.so依賴的glibc所有so復(fù)制到開發(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驅(qū)動(dòng),執(zhí)行樣例會(huì)出現(xiàn)如下顯示