printf/PRINTF功能
功能介绍
使用工具进行算子调测时,支持printf/PRINTF功能,可以打印Scalar数据。
 
 
     - CPU调测场景下支持printf和PRINTF打印,其中printf采用C++原生打印功能,不受dump-mode或CpuOptions.dump_mode参数控制。
- NPU调测场景下支持printf和PRINTF打印,受dump-mode或NpuCompileInfo.dump_mode参数控制。
- 固定为每个核分配的打印数据的最大可使用空间为1M,目前该大小不支持修改,若打印超过1M,打印内容不再显示,请开发者控制待打印的数据量。
使用方法(命令行)
使用方法(API)
- 在核函数代码中按需在目标位置加上printf或PRINTF语句,接口说明参见表1,以PRINTF打印为例:PRINTF("1 fmt string d %d\n", 6666); PRINTF("1 fmt string lf %lf\n", float(61.556));
- 调用算子编译及运行接口,对应options配置为dump_mode='normal'。以标准自定义场景下NPU上板打印Scalar数据为例:compile_npu_options = ascendebug.CompileNpuOptions(dump_mode='normal') name, kernel_file, extern = op_executor.compile_custom_npu(customize_path, tiling_info.tiling_key, compile_npu_options) npu_compile_info = ascendebug.NpuCompileInfo(syncall=extern['cross_core_sync'], task_ration=extern['task_ration'], dump_mode='normal') run_npu_options = ascendebug.RunNpuOptions() op_executor.run_npu(kernel_file, run_npu_options, npu_compile_info=npu_compile_info, tiling_info=tiling_info) 
- 查看屏显打印结果,示例如下。 
接口说明
| 函数原型 | 
 | |
| 函数功能 | 打印Scalar数据。 | |
| 参数(IN) | fmt | 格式控制字符串,包含两种类型的对象:普通字符和转换说明。 
 | 
| args | 附加参数,个数和类型可变的输出列表:根据不同的fmt字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了fmt参数中指定的每个%标签。参数的个数应与%标签的个数相同。 | |
| 参数(OUT) | NA | - | 
| 返回值 | NA | - | 
| 使用约束 | 
 | |
| 调用示例 | // 整型打印:
printf("fmt string %d", 0x123);
PRINTF("fmt string %d", 0x123);
// 指针打印:
int *a;
printf("TEST %p", a);
PRINTF("TEST %p", a); | |
     父主题: 更多功能