当前位置: 首页 > news >正文

RK3588 IREE+Vulkan ResNet50推理测试

RK3588 IREE+Vulkan ResNet50推理测试

    • 背景
  • 一.性能数据【暂不考虑该框架】
  • 二.操作步骤
    • 2.1 搭建NFS服务,解决IREE编译时,空间不足的问题
    • 2.2 编译、安装`IREE`
      • 2.2.1 挂载NFS
      • 2.2.2 安装依赖
      • 2.2.3 编译`IREE`
      • 2.2.4 获取驱动及设备信息
      • 2.2.5 下载推理图片
      • 2.2.6 生成`onnx`模型转换脚本
      • 2.2.7 生成运行推理测试脚本
      • 2.2.8 `CPU-FP32`测试
      • 2.2.9 `CPU-FP16`测试
      • 2.2.10 `Vulkan-FP32`测试
      • 2.2.11 `Vulkan-FP16`测试

背景

在边缘计算场景中,RK3588作为高性能ARM处理器,配合Vulkan图形API和IREE机器学习运行时,能够实现高效的模型推理。IREE(Intermediate Representation Execution Environment)是Google开源的机器学习模型编译器运行时,可将PyTorch/TensorFlow等框架的模型编译为可在多种硬件上运行的高效代码。Vulkan作为新一代跨平台图形API,其计算着色器特性非常适合并行计算任务。本文旨在对该方案进行摸底

一.性能数据【暂不考虑该框架】

  • 模型:resnet50 输入:[1,3.224,224 float32] 输出:[1,1000 float32]
精度模式CPU推理【性能太差】Vulkan推理【结果不对】
FP323001.05ms MSE=0.0000010791.2645 ms MSE:98008.86
FP164097.97ms MSE=0.000020.6807 ms MSE:3.67

二.操作步骤

2.1 搭建NFS服务,解决IREE编译时,空间不足的问题

ssh root@192.168.1.100
cd /home/rk3588
docker stop nfs-server
docker rm nfs-server
docker run -d --name nfs-server --privileged -e SHARED_DIRECTORY=/home \-v $PWD:/home -p 2049:2049 nfs_server

2.2 编译、安装IREE

2.2.1 挂载NFS

ssh root@192.168.1.101
mkdir -p /nfs
mount -t nfs -o nolock 192.168.1.100:/ /nfs/
mkdir /nfs/rk3588

2.2.2 安装依赖

apt install software-properties-common -y
add-apt-repository ppa:deadsnakes/ppa   #添加Python软件源
apt install python3.10
apt install python3.10-dev
wget https://bootstrap.pypa.io/get-pip.py
python3.10 get-pip.py
pip3.10 install numpy
/usr/bin/python3.10 -m pip install onnx
pip3.10 install torch
pip3.10 install torchvision
apt install google-mock -y
apt install ninja-build -y
apt install ccache -y#安装cmake
cd /nfs/rk3588
wget https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-linux-aarch64.sh
bash cmake-3.22.5-linux-aarch64.sh --prefix=/usr/local --skip-license
export PATH=/usr/local/bin:$PATH

2.2.3 编译IREE

cd /nfs/rk3588
git clone --recursive https://github.com/google/shaderc.git
cd /nfs/rk3588/shaderc
cd /nfs/rk3588/shaderc/third_party
git clone --recursive https://github.com/KhronosGroup/SPIRV-Tools.git
mv SPIRV-Tools spirv-tools
cd spirv-tools/external
git clone --recursive https://github.com/KhronosGroup/SPIRV-Headers.git
mv SPIRV-Headers spirv-headers
cd /nfs/rk3588/shaderc/third_party
git clone --recursive https://github.com/KhronosGroup/glslang.gitcd /nfs/rk3588/shaderc
rm build -rf
mkdir build && cd build 
cmake -DSHADERC_SKIP_TESTS=ON ..
make -j4
make installcd /nfs/rk3588/
git clone --recursive https://github.com/openxla/iree.git

相关文章:

  • Hive drop column 的解决方法
  • Linux系统之traceroute命令详解:追踪网络路径的核心工具
  • docker常用指令总结
  • 嵌入式项目之交叉编译m2440篇
  • 深入探讨redis:哨兵模式
  • 【ISP算法精粹】什么是global tone mapping和local tone mapping?
  • 吃透 Golang 基础:数据结构之数组
  • 中级网络工程师知识点8
  • 【Linux笔记】——简单实习一个日志项目
  • AI编程辅助哪家强?深度解析主流AI编程工具的现状与未来-优雅草卓伊凡
  • 内核常见面试问题汇总
  • Mujoco 学习系列(二)基础功能与xml使用
  • 鸿蒙开发——7.ArkUI进阶:@BuilderParam装饰器的核心用法与实战解析
  • Oracle中如何解决BUFFER BUSY WAITS
  • Oracle Apps R12——报表入门:如何定义一个Concurrent Program(请求)
  • 【Tauri2】046—— tauri_plugin_clipboard_manager(一)
  • RVTools 官网遭入侵,被用于分发携带 Bumblebee 恶意软件的篡改安装包
  • SUI批量转账几种方法介绍
  • 谈谈对《加密算法》的理解
  • PyTorch中单卡训练、DataParallel(DP)和DistributedDataParallel(DDP)
  • 为小龙虾洗清这些“黑锅”,这份科学吃虾指南请收好
  • 外交部:将持续便利中外人员往来,让“中国游”金字招牌更加闪耀
  • 三星“七天机”质保期内屏幕漏液被拒保,澎湃介入后已解决
  • 4月份国民经济顶住压力稳定增长
  • 远洋渔船上的命案
  • 玉林一河段出现十年最大洪水,一村民被冲走遇难