当前位置: 首页 > news >正文

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

学习资源

日志参考文档

在这里插入图片描述

应用开发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,级别越低,输出日志越详细。
在这里插入图片描述

日志记录格式介绍

样例

[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

日志字段说明
在这里插入图片描述

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

设置命令如下:

export ASCEND_SLOG_PRINT_TO_STDOUT=1
http://www.lryc.cn/news/65836.html

相关文章:

  • 黎曼几何与黎曼流形
  • lua | 运算符与字符串
  • NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成
  • ADRV9002官方例程开发过程中遇到的问题
  • Figma转换为sketch,分享这3款工具
  • 淘宝天猫1688京东商品详情API接口,封装接口可高并发
  • 虹科荣誉 | 虹科工业物联网产品荣获中国自动化产业年会用户信赖产品奖!
  • SwiftUI 如何让文本自动支持查找和替换功能?
  • SpringCloud全面学习笔记之初尝美妙篇
  • Spring MVC框架
  • Illustrator如何使用图层与蒙版之实例演示?
  • Office Tool Plus的使用
  • ​射频PCB 设计​的六大条技巧
  • 优化了成本和安装难度后,UWB信标能否取代蓝牙信标?
  • 深入理解Java虚拟机——垃圾回收算法
  • git-rebase和merge
  • 【JavaWeb 用户认证】Cookie、Session、Token、JWT、Interceptor、SpringBoot、Spring Security
  • 6个月的测试,来面试居然要15K,我一问连5K都不值
  • RSA--维纳攻击--代码和题目分析
  • 飞腾ft2000-麒麟V10-SP1安装Docker、运行gitlab容器
  • C++ 的类型转换
  • 【Windows】普通控制台EXE程序转为windows服务方式运行的详细步骤
  • NSSCTF [suctf 2019]hardcpp WP 控制流混淆
  • 计算机毕业论文内容参考|基于神经网络的网络安全态势感知技术研究
  • Flask框架之Request、Response、Cookies、Session等对象的使用
  • 信号与槽机制一
  • nodejs 复制文件到指定目录
  • 第八章 使用Apache服务部署静态网站
  • Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用
  • 盲目自学网络安全只会成为脚本小子?