【2023 · CANN训练营第一季】应用开发深入讲解——第三章应用调试

举报
STRUGGLE_xlf 发表于 2023/05/09 23:31:05 2023/05/09
【摘要】 学习资源日志参考文档应用开发FAQ日志主要用于记录系统的运行过程及异常信息,帮助快速定位系统运行过程中出现的问题以及开发过程中的程序调试问题。日志分为如下两大类:系统类日志:系统运行产生的日志。主要包括:Control CPU上的系统类日志,包括用户态日志和内核态日志。非Control CPU(例如TSDUMP/LP)上的系统类日志。应用类日志:运行应用程序产生的日志。主要包括:compi...

学习资源

日志参考文档

image.png

应用开发FAQ

日志主要用于记录系统的运行过程及异常信息,帮助快速定位系统运行过程中出现的问题以及开发过程中的程序调试问题。
日志分为如下两大类:

  • 系统类日志:系统运行产生的日志。主要包括:
    Control CPU上的系统类日志,包括用户态日志和内核态日志。
    非Control CPU(例如TSDUMP/LP)上的系统类日志。
  • 应用类日志:运行应用程序产生的日志。主要包括:
    compiler中各组件(如GE、FE、AICPU、TBE、HCCL等)、runtime中各组件(如AscendCL、GE、Runtime等)打印的日志。
    Device侧AICPU 、HCCP打印的日志。

日志处理机制介绍

Ascend EP场景(推理/训练)

启动日志进程
设备完成驱动安装后日志进程自动启动。Device侧包括slogd进程、sklogd进程和log-daemon进程;Host侧则通过libalog.so采集Host侧的应用类日志,libalog.so文件包含在compiler和runtime目录下。

采集日志
在Device侧,slogd进程采集Control CPU上的系统类日志和应用类日志;log-daemon进程采集非Control CPU上的系统类日志。

在Host侧,libalog.so采集Host侧的应用类日志。

记录日志
Device侧系统类日志:slogd进程将Control CPU上的系统类日志记录在Device侧以“device-os”为开头命名的日志文件中;log-daemon进程将非Control CPU上的系统类日志记录在Device侧以“device-id”为开头命名的日志文件中。
应用类日志:Device侧的slogd进程将Device侧应用类日志回传给Host侧的libalog.so,libalog.so将接收到的Device侧应用类日志与Host侧应用类日志分别记录在Host侧以“device-pid”和“plog-pid”为开头命名的日志文件中。

如果Device侧的应用类日志回传到Host侧失败,会在Device侧直接落盘,记录在以“device-app-pid”为开头命名的日志文件中。如果Device侧的应用类日志回传到Host侧成功,则不会在Device侧落盘。

传输日志
Device侧系统类日志可以通过部署在Host侧的msnpureport工具从Device侧传输给Host侧。

Ascend RC 场景(推理)

日志进程
设备完成驱动安装后日志进程自动启动。包括slogd进程、sklogd进程和log-daemon进程。

采集日志
log-daemon进程采集非Control CPU上的系统类日志;slogd进程采集Control CPU上的系统类日志和应用类日志。

将日志记录到文件中
slogd对接收的日志进行分类,应用类日志由slogd记录在以“device-app-pid”为开头命名的日志文件中;Control CPU上的系统类日志由slogd记录在以“device-os”为开头命名的日志文件中。

非Control CPU上的系统类日志由log-daemon进程记录在以“device-id”为开头命名的日志文件中。

日志类型及类别介绍

日志级别等级由低到高顺序:DEBUG < INFO < WARNING < ERROR,级别越低,输出日志越详细。
image.png

日志记录格式介绍

样例

[ERROR] TEFUSION(12940,atc):2021-10-17-05:54:07.599.074 [tensor_engine/te_fusion/pywrapper.cc:33]InitPyLogger Failed to import te.platform.log_util

日志格式

[Level] ModuleName(PID,PName):DateTimeMS [FileName:LineNumber]LogContent

日志字段说明
image.pngimage.png

日志的默认输出方式为将日志保存在log文件中,也可以通过设置环境变量ASCEND_SLOG_PRINT_TO_STDOUT将日志打屏显示。

设置命令如下:

export ASCEND_SLOG_PRINT_TO_STDOUT=1
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。