ASC_CPU_LOG【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√功能说明提供Host侧打印Log的功能。开发者可以在算子的TilingFunc代码中使用ASC_CPU_LOG_XXX接口来输出相关内容。一般情况下开发者也可以选择使用printf等Host侧通用的打印方式进行调试。然而在Tiling下沉场景中由于Tiling函数运行在AI CPU上必须使用本接口进行打印。非Tiling下沉场景日志输出到plog中。比如debug级别的日志输出到/root/ascend/log/debug/plog中日志级别通过环境变量控制。会打印日志级别、时间戳、日志所在代码行和日志所在函数名。Tiling下沉场景日志不会输出到plog中而是需要落盘并进行解析。算子运行之前需要开启Dump功能使得日志Dump功能生效。如何开启Dump功能依赖于具体的网络运行方式。以TorchAir图模式为例需要配置enable_dump、dump_path、dump_mode等Dump参数。详细说明可参考《PyTorch图模式使用指南(TorchAir)》中的“max-autotune模式功能算子输入输出dump功能图模式”章节。示例如下import torch_npu, torchair config torchair.CompilerConfig() # data dump开关[必选] config.dump_config.enable_dump True # dump类型[可选]all代表dump所有数据 config.dump_config.dump_mode all # dump路径[可选]缺省为当前目录 config.dump_config.dump_path /home/dump ...算子运行完成后在Dump数据存放路径下会有日志Dump文件生成文件名命名规则格式为_{op_type}.{op_name}.{taskid}.{stream_id}.{timestamp}其中{op_type}表示算子类型{op_name}表示算子名称{taskid}表示调用算子计算接口的taskId{stream_id}表示算子具体执行的流Id{timestamp}_表示时间戳。需要包含的头文件#include utils/log/asc_cpu_log.h函数原型#define ASC_CPU_LOG_ERROR(format, ...) #define ASC_CPU_LOG_INFO(format, ...) #define ASC_CPU_LOG_WARNING(format, ...) #define ASC_CPU_LOG_DEBUG(format, ...)参数说明表 1参数说明参数名输入/输出描述format输入格式控制字符串包含两种类型普通字符和转换说明。普通字符将直接输出。转换说明用于控制参数的格式化输出。每个转换说明以百分号%开始后跟类型说明符用于指定输出数据的类型。支持的数据类型和C/C规范保持一致。...输入附加参数数量和类型可变的参数列表。其数量和类型需与格式控制字符串中的%标签数量和类型匹配。每个参数将替换格式字符串中的相应%标签以实现预期的输出效果。返回值说明无约束说明Tiling下沉场景下若使用旧版本CANN包不支持ASC_CPU_LOG接口生成的自定义算子工程需特别注意兼容性问题此时调用该接口无法输出日志。您可以通过查看自定义算子工程下cmake/device_task.cmake中有无DEVICE_OP_LOG_BY_DUMP字段来确认当前工程是否支持日志Dump功能如果未找到该字段则需要重新生成自定义算子工程。调用示例#include utils/log/asc_cpu_log.h namespace optiling { static ge::graphStatus TilingFunc(gert::TilingContext *context) { TilingData tiling; uint32_t totalLength context-GetInputShape(0)-GetOriginShape().GetShapeSize(); ... ASC_CPU_LOG_ERROR(I am ERROR log: %d\n, 0x123); ASC_CPU_LOG_INFO(I am INFO log: %d\n, 0x123); ASC_CPU_LOG_WARNING(I am WARNING log: %d\n, 0x123); ASC_CPU_LOG_DEBUG(I am DEBUG log: %d\n, 0x123); ... } } // namespace optiling非Tiling下沉场景打印会输出至xxxxxxx_2025xxxxxxxxxxxxx.log中结果示例如下[ERROR] ASCENDCKERNEL(xxx,execute_add_op):2025-xx-xx-xx:xx:xx.xxx.xxx [/xxx/xxx.cpp:xx][TilingFunc] I am ERROR log: 291 [INFO] ASCENDCKERNEL(xxx,execute_add_op):2025-xx-xx-xx:xx:xx.xxx.xxx [/xxx/xxx.cpp:xx][TilingFunc] I am INFO log: 291 [WARNING] ASCENDCKERNEL(xxx,execute_add_op):2025-xx-xx-xx:xx:xx.xxx.xxx [/xxx/xxx.cpp:xx][TilingFunc] I am WARNING log: 291 [DEBUG] ASCENDCKERNEL(xxx,execute_add_op):2025-xx-xx-xx:xx:xx.xxx.xxx [/xxx/xxx.cpp:xx][TilingFunc] I am DEBUG log: 291【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考