
回复
在上篇文章中,我们学习了移植rk的npu驱动到OpenHarmony提供的内核。本文我们来学习如何在OpenHarmony标准系统rk系列芯片如何使用npu
在移植npu驱动到OpenHarmony之后,来运行npu样例进行简单测试
1.下载 rknpu2,下载地址:https://github.com/airockchip/rknn-toolkit2/tree/master
2.hdc工具:https://forums.openharmony.cn/forum.php?mod=viewthread&tid=1458
OpenHarmony采用musl作为C标准库,而不是glibc
下载好rknpu2后,找到瑞芯微提供的librknnrt.so,它是一个板端的runtime库,npu运行需要该库。瑞芯微提供了两种,一种是安卓的so,一种是liunx的so。在OpenHarmony上使用linux的so。
librknnrt.so本文档采用linux aarch64位的,执行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。
3.执行样例
cd rknn_matmul_api_demo_Linux
./rknn_matmul_api_dynshape_demo 2 1,64,32#4,64,32#8,64,32 1 1
如果没有成功移植npu驱动,执行样例会出现如下显示