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
MilkVDuo开发板上的TPUPytorch模型部署教程

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

被折叠的 条评论
为什么被折叠?



