RK3588NPU驱动版本升级至0.9.6教程

news2024/12/23 2:37:43

RK3588NPU驱动版本升级至0.9.6教程

    • 1、下载RK3588NPU驱动
    • 2、修改NPU驱动源码
      • 2.0 修改MONITOR_TPYE_DEV写错问题
      • 2.1 解决缺少函数rockchip_uninit_opp_table问题
      • 2.2 解决缺少函数vm_flags_set、vm_flag_clear的问题
      • 2.3 内核编译成功
      • 2.4 重新构建系统
    • 3、注意事项
    • 4、其他问题处理

1、下载RK3588NPU驱动

下载地址:https://github.com/airockchip/rknn-llm/tree/main 如下图:

null

null

npu驱动替换后,编译内核会报错,信息如下:

null

2、修改NPU驱动源码

2.0 修改MONITOR_TPYE_DEV写错问题

1、(如果正确就不用改了,我这里的版本原本就时正确的)修改drivers/rknpu/rknpu_devfreq.c将MONITOR_TYPE_DEV写成了MONITOR_TPYE_DEV

把
MONITOR_TPYE_DEV
改为
MONITOR_TYPE_DEV

null

2.1 解决缺少函数rockchip_uninit_opp_table问题

2.1.1、rockchip_uninit_opp_table函数没有,要从github对应的kernel下载进行merge,涉及文件:

  • SDK/kernel/include/soc/rockchip/rockchip_opp_select.h
  • SDK/kernel/drviers/soc/rockchip/rockchip_opp_select.c

2.2.1.1 SDK/kernel/include/sock/rockchip/rockchip_opp_select.h 修改如下

// 在代码
int rockchip_init_opp_table(struct device *dev,
                struct rockchip_opp_info *info,
                char *lkg_name, char *reg_name);
// 之后增加以下代码
void rockchip_uninit_opp_table(struct device *dev,
             				   struct rockchip_opp_info *info);

如下图:
在这里插入图片描述

// 在末尾位置增加以下代码
static inline void rockchip_uninit_opp_table(struct device *dev,
                                             struct rockchip_opp_info *info)
{
}

如下图:
null

2.1.1.2 SDK/kernel/drviers/soc/rockchip/rockchip_opp_select.c 修改如下:

// 在文件末尾,MODULE_DESCRIPTION("ROCKCHIP OPP Select");之前增加以下代码
void rockchip_uninit_opp_table(struct device *dev, struct rockchip_opp_info *info)
{
        struct opp_table *opp_table;

        if (info) {
                kfree(info->opp_table);
                info->opp_table = NULL;
                devm_kfree(dev, info->clks);
                info->clks = NULL;
                devm_kfree(dev, info->volt_rm_tbl);
                info->volt_rm_tbl = NULL;
        }

        opp_table = dev_pm_opp_get_opp_table(dev);
        if (IS_ERR(opp_table))
                return;
        dev_pm_opp_of_remove_table(dev);
        if (opp_table->prop_name)
                dev_pm_opp_put_prop_name(opp_table);
        if (opp_table->supported_hw)
                dev_pm_opp_put_supported_hw(opp_table);
        dev_pm_opp_put_opp_table(opp_table);
}
EXPORT_SYMBOL(rockchip_uninit_opp_table);

如下图:
null

2.2 解决缺少函数vm_flags_set、vm_flag_clear的问题

vm_flags_set,vm_flag_clear这两个函数没有,参考0.9.3的方式直接对vma->vm_flags复制,涉及文件:

  • SDK/kernel/drivers/rknpu/rknpu_gem.c

2.2.1 vm_flags_set具体修改如下
参考如下方式修改:

//vm_flags_set(vma, VM_MIXEDMAP);		//注释这行
vma->vm_flags |= VM_MIXEDMAP;			//增加这行

有以下几个地方

  • static int rknpu_gem_mmap_pages
    null
  • 938行左右
    null
  • 989行左右
    在这里插入图片描述

2.2.2 vm_flag_clear具体修改如下
参考如下方式修改:

//vm_flags_clear(vma, VM_PFNMAP);			//注释这行
vma->vm_flags &= ~VM_PFNMAP;			//增加这行
  • vm_flag_clear只出现了1次,在991行左右
    null

2.3 内核编译成功

sudo ./build.sh kernel

此时再次编译内核就成功了!

2.4 重新构建系统

重新构建系统

sudo ./build.sh

重新烧写系统后,查看rknpu驱动版本

cat /sys/kernel/debug/rknpu/version

如下图:
在这里插入图片描述

3、注意事项

转换rkllm内存至少需要16G,从https://huggingface.co/Qwen/Qwen-1_8B-Chat下载所有文件

4、其他问题处理

1、执行文件出错时,加大文件打开数量限制

ulimit -HSn 102400

运行

./llm_demo qwen.rkllm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2157682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

故障诊断 | 基于双路神经网络的滚动轴承故障诊断

故障诊断 | 基于双路神经网络的滚动轴承故障诊断 目录 故障诊断 | 基于双路神经网络的滚动轴承故障诊断效果一览基本介绍程序设计参考资料效果一览 基本介绍 基于双路神经网络的滚动轴承故障诊断 融合了原始振动信号 和 二维信号时频图像的多输入(多通道)故障诊断方法 单路和双…

【原创】java+springboot+mysql党员教育网系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

【Linux】常用指令【更详细,带实操】

Linux全套讲解系列,参考视频-B站韩顺平,本文的讲解更为详细 目录 一、文件目录指令 1、cd【change directory】指令 ​ 2、mkdir【make dir..】指令​ 3、cp【copy】指令 ​ 4、rm【remove】指令 5、mv【move】指令 6、cat指令和more指令 7、less和…

