【CANN文档速递15期】了解与使用日志

举报
昇腾CANN 发表于 2022/09/20 19:37:55 2022/09/20
【摘要】 训练/推理工程开发完成后,您会到运行环境中执行,以调试工程是否正常运行,此时,可能会出现各种各样、五花八门的异常状况。 当问题发生时,我们的第一反应就是查看日志,那日志文件在哪?又如何查看到想要的日志内容呢?本期带您了解如何使用昇腾AI处理器日志功能。
01 了解日志分类及产生流程
根据工程运行过程中日志产生的场景不同,日志通常被分为以下两类:
√ 应用类日志:用户进程在Host侧和Device侧产生的日志。例如,一个推理/训练任务下发后,通常与本次推理/训练直接相关的日志都存放在应用类日志中。
√ 系统类日志:非用户进程在Device侧产生的日志,即Device侧常驻进程运行产生的日志通常都在存放在系统类日志中。
 
上述两类日志在系统中产生过程如图所示:
图片

02 如何获取日志文件

当运行工程出现异常时,需要到哪里查看日志呢?本节来揭秘。

昇腾AI处理器具有EP和RC两种形态,针对不同的硬件形态,日志文件存放位置不同,需根据实际硬件形态获取。

▶ EP场景日志获取

√ 应用类日志

这类日志默认存放在“$HOME/ascend/log”路径下,格式如下:
log
├── plog
│   └── plog-pid_*.log     //用户进程在Host侧产生的日志  
└── device-id
    └──device-pid_*.log    //用户进程在Device侧产生的日志
样例:
图片


√ 系统类日志
这类日志生成时默认存放在Device侧/var/log/npu/slog路径下,需要在Host侧通过msnpureport工具将其导出到Host侧再进行查看。命令举例:
$Driver_HOME/driver/tools/msnpureport -a
通过msnpureport工具导出到Host侧后,日志按Device侧文件夹存放,格式如下:
dev-os-id
├── device-os
│   └── device-os_*.log         // Device侧Control CPU上的系统类日志
├── device-id
│   └── device-id_*.log         // Device侧非Control CPU上的系统类日志
└── slogd
    └──slogdlog                       //日志工具自身的运行日志
样例:
图片

▶ RC形态日志获取

RC形态日志获取比较简单,不管是应用类日志还是系统类日志,均存放在/var/log/npu/slog路径下。存放格式与EP场景类似:
slog
├── device-os
│   └── device-os_*.log
├── device-id
│   └── device-id_*.log
├── device-app-pid
│   └── device-app-pid_*.log
└── slogd
    └── slogdlog
03 如何读懂日志内容
日志内容严格按照日志规范打印,每条日志格式一致、字段含义明确,便于阅读。日志格式、字段含义如下:
图片

日志内容可以通过cat、grep等命令查看。

04 如何设置日志级别

 日志级别定义

不同日志级别打印的日志内容详细程度不同,因此,问题定位时可以使用最详细日志(DEBUG)打印,而验证性能时使用最简日志(ERROR)打印即可。日志功能提供了5种级别供大家选择使用:
图片
说明
各级别日志详细程度:DEBUG > INFO > WARNING > ERROR
 
 设置日志级别

通过上面日志级别介绍,我们了解到可以根据自己需求设置不同的日志级别、打印不同详细程度的日志。那应该如何设置呢?

√ 应用类日志级别设置,通过在Host侧设置ASCEND_GLOBAL_LOG_LEVEL环境变量实现,例如设置INFO级别:
export ASCEND_GLOBAL_LOG_LEVEL=1
√ 系统类日志级别设置,针对EP和RC形态提供了不同的方法。
RC形态通过修改/var/log/npu/conf/slog/slog.conf配置文件、重启日志进程生效。
#note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), default(1)
global_level=1
# Event Type Log Flag, 0:disable, 1:enable, default(1)
enableEvent=1
# note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), 5:invalid(follow global_level)
SLOG=5                                     # Slog
IDEDD=5                                    # ascend debug device agent
DVPP=5                                     # DVPP
CCE=5                                      # CCE
EP形态通过msnpureport工具设置系统类日志级别。例如:
$Driver_HOME/driver/tools/msnpureport –g info
 
至此,日志相关功能已介绍完毕,您是否对日志功能有了初步的了解呢?若您需要了解更多更细的日志功能介绍,可参见昇腾社区中的《日志参考》。
图片

昇腾CANN文档中心致力于为开发者提供更优质的内容和更便捷的开发体验,助力CANN开发者共建AI生态。任何意见和建议都可以在昇腾社区反馈,您的每一份关注都是我们前进的动力。 

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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