0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【风火轮YY3568开发板免费体验】第五章:在 Solus 上运行 npu 例程并搭建 nfs 环境实现在 YY3568 上实际运行 npu 例

Red Linux 来源:Red Linux 作者:Red Linux 2023-08-19 02:41 次阅读

经过前面几章的铺垫,接下来的章节就开始进入到 NPU 相关的开发测试了。本章呢,记录下我分别在 Solus 上对 npu 相关例程的仿真以及实际在 YY3568 上进行的 npu 例程测试,本章的重点是在 Solus 上仿真环境的搭建以及为了更友好地在 YY3568 和 Solus 上传递文件而在 Solus 上搭建 NFS 环境走的坑。本章记录了我碰到一下几个问题:

  • 搭建仿真环境安装 python 依赖时,bfloat16 软件包使用 pip 直接安装出错(error: ‘unique_ptr’ in namespace ‘std’ does not name a template type),解决方法是下载最新的源码包并对最新的源码打 sdist 包并使用 pip 本地安装
  • 搭建 NFS 环境时竟然出错,使用 systemctl status nfs-server.service查看出错(rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)),逐步定位是 /etc/netconfig 内容不正确导致(竟然为空,从网上找到 sample 粘贴进去解决问题)
  • 默认 buildroot 编译的根文件系统没有 mount.nfs 支持需要放开

1. 在 Solus 上搭建 NPU 仿真环境

这里主要参考的资料是:

  1. Rockchip_Quick_Start_RKNN_SDK_V1.3.0_CN.pdf
  2. Rockchip_RKNPU_User_Guide_RKNN_API_V1.3.0_CN.pdf
  3. Rockchip_Quick_Start_RKNN_Toolkit2_CN-1.3.0.pdf
  4. Rockchip_User_Guide_RKNN_Toolkit2_CN-1.3.0.pdf

刚好 Solus 上有 python3.8 版本,所以就按照 python3.8 的依赖进行安装了:
python3.8 -m pip install -r requirements_cp38-1.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
因为 pypi 上的 bfloat16 这个包有问题,问题截图如下:bfloat16_err.png

最新的 bfloat16 已经修复了这个问题,我之前想的是临时修改 pip 下载的 bfloat16 的源码发现找不到源码,后来就在 github 上找到的上游仓库的源码,下面就是怎么打包并安装了,从网上了解到了 Source Distribution,然后尝试在 bfloat16 的源码执行 python setup.py sdist 顺利的打包出来了,接着就是直接 pip install xxxx 安装就可以了。这个问题解决了之后,后面步骤就参考文档进行模型测试了,我选取的是 external/rknn-toolkit2/examples/tflite/mobilenet_v1 这个例程,结果截图如下:test_ok.png

从图中可以看到仿真模拟结果显示的 Top5 内容,后续可以和在YY3568上实际运行的结果进行对比。

2. 在 Solus 上搭建 NFS 环境并在 YY3568 上测试同样的 npu 例程

这个文章之所以搁了这么就的原因就是这个 NFS 服务的问题,困扰了我将近两天,要不然文章昨天就发出去了。因为我开始是使用 eopkg install nfs-util 从官方仓库安装的 nfs 服务软件包,竟然不能正常启动 nfs-server.service,我感觉很惊讶,接着我就发了帖子start nfs-server.service failed,还好有很热情的社区伙伴回复,我尝试手动安装最新版本的 nfs-util-2.6.3 还是无法正常启动 nfs 服务,我尝试根据 systemd 的错误打印去看 nfs-util 的代码。在这个过程中我对使用 journalctl 查看日志又了进一步的印象,比如:

  1. 使用 sudo journalctl -x 相比普通用户的 journalctl 可以看到更多内容的打印信息
  2. journalctl -p xx 可以过滤要打印的日志优先级,如果是单个数字,小于等于这个级别的日志都会打印出来;如果是一个范围:1...2,那么只会打印1和2这个级别范围内的打印信息。

感谢 journalctl ,也正是这个打印后来逐步帮助我解决了这个问题:
首先我在 https://raindocs.blogspot.com/2019/09/kernel-svc-failed-to-register-nfsaclv2.html?m=1 了解到 nfs-server 之前需要启动 rpcbind 服务,然后我就尝试使用 systemd 启动 rpcbind 服务,我尝试启动这个服务并尝试使用 journalctl 查看日志,发现会打开 /etc/netconfig 文件,我的这个文件竟然是空的,所以我搜索了一下这个文件的 sample,找到了相关的内容复制到这个文件如下:

udp6       tpi_clts      v     inet6    udp     -       -
tcp6       tpi_cots_ord  v     inet6    tcp     -       -
udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local tpi_cots_ord - loopback - - -
unix tpi_cots_ord - loopback - - -

然后再启动 rpcbind 就正常了,接着启动 nfs-server 也就顺利启动了,解决了之后我现在本地挂载测试下通过了,截图如下:test_local_nfs.png

下一步就是在 YY3568 上测试了,发现默认竟然没有 mount.nfs 工具,只能在 buildroot 中放开 nfs utils 编译,将需要的 mount.nfs 和依赖库 libtirpc.so.3.0.0 tftp 过去,就可以正常 nfs 挂载了,测试external/rknpu2/examples/rknn_mobilenet_demo 例程,截图如下:local_npu2.png

对比在 Solus 上的仿真结果,发现在 YY3568 的 npu 上进行测试结果具有明显的一致性。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 文件系统
    +关注

    关注

    0

    文章

    273

    浏览量

    19676
  • 开发板
    +关注

    关注

    25

    文章

    4430

    浏览量

    94011
  • NPU
    NPU
    +关注

    关注

    2

    文章

    210

    浏览量

    18084
  • RK3566
    +关注

    关注

    0

    文章

    124

    浏览量

    3904
