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

CANN/asc-devkit TQueBind分配Tensor

AllocTensor

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品AI Core:支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:支持

功能说明

头文件路径为:"basic_api/kernel_tpipe.h"

从Que中分配Tensor,Tensor所占大小为InitBuffer时设置的每块内存长度。

函数原型

  • non-inplace接口:构造新的Tensor作为内存管理的对象

    template <typename T> __aicore__ inline LocalTensor<T> AllocTensor()
  • inplace接口:直接使用传入的Tensor作为内存管理的对象,可以减少Tensor反复创建的开销,具体使用指导可参考Tensor原地操作。

    template <typename T> __aicore__ inline void AllocTensor(LocalTensor<T>& tensor)

参数说明

表1模板参数说明

参数名

说明

T

Tensor的数据类型,支持的类型请见LocalTensor相关描述。

表2参数说明

参数名称

输入/输出

含义

tensor

输入

inplace接口需要传入LocalTensor作为内存管理的对象。

约束说明

  • non-inplace接口分配的Tensor内容可能包含随机值。
  • non-inplace接口,需要将TQueBind的depth模板参数设置为非零值;inplace接口,需要将TQueBind的depth模板参数设置为0。

返回值说明

non-inplace接口返回值为LocalTensor对象,inplace接口没有返回值。

调用示例

  • non-inplace接口

    AscendC::TPipe pipe; AscendC::TQueBind<AscendC::TPosition::VECOUT, AscendC::TPosition::GM, 2> que; int num = 4; int len = 1024; pipe.InitBuffer(que, num, len); // InitBuffer分配内存块数为4,每块大小为1024Bytes AscendC::LocalTensor<half> tensor1 = que.AllocTensor<half>(); // AllocTensor分配Tensor长度为1024Bytes
  • inplace接口

    AscendC::TPipe pipe; AscendC::TQueBind<AscendC::TPosition::VECOUT, AscendC::TPosition::GM, 0> que; int num = 2; int len = 1024; pipe.InitBuffer(que, num, len); // InitBuffer分配内存块数为2,每块大小为1024Bytes AscendC::LocalTensor<half> tensor1; que.AllocTensor<half>(tensor1); // AllocTensor分配Tensor长度为1024Bytes

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

http://www.cnnetsun.cn/news/3456830.html

相关文章:

  • Cursor+FastAPI+Docker后端搭建全栈方案(企业级CI/CD预配置模板首次公开)
  • B站广告跳过插件终极指南:小电视空降助手完全解析
  • UniHacker:Unity开发者的终极跨平台许可证解决方案完整指南
  • 戴森球计划8000+蓝图:从新手到专家的终极工厂建设指南
  • 别再死记token和transformer!:用快递分拣站、多语同声传译组、蜂巢协作网等5个工业级比喻,构建可迁移的AI心智模型
  • PlutoGrid实战案例:如何打造企业级Flutter数据管理系统
  • LM-BFF数据集准备:15个NLP任务数据下载与预处理完全指南
  • 同城实体直播实战指南:3天密训+1V1话术定制,快速引爆店铺流量
  • Dism++:全面掌握Windows系统优化与维护的免费专业工具
  • Flow-Guided Feature Aggregation与SeqNMS结合:进一步提升视频目标检测精度的方法 [特殊字符]
  • 如何用Gifify快速制作高质量GIF动画:终极完整指南
  • WifiBruteCrack的未来发展:功能扩展与社区贡献指南
  • 波形数据处理是功率循环测试(PC测试)中的核心环节,涉及对采集的波形数据(如电压VCE、正向电压VF、温度TC等)进行处理、拟合、滤波和计算,以提取关键参数
  • 如何免费解锁Wand专业版:开源工具终极使用指南
  • SKILL.md 瘦身指南:372 行压到 287 行的十一个压缩技术实战拆解
  • 猫抓插件终极指南:三步掌握浏览器资源嗅探技巧
  • 幻兽帕鲁存档深度解析:解锁游戏数据编辑的工程化方案
  • Microsoft Entra ID 通行密钥规模化落地与短信 / 语音 MFA 淘汰转型研究
  • 为什么你的Cursor生成的Model总缺外键约束?资深架构师拆解SQL AST反向推导的2个关键断点
  • 3个理由告诉你为什么《怪物猎人:世界》玩家都在用HunterPie游戏数据覆盖插件
  • 终极免费解锁Wand专业版:3步实现无限游戏体验的完整指南
  • 5分钟快速入门:如何使用gl-rs加载OpenGL函数指针
  • openEuler阿语门户API设计:RESTful接口与TypeScript类型安全实践终极指南
  • 计算机毕业设计之jsp学生选课网站的设计与实现
  • 从入门到精通:NeoVintageous让Sublime Text秒变Vim编辑器 [特殊字符]
  • 小说下载器:200+网站智能解析,轻松保存你的数字阅读资产
  • CANN/Ascend C内存管理API文档
  • 从入门到精通:CPDS容器故障检测系统Web界面操作全攻略
  • Unity WebGL中使用jslib调用js代码
  • Applio语音转换实战:5个步骤创建高质量AI声线