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

CANN/Ascend C量化缓冲区因子API

GetAscendAntiQuantTmpBufferFactorSize

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

功能说明

该接口用于获取maxLiveNodeCount和extraBuf,在固定空间大小的情况下,通过maxLiveNodeCount和extraBuf可以推算算子单次最大计算元素数量。maxLiveNodeCount表示临时空间是单次计算数据量所占空间的多少倍;extraBuf表示使用的额外临时空间大小。

推算示例如下:

  • 算子实现需要调用AscendAntiQuant接口,开发者为其预留currBuff大小的空间,利用GetAscendAntiQuantTmpBufferFactorSize接口得到maxLiveNodeCount、extraBuf输出值,可推导算子单次最大计算元素数量为:

    currentShapeSize = (currBuff - extraBuf) / maxLiveNodeCount / typeSize

  • 算子实现需要调用两个kernel侧API KernelIntf1、KernelIntf2,利用两个GetXxxTmpBufferFactorSize(其中Xxx为需要调用的两个高阶API)接口的两组输出值(maxLiveNodeCount、extraBuf)以及当前现有的临时空间,推导单次最大计算元素数量currentShapeSize为:

    currentShapeSize1 = (currBuff - extraBuf1) / maxLiveNodeCount1 / typeSize

    currentShapeSize2 = (currBuff - extraBuf2) / maxLiveNodeCount2 / typeSize

    currentShapeSize = min(currentShapeSize1, currentShapeSize2)

注意上文中的currBuff表示接口计算可用的空间,需要去除用户输入输出等空间;另外,接口获取的maxLiveNodeCount值可能为0,计算时需要判断该值非0,避免除零错误。

函数原型

void GetAscendAntiQuantTmpBufferFactorSize(const ge::Shape& srcShape, const ge::Shape& scaleShape, bool isTranspose, ge::DataType inputDataType, ge::DataType outputDataType, uint32_t& maxLiveNodeCount, uint32_t& extraBuf)

参数说明

表1参数列表

参数名输入/输出功能
srcShape输入输入srcTensor的shape信息。
scaleShape输入输入scale的shape信息。
isTranspose输入是否转置。
inputDataType输入输入数据类型。ge::DataType类型。
outputDataType输入输出数据类型。ge::DataType类型。
maxLiveNodeCount输出最大存活节点数,表示临时空间是单次计算数据量所占空间的多少倍。
extraBuf输出使用的额外临时空间大小,单位为字节。

返回值说明

约束说明

当利用maxLiveNodeCount,extraBuf反推出的currentShapeSize * typeSize < 256B时,currentShapeSize按照256B/typeSize的值向上取整。

调用示例

std::vector<int64_t> srcDims = {64, 512}; auto srcShape = ge::Shape(srcDims); std::vector<int64_t> scaleDims = {1, 512}; auto scaleShape = ge::Shape(scaleDims); bool isTranspose = false; uint32_t maxLiveNodeCount = 0; uint32_t extraBuf = 0; AscendC::GetAscendAntiQuantTmpBufferFactorSize( srcShape, scaleShape, isTranspose, ge::DT_INT8, ge::DT_BF16, maxLiveNodeCount, extraBuf);

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

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

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

相关文章:

  • CANN/asc-devkit TBuf偏移获取API
  • 2026合肥包包回收实地考察指南|中检国检双资质合规门店全公示 - 奢品小当家
  • win10家庭版访问server 2003 凭据密码错误、无访问权限问题
  • 计算机毕业设计之基于jsp在线职业教育平台
  • docker常见使用方法
  • 5分钟快速上手:微信公众号爬虫工具完整使用指南
  • AI辅助STM32开发:零代码实现按键控制LED
  • CANN/asc-devkit SIMT数学函数erfcxf
  • 如何高效使用跨平台直播聚合工具:新手完整指南
  • 射频衰减器原理与应用:5G信号链中的关键元件
  • 如何永久保存你的数字记忆?WeChatMsg年度报告生成器完整指南
  • Beyond Compare 5专业版授权密钥生成完全指南:3种实用方案彻底解决试用期限制
  • 零基础搭建桌面智能助手 OpenClaw v2.7.9 Windows 分步实操详解
  • 2026天津双轨高考复读班推荐 多元升学路径机构盘点 - 信息热点
  • Legacy iOS Kit:让经典iOS设备重获新生的终极工具链
  • 从PCI-E到PCIe 6.0
  • Elastic: 将来一年中 AI 从活动转向成果
  • windows server 2003 连接 win10 共享打印机
  • Chrome Elements Panel:前端调试的核心工具与实战技巧
  • 思源宋体免费商用字体:7种字重完整指南与实战应用
  • 网络配置完成后,用这3个方法验证你的环境“合格”了没
  • 高频PCB设计中过孔阻抗匹配与信号完整性优化
  • Hermes Agent:零代码浏览器自动化的终极解决方案,为开发者释放生产力
  • 积家佛山区官方维修中心|权威公示维保地址及客服热线(2026年7月最新) - 积家中国服务中心
  • 上锡不良耐压击穿?厚铜PCB表面工序工艺逐项评估
  • 2026年山西本土优质空压机公司推荐参考指引 - 奔跑123
  • CANN/asc-devkit __float2bfloat16_rn函数
  • 用户、角色、权限为什么要拆成五张表比较好?换做你会如何设计?
  • 50Hz灯光频闪问题解析:从原理到解决方案
  • CANN/asc-devkit bfloat16转int函数