昇腾社区首页
中文
注册

定界与定位流程

简介

当PyTorch网络在昇腾NPU上以图模式运行出现了入图失败(如断图),可按图1进行问题定位。

整体定位流程大致如下,请根据实际情况逐一排查。

  1. 判断PyTorch模型在单算子模式下是否运行成功。

    若失败可能存在部分算子在NPU上不支持,优先打通单算子模式,具体可参考torch_npu资料;若成功进入步骤2

  2. 判断图模式backend采用Eager后端是否运行成功。若失败可能FX图本身执行存在问题,若成功进入步骤3
  3. 判断图模式backend采用NPU后端是否运行成功。若失败可能是FX成图存在断图问题,需要检视PyTorch脚本分析断图原因;若成功进入步骤4
  4. 如果FX成图没问题,需要判断问题出现在TorchAir的converter转换阶段还是底层算子编译、执行阶段。

    请打开TorchAir的C++和Python侧debug日志,根据报错提示和具体的失败堆栈信息,自行分析和解决问题。若无法解决,获取日志后您可以单击Link联系技术支持。

图1 入图问题分析流程

关键数据获取

入图失败后,一般需要借助如下信息辅助问题的定界与定位,请用户根据实际情况获取。

关键数据

说明

TorchAir的Python侧日志

参考TorchAir Python层日志,在PyTorch脚本中添加logger.setLevel(logging.DEBUG),查看debug日志。

TorchAir的C++侧日志

参考TorchAir C++层日志,设置环境变量export TNG_LOG_LEVEL=0,查看C++日志。

TorchAir dump图

参考图结构dump功能,在PyTorch脚本中设置config.debug.graph_dump.type="pbtxt" ,查看TorchAir dump图信息。

GE dump图

参考《CANN 环境变量参考》中的“DUMP_GE_GRAPH”章节,设置环境变量DUMP_GE_GRAPH,查看GE的dump图信息。

CANN侧plog日志

  • 参考《CANN 环境变量参考》中的“ASCEND_GLOBAL_LOG_LEVEL”章节,设置环境变量export ASCEND_GLOBAL_LOG_LEVEL=0开启plog debug日志。
  • 参考《CANN 环境变量参考》中的“ASCEND_SLOG_PRINT_TO_STDOUT”章节,设置环境变量export ASCEND_SLOG_PRINT_TO_STDOUT=1开启日志打印。