本文主要是介绍MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞
- 用户前言
- 创建开发环境
- 开发环境登录及测试开发环境
- YOLOV5 修改适配370预训练模型推理(超简单)
- QA集锦
用户前言
在本章我们将从获取算力卷创建自己的云平台账号开始,一步一步的带着大家从0到1完成,从创建云平台环境,选择镜像,选择SDK版本,到SSH登录云平台环境,更改github原版yolov5 v5.0代码实现mlu370训练和推理,同时在最后总结出部分QA为各位开发者提供快速支持。
创建开发环境
开发环境的账号和密码可以通过公众号每期算力卷获得,也可以联系作者得到获取方式,现在开始我们的创建开发环境
-
南京智能运算开发平台 点击此链接即可进入网址,登录成功即为此页面
-
点击右侧菜单栏开发环境-》创建开发环境
- 在这里我们优先推荐用最新版本的torch和sdk(2023.05.30截止,只支持torch1.9,python<=3.7)
第一个画框处 2*MLU370-D5.10.6是最新版
第二个画框出选择的是镜像 torch1.9的 mlu版本,ubuntu20.04,python==3.7的镜像环境
4.如下图,当旁边显示绿色运行中标识,即运行成功,这个时候我们点开名称如图4.2,画红框区域就是我们的ssh账号和密码,核对其他信息是否和自己所需求的一样,到这一步,我们的开发环境就已经全部创建完成了。
图4.1
图4.2
开发环境登录及测试开发环境
1.打开Xshell或者Vscode(remote-ssh) 本次只介绍Xshell使用方式
ssh 账号为自己的平台的ssh账号(图四红框处,去除ssh://),密码为图四画红框密码
2.登录成功后,显示界面如下
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:~#
3.测试开发环境是否通过 ,如下图所示即为测试环境通过,接着可以愉快的编码了
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:~# python
Python 3.7.8 (default, Dec 7 2022, 18:43:13)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> import torch_mlu
>>> import torchvision
>>> torch.__version__
'1.9.0'
>>> torch_mlu.__version__
'1.13.0-torch1.9'
>>> torchvision.__version__
'0.10.0a0+300a8a4'
>>>
YOLOV5 修改适配370预训练模型推理(超简单)
前言:关于数据清洗如VOC转COCO得操作这边就不介绍了,我们主要介绍如何将gpu得代码在MLU上快速使用起来
-
前期准备工作
yolov5原代码:https://github.com/ultralytics/yolov5/tree/v5.0
数据集(安全帽数据集):链接:https://pan.baidu.com/s/1HlODiZWAWxzvkVIAh16kYQ 提取码:0tb2 -
代码转换
提前声明:GPU的代码在MLU上运行,在一般情况下只需要修改一行加速引擎代码即可,在镜像中我们已经加入了这种转换脚本位于/torch/src/catch/tools/torch_gpu2mlu.py
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/torch/src/catch/tools# python torch_gpu2mlu.py --i /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0/
# Cambricon PyTorch Model Migration Report
Official PyTorch model scripts: /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0
Cambricon PyTorch model scripts: /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu
Migration Report: /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/report.md
python torch_gpu2mlu.py --i /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0/
运行该代码即可转换成功
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/workspace/volume/gpt/zhouguojun/MLU370-YOLOV5# ll
total 2
drwxrwxrwx. 1 root root 4096 May 30 2023 ./
drwxrwxrwx. 1 root root 4096 May 30 17:02 ../
drwxr-xr-x. 1 root root 4096 May 30 2023 yolov5-5.0/
drwxrwxrwx. 1 root root 4096 May 30 2023 yolov5-5.0_mlu/
- 使用MLU370进行推理
在安装完一些缺失库之后,直接python detect.py
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu# python detect.py
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='', exist_ok=False, img_size=640, iou_thres=0.45, name='exp', nosave=False, project='runs/detect', save_conf=False, save_txt=False, source='data/images', update=False, view_img=False, weights='yolov5s.pt')
requirements: /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/requirements.txt not found, check failed.
YOLOv5 🚀 2023-5-30 torch 1.9.0 CUDA:0 (MLU370, 49152.0MB)CUDA:1 (MLU370, 49152.0MB)/torch/venv3/pytorch/lib/python3.7/site-packages/torch/_utils.py:110: UserWarning: MLU operators don't support 64-bit calculation. so the 64 bit data will be forcibly converted to 32-bit for calculation. (Triggered internally at /torch/catch/torch_mlu/csrc/aten/util/tensor_util.cpp:153.)return new_type(self.size()).copy_(self, non_blocking)
Fusing layers...
Model Summary: 224 layers, 7266973 parameters, 0 gradients
[2023-5-30 17:17:44] [CNNL] [Warning]:[cnnlSetNmsDescriptor_v2] is deprecated and will be removed in the future release, please use [cnnlSetNmsDescriptor_v5] instead.
[2023-5-30 17:17:44] [CNNL] [Warning]:[cnnlClip] is deprecated and will be removed in the future release, please use [cnnlClip_v2] instead.
image 1/2 /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/data/images/bus.jpg: 640x480 4 persons, 1 bus, 1 fire hydrant, Done. (0.010s)
image 2/2 /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/data/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.009s)
Results saved to runs/detect/exp
Done. (0.097s)
因为快速教程所以没有更改打的日志断点,可以看到MLU370 2卡识别正常出来且速度推理在0.009平均可以看出速度飞快
这是coco原来效果图
到这里yolov5推理就顺利结束啦~
QA集锦
很多同学在初次使用的时候,会有许多问题,这边集合总结问题快速回复供同学们参考
- gpu移植到mlu需要改动哪些?
- 主要是修改设备相关的改动,或者使用寒武纪提供的脚本工具。可以参考下图总结:
使用torch_gpu2mlu.py这个脚本是不是就不用人工修改原生代码就可以移植到mlu了? - 是的,理论上不需要人工修改了。 寒武纪SDK里转换工具是要对整个代码工程进行作用吗?还是只需要对训练入口文件?
- 对整个工程作用。 当前是否支持与GPU混插进行多卡异构训练?分别推理部署呢?
- 支持。 Pytorch 支持什么版本?
- 目前支持PyTorch 1.6和1.9版本。 MLU训练支持多机多卡吗?
- 支持,后续课程会讲到分布式训练。 请问使用MLU训练出来的模型的通用性怎么样?
- 通用性很好,和GPU训练出来的一样。 请问3系列加速卡支持哪些计算精度类型?
- MLU370系列支持FP32、FP16、INT16、INT8等,具体规格点击官网查看:思元370系列 - 寒武纪 (cambricon.com) 需要配置一个定制的pytorch环境,python3.8-39.torch要求1.9
- 目前python只支持到3.7,torch支持1.6和1.9,具体可使用最新镜像pytorch:v1.13.0-torch1.9-ubuntu20.04-py37完成。
这篇关于MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!