dump

产品支持情况

产品 是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

将对应内存上的数据打印出来,同时支持打印自定义的附加信息(仅支持uint32_t类型的信息)。比如打印当前行号等。

函数原型

GM内存上的数据打印

template<typename T>
asc_dump_gm(__gm__ T* input, uint32_t desc, uint32_t dump_size)

UB内存上的数据打印

template<typename T>
asc_dump_ubuf(__ubuf__ T* input, uint32_t desc, uint32_t dump_size)

参数说明

参数名 输入/输出 描述
input 输入 所需打印的内存块的起始地址。
desc 输入 自定义信息。
dump_size 输入 所需要打印的元素数量。

返回值说明

流水类型

约束说明

  • 暂时仅支持GM、UB上的内存打印。
  • 使用该接口时,在每个核上dump的数据总量不能超过1M,请开发者自行控制打印的内容数据量,超出则不会打印。
  • 在计算数据量时,若dump的总长度未对齐,需要考虑padding数据的影响。当进行非对齐dump时,如果实际dump的元素长度不满足32字节对齐, 系统会自动在其末尾补充一定数量的padding数据,以满足对其要求。
  • 如果要正常使用dump功能,需要在kernel核函数外定义如下宏定义:"#define ASCENDC_DUMP 1"

调用示例

__gm__ half* src;
uint32_t desc = 0;
uint32_t dump_size = 32;
asc_dump_gm<half>(src, desc, dump_size);