【爬虫工具】小红书评论高级采集软件

用python开发的爬虫采集工具【爬小红书搜索评论软件】,支持根据关键词采集评论。 思路:笔记关键词->笔记链接->评论 软件界面: 完整文章、详细了解: https://mp.weixin.qq.com/s/C_TuChFwh8Vw76hTGX679Q 好用的软件一起分…

去除字符串或字符串数组中字符串左侧的空格或指定字符numpy.char.lstrip()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 去除字符串或字符串数组中 字符串左侧的空格或指定字符 numpy.char.lstrip() [太阳]选择题 请问关于以下代码表述错误的选项是? import numpy as np print("【执行】np.cha…

2024/9/22

系列文章目录 文章目录 系列文章目录前言一、两条腿走路二、编程语言能力提升1.廖雪峰的python课2.Leetcode(数据结构题) 三、机器学习能力提升1.统计学习方法 李航2.kaggle竞赛 四、神经网络能力提升1.神经网络与深度学习 邱锡鹏2.一套自己的万金油模板…

寄存器与内存

第三课:寄存器与内存、中央处理器(CPU)、指令和程序及高级 CPU 设计-CSDN博客 锁存器 引入 ABO0(开始状态)001(将A置1)110(将A置0)11 无论怎么做,都没法从1变…

Windows PowerShell相关笔记

之前我写的一篇,把我的PS(power shell)该了配置文件 pyqt5vscode 配置坑笔记_vscode使用pyqt command failed-CSDN博客 文件里写的自动加载conda #region conda initialize # !! Contents within this block are managed by conda init !!…

[Python]一、Python基础编程(2)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. 文件操作 把⼀些内容 ( 数据 )存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 。 1.1 文件的基本操作 1. 打开文件 2. 读写操作 3. 关闭…

基于YOLOv5s的瓶装酒瑕疵检测(附数据集与操作步骤)

本文主要内容:详细介绍了瓶装酒瑕疵检测的整个过程,从创建数据集到训练模型再到预测结果全部可视化操作与分析。 文末有数据集获取方式,请先看检测效果 现状 在酒类生产领域,品质极为重要。瓶装酒的外观瑕疵,不仅影响消费者的购…

基于Ambari搭建hadoop生态圈+Centos7安装教程V2.0优化版(本篇博客写的较为详细,可能比较多,请耐心看)

当我们学习搭建hadoop的时候,未免也会遇见很多繁琐的事情,比如很多错误,需要解决。在以后公司,也不可能让你一个一个搭建hadoop,成千上万的电脑,你再一个个搭建,一个个报错,而且每台…

飞书获取用户及部门信息

1、进入企业后台管理,创建一个企业自建应用 ,获取App ID,App Secret 2、 对应用设置api权限及数据权限 3、Java客户端获取用户,部门信息 有两种方式可以获取:1、api 2、sdk的方式 我这里采用sdk的方式,…

如何给文件夹里面的文件批量添加前缀和编号(利用C#写的小工具)

运行结果 将上面的文件编号效果 下载过后启动这个程序即可(这个程序灵感来源是上次给美术资源分类和编号的时候给我干吐了,所以写了这个工具) 体验链接:laozhupeiqia/批处理 --- laozhupeiqia/批处理 (github.com) 如果对你有帮助…

【C++】面向对象编程的三大特性:深入解析继承机制

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

近几年来说最有效率的编程语言和市场最认可的编程语言分别是什么?

在过去的几年中,编程语言的效率和市场认可度在不断演变。不同的语言适用于不同的领域和场景,因而编程语言的“效率”和“市场认可”需要根据具体应用来分析。本文将从两个角度入手,分别探讨近几年中被认为最有效率和最受市场认可的编程语言。…

MISC - 第二天(wireshark,base64解密图片,zip文件伪加密,LSB二进制最低位,ARCHPR工具)

前言 各位师傅大家好,我是qmx_07,今天给大家讲解杂项 乌镇峰会种图 使用了stegsolve工具,查看更多信息 发现flag信息 更改为html后缀flag{97314e7864a8f62627b26f3f998c37f1} wireshark 看题目是 分析pacp数据包,通过网站登录…

模组差分包,可能是你远程升级失败的罪魁祸首!

也许我们已经习惯生活里的问题接连不断。。。但当收到客户的问题反馈,还是会心头一紧! 最近有客户反馈在乡村里频繁出现掉线的情况。 我们赶紧排查:换货、换SIM卡,发现只有去年5月22号采购的那批模块在客户环境附近会出现掉线的…

2024年 人工智能领域的一些成果与未来发展趋势 形式丰富多样

目前人工智能领域发展迅速,在多个方面取得显著成果。2024 人工智能大会展览规模、首发新品数均达历史最高,有超过 500 家企业参展,展品数量超过 1500 项。 在教育领域,人工智能落地成果显著。只需一键扫描就可以自动批改试卷的作业…

基于yolov5滑块识别破解(一)

由于内容较长,将分为两个部分来说明,本文讲解yolov5的部署与训练。 1.YOLOv5部署 云端部署(训练) 服务器创建 如果自己的显卡算力不是很好的,或者是核显电脑,可以租用算力,价格还行一块钱左右就…

nodejs基于vue+express度假村旅游管理系统设计与实现7t82p

目录 功能介绍数据库设计具体实现截图技术栈技术论证解决的思路论文目录核心代码风格详细视频演示源码获取 功能介绍 实现了一个完整的农家乐系统,其中主要有用户表模块、关于我们模块、收藏表模块、公告信息模块、酒店预订模块、酒店信息模块、景区信息模块、景区…