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

CANN/asc-devkit LocalMemAllocator Alloc函数

Alloc

【免费下载链接】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_tensor.h"

根据用户指定的逻辑位置、数据类型、数据长度返回对应的LocalTensor对象。

函数原型

  • 原型1:tileSize为模板参数

    // 当tileSize为常量时,建议使用此接口,以获得更优的性能 template <class DataType, uint32_t tileSize> LocalTensor<DataType> __aicore__ inline Alloc() template <TPosition pos, class DataType, uint32_t tileSize> __aicore__ inline LocalTensor<DataType> Alloc()
  • 原型2:tileSize为接口入参

    // 当tileSize为动态参数时使用此接口 template <class DataType> LocalTensor<DataType> __aicore__ inline Alloc(uint32_t tileSize) template <TPosition pos, class DataType> LocalTensor<DataType> __aicore__ inline Alloc(uint32_t tileSize)
  • 原型3:使用TensorTrait时使用此接口

    template <class DataType> LocalTensor<DataType> __aicore__ inline Alloc()

参数说明

表1原型1和原型2模板参数说明

参数名

描述

pos

TPosition位置,需要符合LocalMemAllocator中指定的Hardware物理位置(C++ Tensor编程场景下,此参数可以省略)。

DataType

LocalTensor的数据类型,只支持基础数据类型,不支持TensorTrait类型。

tileSize

LocalTensor的元素个数,其数量不应超过当前物理位置剩余的内存空间。

表2原型2参数说明

参数名

输入/输出

描述

tileSize

输入

LocalTensor的元素个数,其数量不应超过当前物理位置剩余的内存空间。

剩余的内存空间可以通过物理内存最大值与当前可用内存地址(GetCurAddr返回值)的差值来计算。

表3原型3模板参数说明

参数名

描述

TensorTraitType

只支持传入TensorTrait类型,TensorTrait的数据类型/逻辑位置/Shape大小需要匹配LocalMemAllocator中指定的物理位置及其剩余空间。

返回值说明

根据用户输入构造的LocalTensor对象。

约束说明

  • 针对Ascend 950PR/Ascend 950DT,对UB的内存分配,会基于静态内存的基础上进行分配,即动态内存初始位置,参考内存层级。
  • 当前暂不支持与L1 Buffer, L0A Buffer, L0B Buffer, L0C Buffer, BiasTable静态数组混用。

调用示例

template <uint32_t v> using UIntImm = Std::integral_constant<uint32_t, v>; ... AscendC::LocalMemAllocator allocator; // 原型1:float类型,Tensor中有1024个元素,用户可以指定逻辑位置(或者不指定,由Alloc函数根据物理位置给出默认值,不影响功能) auto tensor1 = allocator.Alloc<AscendC::TPosition::VECIN, float, 1024>(); auto tensor1 = allocator.Alloc<float, 1024>(); // 原型2:float类型,Tensor中有tileLength个元素,用户可以指定逻辑位置(或者不指定,由Alloc函数根据物理位置给出默认值,不影响功能) auto tensor1 = allocator.Alloc<AscendC::TPosition::VECIN, float>(tileLength); // 原型3:用户指定逻辑位置VECIN,数据类型为float,Tensor中元素个数为16*16*16 auto shape = AscendC::MakeShape(UIntImm<16>{}, UIntImm<16>{}, UIntImm<16>{}); auto stride = AscendC::MakeStride(UIntImm<0>{}, UIntImm<0>{}, UIntImm<0>{}); auto layoutMake = AscendC::MakeLayout(shape, stride); auto tensorTraitMake = AscendC::MakeTensorTrait<float, AscendC::TPosition::VECIN>(layoutMake); auto tensor3 = allocator.Alloc<decltype(tensorTraitMake)>();

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

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

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

相关文章:

  • 终极指南:如何解决Pikafish象棋引擎NNUE文件加载失败问题
  • IDE隐私保卫战:Cursor默认开启的6类行为追踪项,92%开发者至今不知如何关闭,立即自查!
  • 5分钟掌握猫抓Cat-Catch:浏览器资源捕获的终极解决方案
  • sysHAX-adapter AF分离技术详解:CPU与推理卡协同工作的10个关键点
  • 2026深圳奢侈品回收实测!添价收10店全城联动,水贝商圈随约随到,7大靠谱机构甄选 - 奢侈品回收知识分享
  • Akamai Cloud Manager完全指南:从入门到精通Linode服务管理
  • 3分钟永久激活IDM:免费解锁完整版终极指南
  • PPet终极桌面伴侣:让Live2D萌妹子常驻你的桌面
  • PowerFS 极简生产部署:OR-Set CRDT 三组件搞定 PB 级 AI/HPC 集群
  • ppt模板_0177_淡绿平静
  • 如何用WzComparerR2轻松提取冒险岛游戏资源:完整指南
  • 2026昆明小微企业记账多家财税服务商隐形套路全面揭秘 - 中国品牌企业推荐网
  • PowerToys中文版:Windows效率提升终极指南,告别英文界面烦恼!
  • 掌握Scala Scraper内容提取DSL:从基础操作到高级提取技巧
  • ArchitecturePlaybook架构师工具箱:20个必备工具提升架构设计能力
  • 如何在Steam Deck上实现3分钟快速多系统引导:SteamDeck_rEFInd完全指南
  • 终极指南:如何用Linkinator快速检测和修复网站死链
  • ReadCat小说阅读器:打造纯净无广告的终极阅读体验
  • 3步解锁设计魔法:如何将任意网页瞬间变成可编辑的Figma设计稿
  • 氧分析仪哪家好?2026年6家优质经销商与制造商深度评测 - 品牌推荐大师
  • ChatGPT新闻评论能力深度测评(权威实验室实测报告):事实核查准确率仅63.7%,但优化后可提升至89.2%
  • 嘎嘎降AI和PaperRR哪个更适合SCI论文:2026年SCI论文降AI工具实测横评
  • Windows 11任务栏拖放终极解决方案:免费高效恢复原生操作体验
  • 阳光房卧室选智能电动窗帘,玺加智能日夜蜂巢帘如何回应三项硬指标 - 博客万
  • QRazyBox深度解析:如何高效修复破损二维码的实战指南
  • 为什么84.7%的运维故障发生在变更过程?Agith如何解决这一难题
  • 宝珀官方售后服务中心电话和维修地址实地考察报告_多信源验证(2026年7月更新) - 宝珀官方售后服务中心
  • ReadCat小说阅读器:5个理由告诉你为什么这是最好的免费阅读工具
  • FlipIt翻页时钟屏保终极指南:从安装到高级定制的完整实战技巧
  • Bumbler揭秘:如何快速定位Ruby项目中拖慢加载速度的 gems?