【cann文档速递15期】了解与使用日志-4008云顶国际网站

昇腾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生态。任何意见和建议都可以在昇腾社区反馈,您的每一份关注都是我们前进的动力。 

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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