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

CANN/asc-devkit内存分配API文档

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 推理系列产品

功能说明

根据用户指定的逻辑位置、数据类型、数据长度返回对应的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物理位置(静态Tensor编程场景下,此参数可以省略)。

DataType

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

tileSize

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

表 2原型2参数说明

参数名

输入/输出

描述

tileSize

输入

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

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

表 3原型3模板参数说明

参数名

描述

TensorTraitType

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

返回值说明

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

约束说明

调用示例

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/782988/

相关文章:

  • CANN/AMCT Quantile量化
  • Hermes Agent工具链接入Taotoken聚合API的配置指南
  • GE图引擎资源变更通知API
  • 美团大模型二面:你的RAG知识库更新策略是怎样的?
  • CANN/ops-cv一维上采样反向算子
  • CANN电力仿真张量求和优化
  • 2026年4月市面上靠谱的铁氟龙排线厂商推荐,柔软度好,方便施工操作 - 品牌推荐师
  • 电液控制装置控制器4K型护套连接器
  • 企业如何利用Taotoken统一管理多个AI模型API密钥与用量
  • CANN框架适配SIG
  • 自贡智能家居装修预算怎么控制?悦阳装饰全案整装透明报价体系解析 - 优质企业观察收录
  • cann/catlass Ascend950全解量化矩阵乘
  • 电子元器件焊接调试实战经验总结
  • Switch大气层系统深度配置:从零构建你的个性化游戏环境
  • 求推荐芜湖靠谱的装修公司?来看我的真实体验
  • CANN/metadef获取算子属性值接口
  • 2026自贡装修公司全案对标:从毛坯到拎包入住的一站式整装避坑指南 - 优质企业观察收录
  • 【研报 A104】AI康养深度研究报告:从辅助诊疗,到全周期照护操作系统
  • 如何借助Taotoken用量看板精准分析并优化团队的AI调用成本
  • AI医疗实战:构建鲁棒性青光眼筛查模型的多任务学习与部署策略
  • CANN算子测试总决赛
  • CANN/HCOMM线程读取归约操作
  • CANN Add算子Kernel执行样例
  • CANN/cann-recipes-infer:Kimi-K2-Thinking NPU推理
  • IT疑难杂症诊疗室:从蓝屏到勒索软件全攻略
  • 三步解锁QQ音乐加密文件:qmc-decoder让你的音乐真正自由播放
  • 深度剖析Go语言,一文告诉你为什么大厂开始增加Go的招聘量
  • AI与Web3.0融合:技术路径、挑战与实践指南
  • 小红书内容采集终极指南:5种高效下载方案全解析
  • 网络交换芯片:从25.6T到51.2T的技术演进与挑战