从SPM Buffer读回到local数据中
template <typename T> __aicore__ inline void ReadSpmBuffer(const LocalTensor<T>& readLocal, const DataCopyParams& copyParams, int readOffset = 0)
template <typename T> __aicore__ inline void ReadSpmBuffer(const LocalTensor<T>& readLocal, const int readSize, int readOffset = 0)
参数名称 |
输入/输出 |
含义 |
---|---|---|
readLocal |
输入 |
读回的目标local内存 |
copyParams |
输入 |
搬运参数,DataCopyParams类型,DataCopyParams结构定义请参考表2。 |
readSize |
输入 |
读回的内存大小 |
readoffset |
输入 |
SPM Buffer的偏移 |
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas A2训练系列产品
无
无
TPipe pipe; TQue<QuePosition::VECIN, 1> inQueueSrcVecIn; int dataSize = 32; // 假设T为half类型,从ub上申请一块内存32 * sizeof(half)字节 int offset = 32; // 拷贝到spmBuffer时偏移32字节 pipe.InitBuffer(inQueueSrcVecIn, 1, dataSize * sizeof(half)); LocalTensor<half> writeLocal = inQueueSrcVecIn.AllocTensor<half>(); DataCopyParams copyParams{1, 2, 0, 0};// 搬运一块长度为2个block的数据,一个block32byte pipe.ReadSpmBuffer(writeLocal, copyParams, offset);
TPipe pipe; TQue<QuePosition::VECIN, 1> inQueueSrcVecIn; int dataSize = 64; // 从ub上申请一块内存64字节 int offset = 32; // 拷贝到spmBuffer时偏移32字节 pipe.InitBuffer(inQueueSrcVecIn, 1, dataSize * sizeof(half)); LocalTensor<half> writeLocal = inQueueSrcVecIn.AllocTensor<half>(); pipe.ReadSpmBuffer(writeLocal, dataSize, offset);