GetWithOffset

功能说明

从TBuf上偏移指定长度且获取指定长度的Tensor。

函数原型

1
LocalTensor<T> GetWithOffset<T>(uint32_t size, uint32_t bufOffset)

参数说明

表1 参数说明

参数名称

输入/输出

含义

size

输入

需要获取的Tensor元素个数。

bufOffset

输入

从起始位置的偏移长度,单位为Byte,且需32B对齐。

支持的型号

Atlas 训练系列产品

Atlas推理系列产品AI Core

Atlas推理系列产品Vector Core

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

Atlas 200/500 A2推理产品

注意事项

size的数值是Tensor中元素的个数,size*sizeof(T) + bufOffset不能超过TBuf初始化时的长度。

bufOffset需满足32B对齐的要求。

返回值

调用示例

1
2
3
4
5
6
7
// 为TBuf初始化分配内存,分配内存长度为1024字节
AscendC::TPipe pipe;
AscendC::TBuf<AscendC::TPosition::VECCALC> calcBuf; // 模板参数为TPosition中的VECCALC类型
uint32_t byteLen = 1024;
pipe.InitBuffer(calcBuf, byteLen);
// 从calcBuf偏移64字节获取Tensor,Tensor为128个int32_t类型元素的内存大小,为512字节
AscendC::LocalTensor<int32_t> tempTensor1 = calcBuf.GetWithOffset<int32_t>(128, 64);