MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞

2023-11-09 23:50

本文主要是介绍MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞

  • 用户前言
    • 创建开发环境
    • 开发环境登录及测试开发环境
    • YOLOV5 修改适配370预训练模型推理(超简单)
    • QA集锦

用户前言

在本章我们将从获取算力卷创建自己的云平台账号开始,一步一步的带着大家从0到1完成,从创建云平台环境选择镜像,选择SDK版本,到SSH登录云平台环境,更改github原版yolov5 v5.0代码实现mlu370训练和推理,同时在最后总结出部分QA为各位开发者提供快速支持。

创建开发环境

开发环境的账号和密码可以通过公众号每期算力卷获得,也可以联系作者得到获取方式,现在开始我们的创建开发环境

  1. 南京智能运算开发平台 点击此链接即可进入网址,登录成功即为此页面
    在这里插入图片描述

  2. 点击右侧菜单栏开发环境-》创建开发环境

在这里插入图片描述

  1. 在这里我们优先推荐用最新版本的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上快速使用起来

  1. 前期准备工作
    yolov5原代码:https://github.com/ultralytics/yolov5/tree/v5.0
    数据集(安全帽数据集):链接:https://pan.baidu.com/s/1HlODiZWAWxzvkVIAh16kYQ 提取码:0tb2

  2. 代码转换
    提前声明: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/
  1. 使用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快速训练推理!!速度起飞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379180

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现