Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
d4948bc1
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
d4948bc1
编写于
8月 31, 2021
作者:
R
Roc
提交者:
GitHub
8月 31, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add flags to control whether to check Nan value of hccl_allreduce_sum. (#35093) (#35298)
Co-authored-by:
N
gongweibao
<
weibao.gong@gmail.com
>
上级
b36fb036
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
3 deletion
+14
-3
paddle/fluid/operators/collective/c_allreduce_op.h
paddle/fluid/operators/collective/c_allreduce_op.h
+10
-3
paddle/fluid/platform/flags.cc
paddle/fluid/platform/flags.cc
+3
-0
python/paddle/fluid/__init__.py
python/paddle/fluid/__init__.py
+1
-0
未找到文件。
paddle/fluid/operators/collective/c_allreduce_op.h
浏览文件 @
d4948bc1
...
...
@@ -45,6 +45,10 @@ limitations under the License. */
#include "paddle/fluid/platform/hccl_helper.h"
#endif
#if defined(PADDLE_WITH_ASCEND_CL)
DECLARE_bool
(
hccl_check_nan
);
#endif
namespace
paddle
{
namespace
operators
{
...
...
@@ -140,6 +144,7 @@ inline bool ContainsNan(const paddle::platform::NPUDeviceContext& dev_ctx,
try
{
const
auto
&
runner_mean
=
paddle
::
operators
::
NpuOpRunner
(
"ReduceMeanD"
,
{
*
in
},
{
mean
},
{{
"axes"
,
axes
},
{
"keep_dims"
,
false
}});
runner_mean
.
Run
(
stream
);
TensorToVector
(
mean
,
dev_ctx
,
&
vec
);
}
catch
(...)
{
LOG
(
WARNING
)
<<
"ContainsNan catch exception"
;
...
...
@@ -233,9 +238,11 @@ class CAllReduceOpASCENDKernel : public framework::OpKernel<T> {
break
;
}
case
framework
::
proto
::
VarType
::
FP32
:
{
VLOG
(
4
)
<<
"prepare to FoundNanInf"
;
found_nan
=
ContainsNan
(
*
dev_ctx
,
dev_ctx
->
stream
(),
in
);
VLOG
(
4
)
<<
"check_numerics:"
<<
found_nan
;
if
(
FLAGS_hccl_check_nan
)
{
VLOG
(
3
)
<<
"prepare to FoundNanInf"
;
found_nan
=
ContainsNan
(
*
dev_ctx
,
dev_ctx
->
stream
(),
in
);
VLOG
(
3
)
<<
"check_numerics:"
<<
found_nan
;
}
break
;
}
default:
...
...
paddle/fluid/platform/flags.cc
浏览文件 @
d4948bc1
...
...
@@ -93,6 +93,9 @@ DEFINE_string(selected_npus, "",
"This option is useful when doing multi process training and "
"each process have only one device (NPU). If you want to use "
"all visible devices, set this to empty string."
);
DEFINE_bool
(
hccl_check_nan
,
false
,
"Check Nan in tensor before hccl_allreduce_sum otherwise it'll "
"core when meets Nan value"
);
DEFINE_string
(
npu_config_path
,
""
,
"The absolute path of configuration json file, like: /tmp/config.json. "
...
...
python/paddle/fluid/__init__.py
浏览文件 @
d4948bc1
...
...
@@ -248,6 +248,7 @@ def __bootstrap__():
'gpu_memory_limit_mb'
,
'npu_config_path'
,
'get_host_by_name_time'
,
'hccl_check_nan'
,
]
core
.
init_gflags
([
"--tryfromenv="
+
","
.
join
(
read_env_flags
)])
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录