Skip to content
版 本

InitSpmBuffer

产 品 支 持 情 况

产 品

是 否 支 持

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 训 练 系 列 产 品

Kirin X90

Kirin 9030

功 能 说 明

初 始 化SPM Buffer。

函 数 原 型

  • 暂 存 到workspace初 始 化,需 要 指 定GM地 址 为SPM Buffer:

    Text
    template <typename T>
    __aicore__ inline void InitSpmBuffer(const GlobalTensor<T>& workspace, const int32_t bufferSize)
    
  • 暂 存 到L1 Buffer初 始 化,不 需 要 指 定 地 址,会 默 认 暂 存 到L1 Buffer,只 需 要 传 入 需 要 的SPM Buffer大 小:

    Text
    __aicore__ inline void InitSpmBuffer(const int32_t  bufferSize)
    

    Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品,不 支 持 暂 存 到L1 Buffer初 始 化 接 口。

    Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品,不 支 持 暂 存 到L1 Buffer初 始 化 接 口。

参 数 说 明

参 数 名

输 入/输 出

含 义

workspace

输 入

workspace地 址。

bufferSize

输 入

SPM Buffer的 大 小,单 位 是 字 节。

约 束 说 明

返 回 值 说 明

调 用 示 例

  • 暂 存 到workspace初 始 化

    Text
    AscendC::TPipe pipe;
    int len = 1024; // 设 置spm buffer为1024个 类 型 为T的 数 据
    workspace_gm.SetGlobalBuffer((__gm__ T *)usrWorkspace, len);  // 此 处 的usrWorkspace为 用 户 自 定 义 的workspace
    auto gm = workspace_gm[AscendC::GetBlockIdx() * len];
    pipe.InitSpmBuffer(gm, len * sizeof(T));
    
  • 暂 存 到L1 Buffer初 始 化

    Text
    AscendC::TPipe pipe;
    int len = 1024; // 设 置spm buffer为1024个 类 型 为T的 数 据
    pipe.InitSpmBuffer(len * sizeof(T));
    

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