pypto_pro.language.printf#
产品支持情况#
Ascend 950PR/Ascend 950DT:支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
功能说明#
在Kernel运行时按格式串打印标量值或指针,用于调试。格式串遵循C printf语法的受限子集。
该接口通过设备侧打印机制输出,具体查看位置由运行环境的CANN日志配置决定。printf运行在S(标量)流水上,有显著运行时开销,仅用于调试,生产环境应移除。
函数原型#
pypto_pro.language.printf(format_str, *args, *, loc=False)
参数类型#
参数 |
输入/输出 |
说明 |
|---|---|---|
|
输入 |
格式串,必须是编译时常量字符串 |
|
输入 |
要打印的标量值或Ptr指针,数量和类型须与格式串中的格式说明符匹配 |
|
输入 |
可选,是否在输出前打印源文件/行号 |
参数范围#
参数 |
输入/输出 |
说明 |
|---|---|---|
|
输入 |
编译时常量字符串,不能是运行时变量 |
|
输入 |
支持Python |
|
输入 |
|
流水类型#
S(标量流水)。
调用示例#
import pypto_pro.language as pl
# 打印整数
pl.printf("flag=%d, offset=%d\n", flag, offset)
# 打印浮点(仅 FP32)
pl.printf("value=%+08.3f\n", value_f32)
# 打印十六进制
pl.printf("addr=%#08x\n", addr_u32)
# 纯文本(无参数)
pl.printf("reached checkpoint A\n")
# 带源码位置
pl.printf("debug: i=%d\n", i, loc=True)
示例输出:
调用 |
输出(假设flag = 1, offset = 32, value_f32 = 3.14, addr_u32 = 0x1234, i = 5) |
|---|---|
|
|
|
|
|
|
|
|
|
|