Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
docs
提交
a0d98b30
D
docs
项目概览
MindSpore
/
docs
通知
4
Star
2
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a0d98b30
编写于
8月 14, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 14, 2020
浏览文件
操作
浏览文件
下载
差异文件
!643 add gpu multi-server tutorial
Merge pull request !643 from yuchaojie/add_multi_node_doc_for_gpu
上级
5cfb584f
897ecab2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
0 deletion
+32
-0
tutorials/source_zh_cn/advanced_use/distributed_training_gpu.md
...als/source_zh_cn/advanced_use/distributed_training_gpu.md
+32
-0
未找到文件。
tutorials/source_zh_cn/advanced_use/distributed_training_gpu.md
浏览文件 @
a0d98b30
...
...
@@ -11,6 +11,7 @@
-
[
数据并行模式加载数据集
](
#数据并行模式加载数据集
)
-
[
定义网络
](
#定义网络
)
-
[
运行脚本
](
#运行脚本
)
-
[
运行多机脚本
](
#运行多机脚本
)
<!-- /TOC -->
...
...
@@ -44,6 +45,13 @@
>
> 参考NCCL官网教程安装:<https://docs.nvidia.com/deeplearning/nccl/install-guide/index.html#debian>。
-
主机间免密登陆(涉及多机训练时需要)。若训练涉及多机,则需要配置多机间免密登陆,可参考以下步骤进行配置:
1.
每台主机确定同一个用户作为登陆用户(不推荐root);
2.
执行
`ssh-keygen -t rsa -P ""`
生成密钥;
3.
执行
`ssh-copy-id DEVICE-IP`
设置需要免密登陆的机器IP;
4.
执行
`ssh DEVICE-IP`
,若不需要输入密码即可登录,则说明以上配置成功;
5.
在所有机器上执行以上命令,确保两两互通。
### 调用集合通信库
在GPU硬件平台上,MindSpore分布式并行训练的通信使用的是NCCL。
...
...
@@ -112,3 +120,27 @@ epoch: 1 step: 1, loss is 2.3025854
epoch: 1 step: 1, loss is 2.3025854
```
## 运行多机脚本
若训练涉及多机,则需要额外在
`mpirun`
命令中设置多机配置。你可以直接在
`mpirun`
命令中用
`-H`
选项进行设置,比如
`mpirun -n 16 -H DEVICE1_IP:8,DEVICE2_IP:8 python hello.py`
,表示在ip为DEVICE1_IP和DEVICE2_IP的机器上分别起8个进程运行程序;或者也可以构造一个如下这样的hostfile文件,并将其路径传给
`mpirun`
的
`--hostfile`
的选项。hostfile文件每一行格式为
`[hostname] slots=[slotnum]`
,hostname可以是ip或者主机名。
```
bash
DEVICE1
slots
=
8
DEVICE2
slots
=
8
```
两机十六卡的执行脚本如下,需要传入变量
`DATA_PATH`
和
`HOSTFILE`
,表示数据集的路径和hostfile文件的路径。更多mpirun的选项设置可见OpenMPI的官网。
```
bash
#!/bin/bash
DATA_PATH
=
$1
HOSTFILE
=
$2
rm
-rf
device
mkdir
device
cp
./resnet50_distributed_training.py ./resnet.py ./device
cd
./device
echo
"start training"
mpirun
-n
16
--hostfile
$HOSTFILE
-x
DATA_PATH
=
$DATA_PATH
-x
PATH
-mca
pml ob1 pytest
-s
-v
./resnet50_distributed_training.py
>
train.log 2>&1 &
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录