《【北京迅为】itop-3568开发板NPU使用手册》系统性地介绍了RKNPU从入门到应用开发的全流程知识体系。本手册以“认识工具—构建环境—模型转换—部署实践”为主线,为开发者在Linux和Android双平台上提供完整的NPU应用开发指导。

本手册既适合嵌入式AI开发初学者系统学习,也可作为高级开发者的技术参考,帮助开发者高效利用RKNPU实现各类AI应用的部署与优化。


【公众号】迅为电子

【交流群】861311530

【视频展示】【【北京迅为】基于RK3568/RK3588开发板的AI图像识别方案】 

【视频教程】【AI深度学习推理加速器】——RKNPU2 从入门到实践(基于RK3588和RK3568)

完整教程及配套资料,关注我的B站👉【北京迅为电子】或公众号,回复【RKNPU2】即可领取,你的关注是我更新的最大动力~


第 8章 NPU驱动升级

由于瑞芯微的NPU驱动更新比较频繁,SDK源码中的NPU驱动版本可能并非是瑞芯微最新的,所以在本章节中将会讲解用户如何手动更新NPU驱动版本。

需要注意的是本章节的内容只适用于5.10和6.1内核版本的SDK,不适用4.19版本SDK。

首先来到Linux SDK的根目录下,使用vim kernel/drivers/rknpu/include/rknpu_drv.h命令来查看当前NPU驱动版本,如下图所示:

根据宏定义可以得到,当前驱动的更新时间为20240322,驱动的版本号为0.9.6,然后进入https://github.com/airockchip/rknn-llm/tree/main/rknpu-driver网页查看瑞芯微最新的驱动源码,如下图所示:

可以看到瑞芯微最新的驱动版本为0.9.8(如果后续有更新,可以按照同样的方法进行升级),然后下载并解压该源码,如下图所示:

然后删掉SDK源码中原有的NPU驱动,并将解压出来的最新版本驱动拷贝到driver目录下,如下图所示:

最后重新编译内核镜像,在0.9.6升级0.9.8之后编译会报一些错误(不同版本的升级,修改的地方不同,下面的修改只适用于0.9.8的升级),这里要对源码进行简单的修改。

首先修改kernel/drivers/rknpu/rknpu_devfreq.c文件,将第22行的MONITOR_TYPE_DEV修改为MONITOR_TPYE_DEV,修改完成如下图所示:

然后找到第237行的.set_soc_info = rockchip_opp_set_low_length并注释,注释完成如下所示:

最后修改kernel/include/linux/mm.h文件,在最后添加下面的两个函数,添加完成如下图所示:

static inline void vm_flags_set(struct vm_area_struct *vma,
			vm_flags_t flags)
{
	vma -> vm_flags |= flags;
}
static inline void vm_flags_clear(struct vm_area_struct *vma,
			vm_flags_t flags)
{
	vma -> vm_flags &= flags;
}

然后重新编译得到boot.img,烧写到开发板即可。

在烧写之前可以通过“cat /sys/kernel/debug/rknpu/version”查看当前的NPU版本,如下图所示:

可以看到当前的NPU版本为0.9.6,烧写成功之后再次输入相同的命令查看NPU版本,如下图所示:

可以看到NPU版本已经成功升级到了0.9.8。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