news 2026/7/17 14:14:35

CANN/asc-devkit TQueBind分配Tensor

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 14:13:45

B站广告跳过插件终极指南:小电视空降助手完全解析

B站广告跳过插件终极指南&#xff1a;小电视空降助手完全解析 【免费下载链接】BilibiliSponsorBlock 一款跳过小电视视频中恰饭片段的浏览器插件&#xff0c;移植自 SponsorBlock。A browser extension to skip sponsored segments in videos, ported from the SponsorBlock …

作者头像 李华
网站建设 2026/7/17 14:12:58

UniHacker:Unity开发者的终极跨平台许可证解决方案完整指南

UniHacker&#xff1a;Unity开发者的终极跨平台许可证解决方案完整指南 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker UniHacker 是一款专为Unity开发者设计…

作者头像 李华
网站建设 2026/7/17 14:12:51

戴森球计划8000+蓝图:从新手到专家的终极工厂建设指南

戴森球计划8000蓝图&#xff1a;从新手到专家的终极工厂建设指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否在戴森球计划中为复杂的工厂设计而烦恼&#xff1f;…

作者头像 李华
网站建设 2026/7/17 14:10:44

PlutoGrid实战案例:如何打造企业级Flutter数据管理系统

PlutoGrid实战案例&#xff1a;如何打造企业级Flutter数据管理系统 【免费下载链接】pluto_grid PlutoGrid is a dataGrid for flutter that can be controlled by the keyboard on desktop and web. Of course, it works well on Android and IOS. 项目地址: https://gitcod…

作者头像 李华