RK356X NPU测试DEMO

2、RK356X NPU测试DEMO

2.0、简介

  • NPU测试DEMO有以下测试案例:(以下说明以rknn_mobilenet_demo为例)

    rknn_mobilenet_demo图像分类

    rknn_ssd_demo目标检测

    rknn_api_demo

    3rdparty

  • NPU测试DEMO获取途径:

    获取压缩包RKNN_API_for_RK356X_v1.0_20210430.tar.gz

    进入examples/目录就可以看到4个DEMO示例

2.1、Android平台

RKNN API调用方式

Android平台支持两种调用RKNN API的方式

  1. 应用直接链接librknnrt.so

    链路更短,性能更好

  2. 应用链接Android平台HIDL实现的librknn_api_android.so

    可通过CTS/VTS测试(若不需要过CTS/VTS,则推荐使用第一种方式)

编译DEMO

  • NDK下载

    编译Android DEMO必须下载对应版本的NDK

    查看build-android.sh脚本可知,当前使用r16b版本NDK

    网上下载后解压即可

    下载网站:https://developer.android.com/ndk/downloads/revision_history?hl=zh-cn

  • rknn_mobilenet_demo编译

    $ cd examples/rknn_mobilenet_demo
    
    //修改build-android.sh编译脚本中NDK路径
    $ vim build-android.sh
    	ANDROID_NDK_PATH=~/tanzh/rk3566-rk3568-android11.0/npu/android-ndk-r16b
    
    //开始编译
    $ ./build-android.sh
    

运行测试

  • 推送编译结果到设备端

    $ adb push install/rknn_mobilenet_demo_Android /data/rknn_mobilenet_demo_Android
    
  • 执行DEMO

    // 运行环境准备
    $ cd /data/rknn_mobilenet_demo_Android/
    $ chmod 777 ./*
    $ export LD_LIBRARY_PATH=./lib
    
    // 执行程序
    $ ./rknn_mobilenet_demo model/mobilenet_v1.rknn model/dog_224x224.jpg
    
        [  529.043286] cma: cma_alloc: alloc failed, req-size: 429 pages, ret: -12
        [  529.043338] RKNPU fde40000.npu: RKNPU: failed to allocate 1757184 buffer.
        [ model input num: 1, output num:  1
        i5nput2 ten9sors:
        4ndex=0 name=input n_dims=4 dims=[3 224 224 1] n_elems=150528 size=150528 fmt=0 type=2 qnt_type=2 fl=0 zp=0 scale=0..0070812
         output tensors:
        index=0 name=MobilenetV1/Predictions/Reshape_1 n_dims=2 dims=[0 0 1001 1] n_elems=1001 size=2002 fmt=0 type=1 qnt_type=2 fl=0 zp=0 scale=1.000000
        rk3nn_r3n
        45] RKNPU fde40000.npu: RKNPU: try to fallback to  ---a Topl5 ---
        156: 0.584961
        155: 0.179321
        205: 0.094116
        752: 0.028854
        880: 0.020905
    

2.2、Linux平台

编译DEMO

  • NPU DEMO编译

    $ cd examples/rknn_mobilenet_demo
    
    #设置 build-linux.sh 下的 GCC_COMPILER 为正确的编译器路径
    $ vim build-linux.sh
    	GCC_COMPILER=/home/rpdzkj/tanzh/rk3566-rk3568-linux/sdk/rk356x/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
    	
    $ ./build-linux.sh
    
  • 编译结果

    编译成功后,会在demo项目下生成install/rknn_mobilenet_demo_Linux/目录

    $ ls install/rknn_mobilenet_demo_Linux/
    	lib/
    		librknn_api.so		// RKNN API库
    		librknnrt.so		// 
    	model/
    		cat_224x224.jpg		// 测试图片
    		dog_224x224.jpg		// 测试图片
    		mobilenet_v1.rknn	// 图片分类模型
    	rknn_mobilenet_demo		// rknn程序
    

运行测试

  • 推送NPU DEMO

    $ adb push install/rknn_mobilenet_demo_Linux /userdata/
    
  • 运行DEMO

    $ cd /userdata/rknn_mobilenet_demo_Linux/
    $ chmod 777 -R ./*
    $ export LD_LIBRARY_PATH=./lib
    $ ./rknn_mobilenet_demo model/mobilenet_v1.rknn model/dog_224x224.jpg
    
      156: 0.584961
      155: 0.179321
      205: 0.094116
      752: 0.028854
      880: 0.020905
    

    Debian平台需要拷贝rknpu.ko到系统目录下,并insmod后才能运行DEMO

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux驱动专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值