收集AI Core Error问题信息

收集信息类别介绍

注意:在收集日志时,需收集本次AI Core Error问题附近时间的日志,旧日志中的不相关信息或其它报错信息可能导致后续msaicerr工具分析AI Core Error问题时报错。

信息类别

用途说明

Host侧应用类日志

在Host或Device上运行应用程序产生的调试或运行日志,用于查看用户态代码信息。

trace日志

查看软件栈的维测信息。

算子exception dump文件

dump出来的数据包括算子输入、算子数据、workspace数据等,用于后续由msaicerr工具分析问题时构造单算子用例。

异常算子编译信息

算子.o和.json文件,用于后续由msaicerr工具分析问题时构造单算子用例。

Device侧系统类日志

包括slog日志、syslog日志、黑匣子等,用于查看Device系统运行信息、驱动内核态信息等。

本节在收集AI Core Error信息时,涉及各类日志的获取、环境变量的设置,日志获取路径以默认路径来说明、环境变量设置方法以示例来说明:

收集信息前先判断是否需要复跑业务

注意:如果日志中的时间与发生AI Core Error问题的时间相距较远,则旧日志可能已经被覆盖或清理,这种场景需复跑业务后,再收集故障信息。

场景

是否复跑

依赖PyTorch/MindSpore/TensorFlow框架的业务,例如训练、在线推理

无需复跑业务

系统默认记录定位AI Core Error问题的信息。

不依赖或不使用PyTorch/MindSpore/TensorFlow框架的业务,例如离线推理、单算子调用、Ascend Graph等。

复跑业务

用户手动收集部分信息时,需要先设置环境变量、再跑业务,才能收集。例如收集算子exception dump文件时,需要先设置NPU_COLLECT_PATH环境变量。关于NPU_COLLECT_PATH的详细描述请参见NPU_COLLECT_PATH。关于手动收集信息的详细描述请参见用户手动收集步骤

若设置了环境变量NPU_COLLECT_PATH,会导致业务变慢,影响性能,不建议长期开启,定位问题之后建议及时关闭。

说明:

性能敏感、但磁盘资源充足的情况下,后续希望在不复跑业务的情况下自动生成exception dump文件分析AI Core Error问题,可调用AscendCL提供的aclInit接口开启异常算子Dump配置(即lite_exception配置)。该方式下,大部分网络,性能影响在1%以下,但开启后,多次AI Core Error问题生成的dump文件会消耗磁盘空间,用户需自行清理历史dump数据。详细接口说明请参见aclInit章节。

收集信息方式介绍

定位AI Core Error问题时,需提前收集故障信息,支持以下两种方式:

收集方式

使用说明

用户手动收集

仅收集与AI Core Error问题有关的信息,包括exception dump文件、算子编译信息、Host应用类日志文件。具体收集方法请参见用户手动收集步骤

工具自动收集

使用asys工具,收集所有故障相关信息(比手动收集的信息要多),包括安装版本信息、Device健康状态信息、exception dump文件、算子编译信息、全量日志文件等。具体收集方法请参见工具自动收集步骤

注意:asys工具使用场景有限,集群、容器、虚拟机、云场景不支持asys工具一键式收集故障信息。

用户手动收集步骤

工具自动收集步骤

asys工具的使用约束请参见asys工具功能及约束,在使用asys工具前需先安装、配置asys工具,请先参见asys工具使用指导(EP模式)处的前提条件说明。

使用工具收集信息后,需检查dfx/data-dump目录下是否存在dump文件、异常算子编译信息(算子编译*.o和*.json文件)、检查dfx/log/host/cann目录下是否日志文件,若不存在,则无法使用msaicerr工具提取AI Core Error信息。