news 2026/7/17 12:12:02

CANN/asc-devkit反量化缓冲区因子API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit反量化缓冲区因子API

GetDequantizeTmpBufferFactorSize

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

功能说明

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

推算示例如下:

  • 算子实现需要调用Dequantize接口,开发者为其预留currBuff大小的空间,利用GetDequantizeTmpBufferFactorSize接口得到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 GetDequantizeTmpBufferFactorSize(const ge::Shape& srcShape, uint32_t& maxLiveNodeCnt, uint32_t& extraBuf)

参数说明

表1参数列表

参数名输入/输出功能
srcShape输入输入srcTensor的shape信息。
maxLiveNodeCount输出最大存活节点数,表示临时空间是单次计算数据量所占空间的多少倍。
extraBuf输出使用的额外临时空间大小,单位为字节。

返回值说明

约束说明

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

调用示例

std::vector<int64_t> shapeVec = {2, 1024}; ge::Shape srcShape(shapeVec); uint32_t maxLiveNodeCount = 0; uint32_t extraBuf = 0; AscendC::GetDequantizeTmpBufferFactorSize(srcShape, maxLiveNodeCount, extraBuf);

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

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

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

界面组件DevExpress Reporting中文教程 - 标记(可访问)PDF导出增强

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 可访问性支持在DevExpress这里仍然是一个高优先…

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

性价比高的教育大数据平台排名

在当前数字化转型的大背景下&#xff0c;教育行业也在积极寻求利用大数据技术来提升教学质量和管理水平。教育大数据平台作为这一转型的重要工具&#xff0c;其选择和应用显得尤为重要。本文将从多个维度对市场上的主要教育大数据平台进行对比分析&#xff0c;并推荐性价比高的…

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

JAVA面试之MQ

文章目录RabbitMQ在什么场景下使用&#xff1f;有什么好处&#xff1f;如何保证消息的可靠传输&#xff1f;如果消息丢了怎么办生产者丢失MQ中丢失消费者丢失兜底方案失败重试机制业务幂等性如何在 RabbitMQ中实现消息幂等性?如何保证消息的顺序性RabbitMQ的交换机有哪些&…

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

3个简单命令搞定微信聊天记录永久保存:你的数字记忆不该丢失

3个简单命令搞定微信聊天记录永久保存&#xff1a;你的数字记忆不该丢失 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…

作者头像 李华