rockchip-linux / rknpu

BSD 3-Clause "New" or "Revised" License
221 stars 62 forks source link
rknn rknpu

RKNPU

本工程主要为Rockchip NPU提供驱动、示例等。

适用平台

注意:

RKNN Toolkit

​ 在使用RKNN API进行部署之前,需要使用RKNN Toolkit将原始的模型转化成rknn模型。

​ 具体的使用说明请参考相应的网址。

NPU驱动说明

NPU驱动目录说明

NPU的驱动在$SDK/external/rknpu/drivers/目录下或者https://github.com/rockchip-linux/rknpu/tree/master/drivers

其中的编译、安装规则参考$SDK/buildroot/package/rockchip/rknpu/rknpu.mk

主要目录包括:

drivers/
├── common
├── linux-aarch64
├── linux-aarch64-mini
├── linux-armhf
├── linux-armhf-mini
├── linux-armhf-puma
├── linux-armhf-puma-mini
├── npu_ko

NPU full driver与mini driver的区别

主要包含以下几点:

手动更新NPU驱动

有时需要手动更新NPU驱动,只要将相关的驱动拷贝到对应的目录就可以。

adb push drivers/linux-aarch64/*   /
adb push drivers/npu_ko/galcore.ko /lib/modules/galcore.ko
adb push drivers/linux-aarch64-mini/*   /
adb push drivers/npu_ko/galcore.ko /lib/modules/galcore.ko
adb push drivers/linux-armhf-puma/*   /
adb push drivers/npu_ko/galcore_puma.ko /lib/modules/galcore.ko
adb push drivers/linux-armhf-puma-mini/*   /
adb push drivers/npu_ko/galcore_puma.ko /lib/modules/galcore.ko

注意:adb不同版本的默认行为不一样,有些是直接push目录的,有些是push目录下的文件。因此替换完后,需要检查一下相关的库是否已经替换成功。比如通过md5sum检查对应文件的md5值是否相同。部分板子不支持adb命令,请通过ssh等其他方式拷贝文件到对应目录即可。

另外,toybrick可能对文件路径进行了调整,因此最好通过toybrick自带的方式进行更新。

librknn_api与librknn_runtime的区别

librknn_api是对librknn_runtime的封装,主要是为了减少对其他so的编译依赖,功能上并没有区别。检查驱动版本时,一般以librknn_runtime.so为准。