ReadSpmBuffer
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
√ |
|
√ |
|
x |
|
√ |
|
x |
|
√ |
功能说明
从SPM Buffer读回到local数据中。
函数原型
- 适用于连续和不连续的数据回读:
1 2
template <typename T> __aicore__ inline void ReadSpmBuffer(const LocalTensor<T>& readBuffer, const DataCopyParams& copyParams, int32_t readOffset = 0)
- 适用于连续的数据回读:
1 2
template <typename T> __aicore__ inline void ReadSpmBuffer(const LocalTensor<T>& readBuffer, const int32_t readSize, int32_t readOffset = 0)
参数说明
参数名称 |
输入/输出 |
含义 |
|---|---|---|
readBuffer |
输入 |
读回的目标local内存。 |
copyParams |
输入 |
搬运参数,DataCopyParams类型,DataCopyParams结构定义请参考表2。 |
readSize |
输入 |
读回的元素个数。 |
readOffset |
输入 |
SPM Buffer的偏移,单位为字节。 |
参数名称 |
含义 |
|---|---|
blockCount |
待搬运的连续传输数据块个数。uint16_t类型,取值范围:blockCount∈[1, 4095]。 |
blockLen |
待搬运的每个连续传输数据块长度,单位为DataBlock(32字节)。uint16_t类型,取值范围:blockLen∈[1, 65535]。 特殊情况:
|
srcGap |
源操作数相邻连续数据块的间隔(前面一个数据块的尾与后面数据块的头的间隔),单位为DataBlock(32字节)。uint16_t类型,srcGap不要超出该数据类型的取值范围。 在L1 Buffer -> Fixpipe Buffer场景中,srcGap特指源操作数相邻连续数据块的间隔(前面一个数据块的头与后面数据块的头的间隔),单位为DataBlock(32字节)。uint16_t类型,srcGap不要超出该数据类型的取值范围。 |
dstGap |
目的操作数相邻连续数据块间的间隔(前面一个数据块的尾与后面数据块的头的间隔),单位为DataBlock(32字节)。uint16_t类型,dstGap不要超出该数据类型的取值范围。 特殊情况:
在L1 Buffer -> Fixpipe Buffer场景中,dstGap特指源操作数相邻连续数据块的间隔(前面一个数据块的头与后面数据块的头的间隔),单位为DataBlock(32字节)。uint16_t类型,dstGap不要超出该数据类型的取值范围。 |
约束说明
无
返回值说明
无
调用示例
调用样例请参考调用示例。