当前位置: 首页 > news >正文

CANN/asc-devkit TBuf Get方法文档

Get

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

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

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品 AI Core

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

Kirin X90

Kirin 9030

功能说明

从TBuf上获取指定长度的Tensor,或者获取全部长度的Tensor。

函数原型

  • 获取全部长度的Tensor

    template <typename T> __aicore__ inline LocalTensor<T> Get()
  • 获取指定长度的Tensor

    template <typename T> __aicore__ inline LocalTensor<T> Get(uint32_t len)

参数说明

表 1模板参数说明

参数名称

含义

T

待获取Tensor的数据类型。

表 2参数说明

参数名称

输入/输出

含义

len

输入

需要获取的Tensor元素个数。

约束说明

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

返回值说明

获取到的LocalTensor。

调用示例

// 为TBuf初始化分配内存,分配内存长度为1024字节 AscendC::TPipe pipe; AscendC::TBuf<AscendC::TPosition::VECCALC> calcBuf; // 模板参数为TPosition中的VECCALC类型 uint32_t byteLen = 1024; pipe.InitBuffer(calcBuf, byteLen); // 从calcBuf获取Tensor,Tensor为pipe分配的所有内存大小,为1024字节 AscendC::LocalTensor<int32_t> tempTensor1 = calcBuf.Get<int32_t>(); // 从calcBuf获取Tensor,Tensor为128个int32_t类型元素的内存大小,为512字节 AscendC::LocalTensor<int32_t> tempTensor2 = calcBuf.Get<int32_t>(128);

对同一个TBuf对象连续调用Get接口,获取到的Tensor首地址是相同的,不会依次向后偏移。如果需要获取偏移之后的Tensor,可以使用如下方法:

AscendC::TPipe pipe; // 模板参数为TPosition中的VECCALC类型 AscendC::TBuf<AscendC::TPosition::VECCALC> calcBuf; // 分配一个2048字节的连续空间 uint32_t byteLen = 2048; pipe.InitBuffer(calcBuf, byteLen); // 从calcBuf获取tensor1,tensor1为pipe分配的所有内存大小,为2048字节 AscendC::LocalTensor<int32_t> tensor1 = calcBuf.Get<int32_t>(); // 用户指定tensor1的第256个int32_t的偏移位置为tensor2的首地址,实际上tensor2可以使用的内存大小为1024字节,两个tensor首地址相差256 * sizeof(int32_t)字节 auto tensor2 = tensor1[256];

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1194360/

相关文章:

  • 齿轮360°环绕式全自动视觉检测系统介绍
  • las点云数据转3dtiles实现(c++)
  • 故障积累——RAM存储的
  • CANN/Ascend C GetBaseK API
  • 昇腾CANN/asc-devkit自定义TBufPool初始化
  • 【小程序计算机毕业设计案例】基于 SpringBoot 小程序的知识点考核答题系统的设计与实现 在线练习打卡系统(程序+文档+讲解+定制)
  • 计算机毕业设计之基于SpringBoot和Vue的大学生图书馆座位预约系统
  • 一站式Markdown浏览器插件:革命性文档阅读体验的终极解决方案
  • ChatGPT写代码正在淘汰“Ctrl+C/V工程师”?(2024 Stack Overflow开发者能力断层报告首发)
  • MDK4 IDS隐身技术:幽灵模式和分片攻击绕过安全检测的实战技巧
  • 终极指南:5分钟免费检测GPU内存稳定性,告别硬件故障
  • 从Offer拒信到加薪37%,ChatGPT谈判链路全拆解:含HR内部评分表映射逻辑
  • AMD Ryzen SMUDebugTool:免费开源硬件调优终极指南
  • 边缘 AI 推理框架(TensorRT/ONNX Runtime/OpenVINO)选哪个?
  • 朝鲜 AI 赋能网络攻击背景下韩国军方网络安全困境与全域防御体系研究
  • Kuzushiji-MNIST数据集详解:从MNIST到日本古典文学的完美替代
  • D2DX:终极免费解决方案!让《暗黑破坏神2》在现代PC上完美重生
  • 高效下载B站视频:Python工具助你轻松保存大会员4K内容
  • 2026年湖南NAD+抗衰胶囊怎么选不踩雷?5款科研级细胞营养品实测对比与精准选型指南 - 中国品牌企业推荐网
  • 2026年电线电缆挤出机、高速束丝机、吹水器设备铜芯线缆产线设备实测,5家源头厂商对照,线缆厂采购避坑指南 - 中国远见品牌企业资讯
  • 终极指南:Windows 10/11下PL-2303串口驱动完整解决方案
  • css三种导入方式
  • BiliBiliToolPro:一站式B站自动化管理终极解决方案
  • 解锁MobaXterm专业版:Python授权生成器深度解析与实战指南
  • 【技术解析】VRM4U插件VMC功能在UE5.5中的网络协议适配问题与解决方案框架
  • 昇腾C队列出队API文档
  • 5个关键技巧:解决VRM4U插件在UE5.5中的VMC数据接收问题
  • React Native图片缓存react-native-img-cache:优化列表滚动性能的3个技巧
  • 告别电脑卡顿:用Mem Reduct释放被Windows“隐藏”的宝贵内存
  • 大模型学习指南:收藏这份智能体循环(Agent Loop)开发秘籍,小白也能轻松入门!