Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
5402f8e7
P
Paddle
项目概览
Crayon鑫
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
5402f8e7
编写于
10月 27, 2021
作者:
X
xiongkun
提交者:
GitHub
10月 27, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bugfix: only check backend when mode == Collecive (#36758) (#36772)
* bugfix: only check backend when mode == Collecive
上级
c542d571
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
20 addition
and
10 deletion
+20
-10
python/paddle/distributed/fleet/launch.py
python/paddle/distributed/fleet/launch.py
+20
-10
未找到文件。
python/paddle/distributed/fleet/launch.py
浏览文件 @
5402f8e7
...
@@ -334,7 +334,20 @@ def launch_ps(args, distribute_mode):
...
@@ -334,7 +334,20 @@ def launch_ps(args, distribute_mode):
return
return
def
infer_backend
(
args
):
if
args
.
backend
!=
"auto"
:
return
if
fluid
.
core
.
is_compiled_with_cuda
():
args
.
backend
=
'nccl'
elif
fluid
.
core
.
is_compiled_with_npu
():
args
.
backend
=
'unknown'
elif
fluid
.
core
.
is_compiled_with_xpu
():
args
.
backend
=
'bkcl'
else
:
args
.
backend
=
'gloo'
def
which_distributed_mode
(
args
):
def
which_distributed_mode
(
args
):
infer_backend
(
args
)
# modify the args.backend
if
args
.
run_mode
is
not
None
:
if
args
.
run_mode
is
not
None
:
assert
args
.
run_mode
in
[
"collective"
,
"ps"
,
"ps-heter"
]
assert
args
.
run_mode
in
[
"collective"
,
"ps"
,
"ps-heter"
]
...
@@ -368,12 +381,9 @@ def which_distributed_mode(args):
...
@@ -368,12 +381,9 @@ def which_distributed_mode(args):
if
fluid
.
core
.
is_compiled_with_cuda
():
if
fluid
.
core
.
is_compiled_with_cuda
():
accelerators
=
fluid
.
core
.
get_cuda_device_count
()
accelerators
=
fluid
.
core
.
get_cuda_device_count
()
args
.
backend
=
'nccl'
elif
fluid
.
core
.
is_compiled_with_npu
():
elif
fluid
.
core
.
is_compiled_with_npu
():
args
.
backend
=
'unknown'
accelerators
=
fluid
.
core
.
get_npu_device_count
()
accelerators
=
fluid
.
core
.
get_npu_device_count
()
elif
fluid
.
core
.
is_compiled_with_xpu
():
elif
fluid
.
core
.
is_compiled_with_xpu
():
args
.
backend
=
'bkcl'
accelerators
=
fluid
.
core
.
get_xpu_device_count
()
accelerators
=
fluid
.
core
.
get_xpu_device_count
()
else
:
else
:
accelerators
=
0
accelerators
=
0
...
@@ -400,7 +410,6 @@ def which_distributed_mode(args):
...
@@ -400,7 +410,6 @@ def which_distributed_mode(args):
But found args.servers not empty, default use ps mode"
)
But found args.servers not empty, default use ps mode"
)
return
DistributeMode
.
PS
return
DistributeMode
.
PS
else
:
else
:
args
.
backend
=
"gloo"
return
DistributeMode
.
COLLECTIVE
return
DistributeMode
.
COLLECTIVE
else
:
else
:
logger
.
warning
(
logger
.
warning
(
...
@@ -583,20 +592,21 @@ def launch():
...
@@ -583,20 +592,21 @@ def launch():
_print_arguments
(
args
)
_print_arguments
(
args
)
if
args
.
backend
==
'auto'
:
if
args
.
backend
==
'auto'
:
distribute_mode
=
which_distributed_mode
(
args
)
distribute_mode
=
which_distributed_mode
(
assert
args
.
backend
in
[
args
)
# which_distributed_mode must modify args.backend
'gloo'
,
'nccl'
,
'bkcl'
,
'unknown'
]
# which_distributed_mode must modify args.backend
else
:
else
:
assert
args
.
run_mode
==
'collective'
or
args
.
run_mode
==
None
,
"When backend is not 'auto', run mode must be collective"
assert
args
.
run_mode
==
'collective'
or
args
.
run_mode
==
None
,
"When backend is not 'auto', run mode must be collective"
check_backend
(
args
.
backend
)
check_backend
(
args
.
backend
)
distribute_mode
=
DistributeMode
.
COLLECTIVE
distribute_mode
=
DistributeMode
.
COLLECTIVE
block_windows_and_macos
(
assert
args
.
backend
in
[
'gloo'
,
'nccl'
,
'bkcl'
,
'unknown'
]
args
.
backend
)
# raise error when using gloo on windows or macos
if
args
.
backend
==
'gloo'
:
if
args
.
backend
==
'gloo'
:
logger
.
warning
(
"launch start with CPUONLY mode"
)
logger
.
warning
(
"launch start with CPUONLY mode"
)
block_windows_and_macos
(
args
.
backend
)
# raise error when using gloo on windows or macos
if
enable_elastic
(
args
,
distribute_mode
):
if
enable_elastic
(
args
,
distribute_mode
):
launch_elastic
(
args
,
distribute_mode
)
launch_elastic
(
args
,
distribute_mode
)
return
return
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录