数据准备
- 当训练过程中发现AI Core Error问题时,用户需在重新执行训练前导入如下环境变量。
export DUMP_GE_GRAPH=1 # 控制dump图的内容多少,取值为1,全量dump export DUMP_GRAPH_LEVEL=1 # 控制dump图的个数,取值为1,dump所有图 export ASCEND_GLOBAL_LOG_LEVEL=1 # 设置全局日志级别,取值为1,代表INFO
- 当训练过程中发现AI Core Error问题时,用户可参考如下步骤配置op_debug_level和enable_exception_dump参数。
- Estimator模式下,开启op_debug_level和enable_exception_dump:
from npu_bridge.estimator.npu.npu_config import NPURunConfig from npu_bridge.estimator.npu.npu_config import DumpConfig session_config=tf.ConfigProto() config = NPURunConfig( op_debug_level = 2, # 开启算子debug功能。 session_config=session_config, enable_exception_dump=1 # Dump AI Core Error算子的输入和输出信息,dump信息生成在当前脚本执行目录。不支持dump动态shape算子。 )
- sess.run模式下,开启op_debug_level和enable_exception_dump:
import tensorflow as tf from npu_bridge.estimator import npu_ops from tensorflow.core.protobuf.rewriter_config_pb2 import RewriterConfig config = tf.ConfigProto() custom_op = config.graph_options.rewrite_options.custom_optimizers.add() custom_op.name = "NpuOptimizer" custom_op.parameter_map["use_off_line"].b = True custom_op.parameter_map["enable_exception_dump"].i = 1 # Dump AI Core Error算子的输入和输出信息,dump信息生成在当前脚本执行目录。不支持dump动态shape算子。 custom_op.parameter_map["op_debug_level"].i = 2 # 开启算子debug功能。 config.graph_options.rewrite_options.remapping = RewriterConfig.OFF # 关闭remap开关 with tf.Session(config=config) as sess: print(sess.run(cost))
表1 op_debug_level参数取值说明 取值
说明
0
不开启算子debug功能,默认为0。
1
开启算子debug功能,在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),用于后续工具进行AI Core Error问题定位。
2
开启算子debug功能,在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),并关闭编译优化开关(开启ccec编译器选项-O0-g),用于后续工具进行AI Core Error问题定位,可定位到出错算子的代码行号。
- Estimator模式下,开启op_debug_level和enable_exception_dump:
- 重新执行训练后,会在训练执行目录下生成指令映射文件和异常算子dump文件。