InitSpmBuffer
函数原型
- 暂存到workspace初始化,需要指定GM地址为SPM Buffer:
      
1 2
template <typename T> __aicore__ inline void InitSpmBuffer(const GlobalTensor<T>& workspace, const int32_t bufferSize)
 - 暂存到L1 Buffer初始化,不需要指定地址,会默认暂存到L1 Buffer,只需要传入需要的SPM Buffer大小:
      
1__aicore__ inline void InitSpmBuffer(const int32_t bufferSize)
Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持暂存到L1 Buffer初始化接口。
 
参数说明
| 
          参数名称  | 
        
          输入/输出  | 
        
          含义  | 
       
|---|---|---|
| 
          wokspace  | 
        
          输入  | 
        
          workspace地址。  | 
       
| 
          bufferSize  | 
        
          输入  | 
        
          SPM Buffer的大小,单位是字节。  | 
       
支持的型号
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
注意事项
无
返回值
无
调用示例
- 暂存到workspace初始化
      
1 2 3 4 5
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初始化
      
1 2 3
AscendC::TPipe pipe; int len = 1024; // 设置spm buffer为1024个类型为T的数据 pipe.InitSpmBuffer(len * sizeof(T));
 
     父主题: SPM Buffer