MindSpore场景溢出检测
简介
msProbe 工具提供静态图O2编译等级下的溢出检测功能。其中检测对象为 kernel 级别,对应 config.json 配置中的 "L2" level。
需要注意,本工具仅支持在 INF/NAN 模式a下进行溢出检测。INF/NAN 模式的使能方式如下:
# 使能 CANN 侧 INF/NAN 模式
export INF_NAN_MODE_ENABLE=1
# 使能 MindSpore 框架侧 INF/NAN 模式
export MS_ASCEND_CHECK_OVERFLOW_MODE="INFNAN_MODE"
a:在处理浮点数计算溢出问题时,NPU 当前支持两种溢出模式:INF/NAN 模式与饱和模式。INF/NAN 模式遵循 IEEE 754 标准,根据定义输出 INF/NAN 的计算结果。与之对应的饱和模式在计算出现溢出时,饱和为浮点数极值(+-MAX)。对于 CANN 侧配置,Atlas 训练系列产品,默认为饱和模式,且不支持使用 INF/NAN 模式;Atlas A2训练系列产品,默认为 INF/NAN 模式,且不建议使用饱和模式。对于 MindSpore 框架侧配置,仅支持对 Atlas A2 训练系列产品进行设置,默认为 INF/NAN 模式。CANN 侧 与 MindSpore 框架侧配置须一致。
溢出检测任务的配置示例见MindSpore静态图场景-task配置为overflow_check。
使用前准备
环境准备
安装msProbe工具,详情请参见《msProbe安装指南》。
数据准备
采集精度数据,详情请参见MindSpore场景精度数据采集中的"接口介绍"章节。
约束
仅支持MindSpore框架。
示例代码
溢出检测功能使用方式与数据采集任务一致,详见MindSpore场景精度数据采集。
溢出检测结果文件介绍
溢出检测结果文件目录结构与含义与数据采集任务一致,但仅保存溢出 API 或 kernel 的真实数据或统计信息。详见MindSpore场景精度数据采集中的dump结果文件介绍章节。
说明:在静态图 O2 编译等级下,若 MindSpore 版本为 2.4,或者 MindSpore 版本为 2.5,且msProbe安装时使用的whl包在编译时未配置--include-mod=adump选项,则会产生 kernel_graph_overflow_check.json 中间文件,一般情况下无需关注。