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

CANN/asc-devkit Where缓冲区因子接口

GetWhereTmpBufferFactorSize

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

功能说明

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

推算示例如下:

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

    currentShapeSize = (currBuff - extraBuf) / maxLivedNodeCount / typeSize

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

    currentShapeSize1 = (currBuff - extraBuf1) / maxLivedNodeCount1 / typeSize

    currentShapeSize2 = (currBuff - extraBuf2) / maxLivedNodeCount2 / typeSize

    currentShapeSize = min(currentShapeSize1, currentShapeSize2)

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

函数原型

void GetWhereTmpBufferFactorSize(const platform_ascendc::PlatformAscendC& ascendcPlatform,const uint32_t typeSize, uint32_t& maxLivedNodeCount, uint32_t& extraBuf)

参数说明

表1参数列表

参数名输入/输出功能
ascendcPlatform输入输入的平台信息。PlatformAscendC的定义请参见构造及析构函数。
typeSize输入输入的数据类型大小,单位为字节。比如输入的数据类型为half,此处应传入2。
maxLivedNodeCount输出最大存活节点数,表示临时空间是单次计算数据量所占空间的多少倍。
extraBuf输出使用的额外临时空间大小,单位为字节。

返回值说明

约束说明

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

调用示例

完整的调用样例请参考更多样例。

uint32_t maxLivedNodeCount = 0; uint32_t extraBuf = 0; auto plat = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); AscendC::GetWhereTmpBufferFactorSize(plat, typeSize, maxLivedNodeCount, extraBuf);

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

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

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

相关文章:

  • NVFP4量化技术深度解析:Nemotron-3-Embed性能提升秘诀
  • 2026佛山防水修缮,卫生间渗水到楼下怎么办?本地甄选TOP榜推荐公司 - 防水全知
  • 天津万国回收价格查询及靠谱平台实测排行(2026年7月最新) - 诚收名表回收平台
  • HiMarket MCP Server集成教程:将外部API转换为标准MCP服务
  • 如何用happy-lager快速搭建企业级网站?Craft CMS模板开发终极指南
  • Reloaded II加载器卡顿问题深度解析:5步彻底解决Shared Scans卡死难题
  • AMD显卡运行CUDA应用的终极解决方案:ZLUDA深度解析与实战指南
  • 5步掌握微服务DDD架构:从理论到实战的企业级实现指南
  • 5分钟搞定:Windows激活神器完全指南
  • CANN/asc-devkit 反量化临时空间API
  • 泉州婚纱租赁天花板|13年口碑老店,国际品牌+明星妆造零踩雷 - 兔兔不是荼荼
  • 终极指南:如何在Chrome浏览器中轻松配置YAAW可视化Aria2下载管理器
  • CRC32碰撞原理与Python自动化工具实现:CTF压缩包解题实战
  • 知网AIGC检测误判真实原因完整解读:自己写的论文为什么也会被判成AI完整分析
  • 网工兼顾效率必备!6 款冷门工具,零基础学网安直接上手
  • 2026五款小程序工具口碑与适配测评:餐宝盈、BBWEYY、比文云、SaaS哥、杰建云,含零代码SAAS
  • 深圳江诗丹顿回收价格查询及各大回收平台实测排行(2026年7月最新数据) - 天价名表回收平台
  • 洛雪音乐音源终极配置指南:5分钟打造你的专属音乐库
  • STM32 SPI通信与Flash存储实战指南
  • cann/asc-devkit bfloat16x2不等于比较函数
  • 深度解析KMS智能激活解决方案:专业级Windows与Office激活完全指南
  • Puppetboard库存管理功能详解:自动化服务器资产信息收集
  • 5步快速上手BIThesis:北京理工大学LaTeX论文模板终极指南
  • Translumo:Windows平台实时屏幕翻译工具完整指南 - 3分钟上手,5大核心功能详解
  • 2026年7月最新哈尔滨卡地亚官方售后联系电话与客户服务中心网点地址 - 卡地亚官方售后中心
  • Bluetooth-jammer-esp32电源管理:稳定供电与噪声消除方案终极指南
  • 百达翡丽中国官方售后服务中心|服务电话及全部网点地址权威信息公告(2026年7月更新) - 百达翡丽官方售后中心
  • 2026年7月遵义黄金回收行情用实时大盘价直收 - 余生黄金回收
  • AI大模型学习指南:从理论到实战的完整路径
  • SAP-ABAP:ALV权限管控方案——实现字段、行数据级别的细粒度权限控制