CANN/asc-devkit TBuf GetWithOffset方法 📅 2026/7/15 15:00:38 GetWithOffset产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品√Atlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector CorexAtlas 训练系列产品√Kirin X90√Kirin 9030√功能说明以TBuf为基地址向后偏移指定长度将偏移后的地址作为起始地址提取长度为指定值的Tensor。函数原型template typename T __aicore__ inline LocalTensorT GetWithOffset(uint32_t size, uint32_t bufOffset)参数说明表 1模板参数说明参数名称含义T待获取Tensor的数据类型。表 2参数说明参数名称输入/输出含义size输入需要获取的Tensor元素个数。bufOffset输入从起始位置的偏移长度单位是字节且需32字节对齐。约束说明size的数值是Tensor中元素的个数size*sizeof(T) bufOffset不能超过TBuf初始化时的长度。bufOffset需满足32字节对齐的要求。返回值说明获取到的LocalTensor。调用示例// 为TBuf初始化分配内存分配内存长度为1024字节 AscendC::TPipe pipe; AscendC::TBufAscendC::TPosition::VECCALC calcBuf; // 模板参数为TPosition中的VECCALC类型 uint32_t byteLen 1024; pipe.InitBuffer(calcBuf, byteLen); // 从calcBuf偏移64字节获取Tensor,Tensor为128个int32_t类型元素的内存大小为512字节 AscendC::LocalTensorint32_t tempTensor1 calcBuf.GetWithOffsetint32_t(128, 64);创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考