set_printf_params
功能说明
设置printf参数。
函数原型
def set_printf_params(print_workspace_size=128, single_print_length=512, is_printf_to_screen=True, printf_file_path=None)
参数说明
参数名称 |
输入/输出 |
含义 |
---|---|---|
print_workspace_size |
输入 |
打印总空间大小,如果算子有多个核并行运行,则打印总空间大小包括所有核的空间之和,各个核均匀切分。 单位:M Byte。 范围:[1, 32768] 默认值:128, 表示128M 空间。 支持的数据类型:立即数(int) |
single_print_length |
输入 |
单个print 语句占用的固定长度。如果单个print语句的空间少于这个值,也会占用这个值的空间。 单位:Byte 范围:[64, print_workspace_size*1024*1024//核数 -32],其中“print_workspace_size”:参看print_workspace_size参数说明;“核数”和算子相关,由算子开发者指定核的数量,即多核for_range的block_num。 默认值:512 Byte 支持的数据类型:立即数(int) 注意: 值必须是32 字节的整数倍。 |
is_printf_to_screen |
输入 |
printf语句是否打印到屏幕,类型为bool。默认为True,打印到屏幕;可以设置为False,不打印到屏幕。 |
printf_file_path |
输入 |
printf语句打印文件路径。默认为None,不打印到文件;可以用字符串表示文件路径,printf结果保存在该路径的[kernel_name].txt中。 |
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas 推理系列产品(Ascend 310P处理器)
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
返回值
无
注意事项
- set_printf_params必须在所有printf前调用,可选择不调用set_printf_params直接使用printf。
- 在一个算子内,set_printf_params只能调用1次,多次调用会报错。
- 打印总空间大小的最大大小与设备DDR内存大小有关,否则可能导致算子运行失败。
- print_workspace_size*1024*1024 需要被多核for_range的block_num整除。
- print_workspace_size*1024*1024 需要大于等于多核for_range的block_num * (32 + single_print_length )。
- 请确保可创建printf_file_path目录
调用示例
from tbe import tik tik_instance = tik.Tik() # 设置整体workspace空间为1MB, 单条打印最大长度为256B tik_instance.set_printf_params(1, 256) scalar = tik_instance.Scalar("int8", init_value=-128) tik_instance.printf("scalar is: %d\n", scalar) tik_instance.BuildCCE(inputs=[], outputs=[], kernel_name="print_scalar") tik_instance.tikdb.start_debug({}) 输入 [] 输出 scalar is: -128