Skip to content
版 本

GET_TILING_DATA_WITH_STRUCT

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

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

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

Atlas 200I/500 A2 推 理 产 品

Atlas 推 理 系 列 产 品AI Core

Atlas 推 理 系 列 产 品Vector Core

Atlas 训 练 系 列 产 品

x

功 能 说 明

使 用 该 接 口 指 定 结 构 体 名 称,可 获 取 指 定 的tiling信 息,并 填 入 对 应 的Tiling结 构 体 中,此 函 数 会 以 宏 展 开 的 方 式 进 行 编 译。与GET_TILING_DATA的 区 别 是:GET_TILING_DATA只 能 获 取 默 认 注 册 的 结 构 体,该 接 口 可 以 根 据 指 定 的 结 构 体 名 称 获 取 对 应 的 结 构 体,常 用 于 针 对 不 同 的TilingKey注 册 了 不 同 结 构 体 的 情 况 下。

函 数 原 型

Text
GET_TILING_DATA_WITH_STRUCT(struct_name, tiling_data, tiling_arg)

参 数 说 明

参 数

输 入/输 出

说 明

struct_name

输 入

指 定 的 结 构 体 名 称。

tiling_data

输 出

返 回 指 定Tiling结 构 体 变 量。

tiling_arg

输 入

此 参 数 为 算 子 入 口 函 数 处 传 入 的tiling参 数。

约 束 说 明

  • 本 函 数 需 在 算 子Kernel代 码 处 使 用,并 且 传 入 的tiling_data参 数 不 需 要 声 明 类 型。
  • 暂 不 支 持Kernel直 调 工 程。

调 用 示 例

Text
extern "C" __global__ __aicore__ void add_custom(__gm__ uint8_t *x, __gm__ uint8_t *y, __gm__ uint8_t *z, __gm__ uint8_t *tiling)
{
    KernelAdd op;
    if (TILING_KEY_IS(1)) {
        GET_TILING_DATA_WITH_STRUCT(Add_Struct_Special, tilingData, tiling); // 使 用 算 子 指 定 注 册 的 结 构 体
	op.Init(x, y, z, tilingData.totalLengthSpecial, tilingData.tileNumSpecial);
    } else {
        GET_TILING_DATA(tilingData, tiling);   // 使 用 算 子 默 认 注 册 的 结 构 体
	op.Init(x, y, z, tilingData.totalLength, tilingData.tileNum);
    }
    if (TILING_KEY_IS(1)) {
        op.Process();
    }  else  if (TILING_KEY_IS(2)) {
        op.Process();
    } else  if (TILING_KEY_IS(3)) {
        op.Process();
    }
}

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