searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

天数显卡基于国产框架mindspore的适配

2023-05-23 09:09:49
24
0

1、安装天数提供的mindspore安装包

天数显卡暂时还无法适配官方mindspore的适配,安装包需要天数提供。

2、下载mindspore的yolov5

git clone https://gitee.com/mindspore/models  # 默认下载最新版本
git checkout r1.8  # 根据mindspore安装包的版本号进行切换,r1.8表示mindsopre=1.8
yolov5在models-r1.8/offical/cv/yolov5目录下

3、配置优化

训练之前,需要改动几处地方:

  • 修改 yolov5/src/initializer.py脚本文件
from mindspore import nn
# 改成
from mindspore import nn, load_checkpoint, load_param_into_net

 

  • 修改yolov5/default_config.yaml配置文件
device_target: "GPU"    # 把"Ascend"改为“GPU”
  • 修改yolov5/backbone.py
修改类class SPP(nn.Cell)的内容:

class SPP(nn.Cell):
     def __init__(self, c1, c2, k=(5, 9, 13)):
        super(SPP, self).__init__()
        
        ...
        self.maxpool1 = ops.MaxPool2d(kernel_size=5, stride=1, pad_mode='same')    # 把原来的nn改为ops
        self.maxpool2 = ops.MaxPool2d(kernel_size=9, stride=1, pad_mode='same')    # 把原来的nn改为ops
        self.maxpool3 = ops.MaxPool2d(kernel_size=13, stride=1, pad_mode='same')   # 把原来的nn改为ops
        ...

由于天数卡对nn模块的MaxPool2d()没有适配,该算子耗时较长,改为ops模块的MaxPool2d(),训练和测试的速度能提速一倍。


4、训练/测试

  • 单卡
通过修改default_config.yaml配置文件的参数,直接在终端输入:
# 训练
python trian.py
# 验证
python val.py
  • 多卡
    首先,修改default_config.yaml配置文件:
is_distributed: 1  # 把0改为1
device_num: 2  # gpu的数量,根据实际情况设置
mindspore的多卡分布式训练,需要额外安装openmpi。
openmpi下载和安装:
wget -c https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz
tar xf openmpi-4.0.3.tar.gz
cd openmpi-4.0.3/
./configure --prefix=/usr/local/openmpi-4.0.3
make -j 16
sudo make install
echo -e "export PATH=/usr/local/openmpi-4.0.3/bin:\$PATH" >> ~/.bashrc
echo -e "export LD_LIBRARY_PATH=/usr/local/openmpi-4.0.3/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
验证openmpi是否安装成功,在终端输入openmpi --version,输出如下内容:
mpirun (Open MPI) 4.0.3
 
Report bugs to http://www.open-mpi.org/community/help/
创建run.sh,并把多卡分布式训练命令输入到run.sh
# run.sh
CUDA_VISIBLE_DEVICES=0,1
mpirun --allow-run-as-root -n N python train.py  # N为gpu的数量
 
 
 
 
 
0条评论
0 / 1000
覃****锋
3文章数
0粉丝数
覃****锋
3 文章 | 0 粉丝
覃****锋
3文章数
0粉丝数
覃****锋
3 文章 | 0 粉丝
原创

天数显卡基于国产框架mindspore的适配

2023-05-23 09:09:49
24
0

1、安装天数提供的mindspore安装包

天数显卡暂时还无法适配官方mindspore的适配,安装包需要天数提供。

2、下载mindspore的yolov5

git clone https://gitee.com/mindspore/models  # 默认下载最新版本
git checkout r1.8  # 根据mindspore安装包的版本号进行切换,r1.8表示mindsopre=1.8
yolov5在models-r1.8/offical/cv/yolov5目录下

3、配置优化

训练之前,需要改动几处地方:

  • 修改 yolov5/src/initializer.py脚本文件
from mindspore import nn
# 改成
from mindspore import nn, load_checkpoint, load_param_into_net

 

  • 修改yolov5/default_config.yaml配置文件
device_target: "GPU"    # 把"Ascend"改为“GPU”
  • 修改yolov5/backbone.py
修改类class SPP(nn.Cell)的内容:

class SPP(nn.Cell):
     def __init__(self, c1, c2, k=(5, 9, 13)):
        super(SPP, self).__init__()
        
        ...
        self.maxpool1 = ops.MaxPool2d(kernel_size=5, stride=1, pad_mode='same')    # 把原来的nn改为ops
        self.maxpool2 = ops.MaxPool2d(kernel_size=9, stride=1, pad_mode='same')    # 把原来的nn改为ops
        self.maxpool3 = ops.MaxPool2d(kernel_size=13, stride=1, pad_mode='same')   # 把原来的nn改为ops
        ...

由于天数卡对nn模块的MaxPool2d()没有适配,该算子耗时较长,改为ops模块的MaxPool2d(),训练和测试的速度能提速一倍。


4、训练/测试

  • 单卡
通过修改default_config.yaml配置文件的参数,直接在终端输入:
# 训练
python trian.py
# 验证
python val.py
  • 多卡
    首先,修改default_config.yaml配置文件:
is_distributed: 1  # 把0改为1
device_num: 2  # gpu的数量,根据实际情况设置
mindspore的多卡分布式训练,需要额外安装openmpi。
openmpi下载和安装:
wget -c https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz
tar xf openmpi-4.0.3.tar.gz
cd openmpi-4.0.3/
./configure --prefix=/usr/local/openmpi-4.0.3
make -j 16
sudo make install
echo -e "export PATH=/usr/local/openmpi-4.0.3/bin:\$PATH" >> ~/.bashrc
echo -e "export LD_LIBRARY_PATH=/usr/local/openmpi-4.0.3/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
验证openmpi是否安装成功,在终端输入openmpi --version,输出如下内容:
mpirun (Open MPI) 4.0.3
 
Report bugs to http://www.open-mpi.org/community/help/
创建run.sh,并把多卡分布式训练命令输入到run.sh
# run.sh
CUDA_VISIBLE_DEVICES=0,1
mpirun --allow-run-as-root -n N python train.py  # N为gpu的数量
 
 
 
 
 
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0