MilkV Duo使用TPU推理pytorch模型

MilkVDuo开发板上的TPUPytorch模型部署教程
本文详细介绍了如何在MilkVDuo开发板上部署基于Pytorch的模型,包括利用docker环境、模型转换为onnx、onnx到mlir的编译、全BF16和INT8量化以及cvimodel的生成和部署,涉及到了RISC-V架构和TPU的硬件加速能力。

MilkV Duo的TPU推理Pytorch模型部署

1.MilkV Duo开发板

最近在朋友的推荐下,购入了一块国产RISC-V架构的MilkV Duo开发板,首先这个开发板价格很便宜才35块,并且支持TPU模型推理,视频硬件编码,支持MIPI 2M的摄像头,这个性能确实震惊到我了,因此来看MilkV这个产品应该是和RP2040的开发板对标的。

开发板实物图:
在这里插入图片描述

首先来看看开发板的参数:

Milk-V Duo Specification
Processor CVITEK CV1800B (C906@1Ghz + C906@700MHz)
Memory DDR2 64MB
Storage 1x Mirco SD slot,1x SD NAND solder pad
USB 1x Type-C for data and Power,1x USB2 solder pad
Camera 1x 16P FPC connector (MIPI CSI 2-lane)
Audio 1x2P MicroPhone
GPIO up to 26 Pins available for general purpose I/O(GPIO)
Size 21mm*51mm

在这里插入图片描述

2.部署docker镜像

1.安装docker命令:

MilkV Duo的开发板的模型转换环境需要在docker中运行,这样可以避免无意中篡改了主机的系统环境变量,我们以Ubuntu22.04的系统为例子:
(ps:需要注意的是从22.04后的Ubuntu系统的apt无法正确安装docker镜像,需要snap安装docker镜像;wsl子系统的用户请自行查找其他docker的安装教程)

sudo snap install docker

2.在github拉取项目:

git clone https://github.com/aceraoc/MilkV-Duo_TPU.git

(ps:下拉项目后进入项目文件夹中)

3.导入本地的docker镜像

下载镜像会比较久请耐心等待

./getdocker.sh
tar -zxvf cvitek_tpu_sdk_cv180x_musl_riscv64_rvv.tar.gz
tar -zxvf cvimodel_samples_cv180x.tar.gz
tar -zxvf cvitek_mlir_ubuntu-18.04_v1.5.0-883-gee0cbe9e3.tar.gz
sudo docker load -i docker_cvitek_dev_1.9-ubuntu-18.04.tar

4.运行docker镜像

(ps:如果是第一次进入需要这个步骤,如果不是第一次请移步下一步骤)

sudo docker run -itd -v $PWD:/work --name cvitek cvitek/cvitek_dev:1.9-ubuntu-18.04
sudo docker exec -it cvitek bash

5.关机或结束终端后重启docker:

(ps:第一次进入docker的bash操作页面可以忽略此步骤)

sudo docker start cvitek -i

3.编译移植Pytorch

如下步骤均在docker环境中执行

1.导入mlir的环境变量

source cvitek_mlir/cvitek_envs.sh

2.获取模型文件

(ps:考虑到有些网友网速比较差所以我把模型已经下下来放到github项目里去了,如果想把我的过程重走一遍的朋友可以试试执行getonnx.py这个python脚本)

mkdir -p /work/model_resnet18/workspace && cd model_resnet18
touch getonnx.py
python3 getonnx.py

getonnx.py的内容

# python
import torch
import torchvision.models 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值