收藏 人收藏

    评论

    相关推荐

    适配OpenHarmony到YY3568上的流程

    YY3568开发板是基于Rockchip RK3568 芯片平台设计的开发板,四核 64Cortex-A55 核,主频最高达 2GHz,集成双核心架构GPU以及高效能
    的头像 发表于 04-04 10:17 1954次阅读
    适配OpenHarmony到<b class='flag-5'>YY3568</b>上的流程

    使用YY3568开发板部署AI能力

    YY3568开发板是 「风火轮科技」 基于Rockchip RK3568 芯片平台设计的开发板,四核 64Cortex-A55 核,主频最高
    的头像 发表于 11-28 10:59 1299次阅读
    使用<b class='flag-5'>YY3568</b><b class='flag-5'>开发板</b>部署AI能力

    YY3568适配OpenHarmony

    YY3568开发板简介 YY3568开发板 YY3568开发板是 「
    的头像 发表于 04-07 15:58 1788次阅读

    风火轮YY3568开发板免费体验】第一章:开发环境搭建,系统替换为原生Linux

    记录编译sdk并替换YY3568出厂安卓系统的笔记。
    的头像 发表于 08-09 18:11 986次阅读
    【<b class='flag-5'>风火轮</b><b class='flag-5'>YY3568</b><b class='flag-5'>开发板</b><b class='flag-5'>免费</b>体验】第一章:<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>,系统替换为原生Linux

    【新品体验】风火轮YY3568开发板免费体验

    YY3568主板基于 Rockchip RK3568 芯片平台,四核 64位 Cortex-A55 核,主频最高达 2GHz,集成双核心架构GPU以及高效能NPU,芯片性能优异。开发板
    发表于 06-25 14:35

    风火轮YY3568开发板免费体验】开箱篇 -----最好的RK3568开发板赏析

    风火轮YY3568开发板采用RK3568芯片设计,RK3568明星芯片是一款瑞芯微电子定位中高端的通用型SoC。该芯片采用了先进的22nm工
    发表于 08-07 10:00

    风火轮YY3568开发板免费体验】使用之二:系统测试安卓

    开发板,如下图所示: 按住设备的 RECOVERY (恢复)键保持接上电源 大约两三秒钟后,松开 RECOVERY 键 UART DEBUG测试: YY3568
    发表于 08-09 21:01

    风火轮YY3568开发板免费体验】01.开箱、烧写系统

    吧。 首先就是我最喜欢的开发板啦,YY3568,板载2GB RAM和16GB EMMC,真的太棒了,里面核心已经底板上面安装的了,还有WIFI模块和天线。 接下来就是送的7寸电容式
    发表于 08-10 19:35

    风火轮YY3568开发板免费体验】第五章 Solus 运行 npu 例程搭建 nfs 环境实现在 YY3568 实际运行 npu 例程

    结果显示的 Top5 内容,后续可以和在YY3568实际运行的结果进行对比。 2. Solus
    发表于 09-11 15:44

    风火轮YY3568开发板免费体验】第六Solus运行自定义模型迁移到YY3568对比测试

    第五章中,使用官方的原版历程初步摸索了一下NPU相关的测试方法,本章就开始介绍如何使用自己的模型迁移到YY3568上面。在这个过程中,我
    发表于 09-11 15:47

    风火轮YY3568开发板免费体验】+ YY3568安装运行Unity的自制游戏教程范例

    ,并成功自己的开发笔记本,以及手机(Android-12)运行,因此想测试一下能否YY3568
    发表于 11-14 11:44

    风火轮YY3568开发板免费体验】+ YY3568安装运行Home-Assistant服务端

    按照wiki教程刷入Debian镜像,根据硬件配置选择了ds0+wifi的配置。 插入USB鼠标键盘,设置无线网络。 PC电脑登录路由器的管理页面,查看YY3568的IP地址,如图
    发表于 11-14 11:49

    风火轮科技YY3568开发板新品上市

      风火轮近来又推出一款新的嵌入式主板YY3568 ,它是一款基于瑞芯微RK3568 4核处理器的ARM主板,性价比极高;现在瑞芯微的旗舰款是rk3588主打性能,这个rk
    的头像 发表于 04-27 14:50 1110次阅读
    <b class='flag-5'>风火轮</b>科技<b class='flag-5'>YY3568</b><b class='flag-5'>开发板</b>新品上市

    风火轮科技又发新品啦--YY3568开发板

    风火轮近来又推出一款新的嵌入式主板YY3568,它是一款基于瑞芯微RK3568 4核处理器的ARM主板,性价比极高;现在瑞芯微的旗舰款是rk3588主打性能,这个rk
    的头像 发表于 05-05 16:41 640次阅读
    <b class='flag-5'>风火轮</b>科技又发新品啦--<b class='flag-5'>YY3568</b><b class='flag-5'>开发板</b>

    风火轮YY3568开发板免费体验】第六章:在Solus运行自定义模型并迁移到YY3568对比测试

    本章介绍如何使用自己的模型并迁移到YY3568上面。
    的头像 发表于 08-27 00:55 764次阅读
    【<b class='flag-5'>风火轮</b><b class='flag-5'>YY3568</b><b class='flag-5'>开发板</b><b class='flag-5'>免费</b>体验】第六章:在<b class='flag-5'>Solus</b>上<b class='flag-5'>运行</b>自定义模型并迁移到<b class='flag-5'>YY3568</b>对比测试