Skip to content
版 本

DumpAccChkPoint

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品

Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品

Atlas 200I/500 A2 推 理 产 品

x

Atlas 推 理 系 列 产 品AI Core

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

x

Kirin X90

Kirin 9030

功 能 说 明

头 文 件 路 径 为:"basic_api/kernel_operator_dump_tensor_intf.h"

该 接 口Dump指 定Tensor的 内 容。同 时 支 持 打 印 自 定 义 的 标 签(仅 支 持uint32_t数 据 类 型 的 信 息),比 如 打 印 当 前 行 号 等。区 别 于DumpTensor,使 用 该 接 口 可 以 支 持 指 定 偏 移 位 置 的Tensor打 印。

在 算 子kernel侧 实 现 代 码 中 需 要 打 印 偏 移 后Tensor数 据 的 地 方,调 用DumpAccChkPoint接 口 打 印 相 关 内 容。样 例 如 下:

C++
AscendC::DumpAccChkPoint(srcLocal, 5, 32, dataLen);

注 意

该 接 口 主 要 用 于 调 试 分 析,开 启 后 会 对 算 子 性 能 产 生 一 定 影 响,通 常 在 调 试 阶 段 使 用,生 产 环 境 建 议 关 闭。
默 认 情 况 下,调 用 该 接 口 就 会 打 印 相 关 内 容,开 发 者 可 以 参 考关 闭ASCENDC_DUMP说 明,按 需 关 闭 该 接 口 功 能。

函 数 原 型

C++
template <typename T>
__aicore__ inline void DumpAccChkPoint(const LocalTensor<T> &tensor, uint32_t index, uint32_t countOff, uint32_t dumpSize)
template <typename T>
__aicore__ inline void DumpAccChkPoint(const GlobalTensor<T> &tensor, uint32_t index, uint32_t countOff, uint32_t dumpSize)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名 称描 述
T需 要dump的Tensor的 数 据 类 型。

表 2 参 数 说 明

参 数 名 称输 入/输 出描 述
tensor输 入需 要dump的Tensor。
•待dump的tensor位 于Unified Buffer/L1 Buffer/L0C Buffer时 使 用LocalTensor类 型 的tensor参 数 输 入。
•待dump的tensor位 于Global Memory时 使 用GlobalTensor类 型 的tensor参 数 输 入。
index输 入用 户 自 定 义 附 加 信 息(行 号 或 其 他 自 定 义 数 字)。
countOff输 入偏 移 元 素 个 数。偏 移 后 的Tensor地 址 需 要 满 足 所 在 物 理 位 置 的 对 齐 约 束。具 体 参 考通 用 地 址 对 齐 约 束
dumpSize输 入需 要dump的 元 素 个 数。

数 据 类 型

Ascend 950PR/Ascend 950DT,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、fp4x2_e2m1_t、fp4x2_e1m2_t、hifloat8_t、fp8_e8m0_t、fp8_e5m2_t、fp8_e4m3fn_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Atlas 200I/500 A2 推 理 产 品,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Atlas 推 理 系 列 产 品 AI Core,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Atlas 训 练 系 列 产 品,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Kirin X90,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

Kirin 9030,T支 持 的 数 据 类 型 为:bool、int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。

返 回 值 说 明

约 束 说 明

  • 当 前 仅 支 持 打 印 存 储 位 置 为Unified Buffer/L1 Buffer/L0C Buffer/Global Memory的Tensor信 息。
针 对Ascend 950PR/Ascend 950DT,使 用 该 接 口 打 印L1 Tensor数 据 时,HDK版 本 需 要 至 少 升 级 到25.7.0以 上。
- 操 作 数 地 址 对 齐 要 求 请 参 见[通 用 地 址 对 齐 约 束](../../../通 用 说 明 和 约 束.md#section796754519912)。 - 单 次 调 用DumpAccChkPoint打 印 的 数 据 总 量 不 可 超 过30KB(还 包 括 少 量 框 架 需 要 的 头 尾 信 息,通 常 可 忽 略)。使 用 时 应 注 意,如 果 超 出 这 个 限 制,则 数 据 不 会 被 打 印。

调 用 示 例

C++
constexpr uint32_t totalLength = 256;    // 参 与 搬 运 的 元 素 个 数
AscendC::LocalTensor<half> srcLocal;
AscendC::GlobalTensor<half> srcGlobal;
AscendC::DataCopy(srcLocal, srcGlobal, totalLength * sizeof(half));
uint32_t index = 56;    // 用 户 自 定 义 附 加 信 息,此 处 传 入DumpAccChkPoint指 令 的 行 号
uint32_t countOff = 32;    // 偏 移 元 素 个 数,从srcLocal[32]开 始 打 印
uint32_t dumpSize = 128;    // dump的 元 素 个 数,从srcLocal[32]开 始 打 印128个 元 素 个 数
AscendC::DumpAccChkPoint(srcLocal, index, countOff, dumpSize);

打 印 结 果 如 下:

DumpTensor: desc=56, addr=0x40, data_type=float16, position=UB, dump_size=15
[4.710938, 4.707031, 4.773438, 2.271484, 4.347656, 2.359375, 1.284180, 1.073242, 1.242188, 2.298828, 0.521973, 1.099609, 1.880859, 1.226562, 3.916016]

免 责 声 明:本 站 内 容 由 asc-devkit 仓 master 分 支 自 动 编 译 生 成,属 于 持 续 开 发 版 本,可 能 存 在 缺 陷,仅 供 预 览 与 参 考。如 需 稳 定 及 商 用 资 料,请 查 阅 官 方 昇 腾 社 区