DumpTensor

函数功能

基于算子工程开发的算子,可以使用该接口Dump指定Tensor的内容。同时支持打印自定义的附加信息(仅支持uint32_t 数据类型的信息),比如打印当前行号等。

具体的使用方法如下:

  1. 增加算子工程编译选项-DASCENDC_DUMP:修改算子工程op_kernel目录下的CMakeLists.txt文件,首行增加编译选项,打开DUMP开关,样例如下:
    add_ops_compile_options(ALL OPTIONS -DASCENDC_DUMP)
  2. 在算子kernel侧实现代码中需要打印Tensor数据的地方调用DumpTensor接口打印相关内容。
    DumpTensor(srcLocal,5, dataLen);

Dump时,每个block核的dump信息前会增加对应信息头DumpHead(32字节大小),用于记录核号和资源使用信息;每次Dump的Tensor数据前也会添加信息头DumpTensorHead(32字节大小),用于记录Tensor的相关信息。如下图所示,展示了多核打印场景下的打印信息结构。

DumpHead的具体信息如下:

DumpTensorHead的具体信息如下:

打印结果的样例如下:

DumpHead: block_id=0, total_block_num=16, block_remain_len=1048448, block_initial_space=1048576, magic=5aa5bccd
DumpTensor: desc=5, addr=0, data_type=DT_FLOAT16, position=UB
[40, 82, 60, 11, 24, 55, 52, 60, 31, 86, 53, 61, 47, 54, 34, 62, 84, 29, 48, 95, 16, 0, 20, 77, 3, 55, 69, 73, 75, 40, 35, 13]
DumpHead: block_id=1, total_block_num=16, block_remain_len=1048448, block_initial_space=1048576, magic=5aa5bccd
DumpTensor: desc=5, addr=0, data_type=DT_FLOAT16, position=UB
[58, 84, 22, 54, 41, 93, 1, 45, 50, 9, 72, 81, 23, 96, 86, 45, 36, 9, 36, 34, 78, 7, 2, 29, 47, 26, 13, 24, 27, 55, 90, 5]
...
DumpHead: block_id=7, total_block_num=16, block_remain_len=1048448, block_initial_space=1048576, magic=5aa5bccd
DumpTensor: desc=5, addr=0, data_type=DT_FLOAT16, position=UB
[28, 27, 79, 39, 86, 5, 23, 97, 89, 5, 65, 69, 59, 13, 49, 2, 34, 6, 52, 38, 4, 90, 11, 11, 61, 50, 71, 98, 19, 54, 54, 99]

函数原型

void DumpTensor(LocalTensor<T> &tensor, uint32_t desc, uint32_t dumpSize)

void DumpTensor(GlobalTensor<T>& tensor, uint32_t desc, uint32_t dumpSize)

参数说明

参数名

输入/输出

描述

tensor

输入

需要dump的Tensor。

待dump的tensor位于Unified Buffer/L1 Buffer/L0C Buffer时使用LocalTensor类型的tensor参数输入。

待dump的tensor位于Global Memory时使用GlobalTensor类型的tensor参数输入。

desc

输入

用户自定义附加信息(行号或其他自定义数字)。

dumpSize

输入

需要dump的元素个数。

返回值

支持的型号

Atlas A2训练系列产品

Atlas推理系列产品AI Core

约束说明

调用示例

DumpTensor(srcLocal,5, dataLen);