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

Ascend C IsInf缓冲区因子大小

GetIsInfTmpBufferFactorSize

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

功能说明

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

推算示例如下:

  • 算子实现需要调用IsInf接口,开发者为其预留currBuff大小的空间,利用GetIsInfTmpBufferFactorSize接口得到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 GetIsInfTmpBufferFactorSize(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::GetIsInfTmpBufferFactorSize(plat, typeSize, maxLivedNodeCount, extraBuf);

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

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

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

相关文章:

  • 具身智能工程化落地的四大技术深水区
  • 2026上海黄金回收星级实测排行 全城正规门店变现避坑指南 - 全国二奢机构参考
  • CANN/asc-devkit Asinh临时缓冲区因子大小获取接口文档
  • Unity IL2CPP逆向实战:Il2CppDumper与Ghidra组合拳解析
  • SmoothQuant技术解析:大模型无损量化的关键突破
  • ts-extras类型守卫详解:isPresent与isDefined如何消除null和undefined隐患
  • CANN/asc-devkit:Trunc临时空间大小获取
  • 开源AI模型工程实践:GLM-5.2与DeepSeek的选型部署指南
  • 泰格豪雅维修点查询与保养服务指南权威公示(2026年7月最新) - 亨得利官方服务中心
  • 2026年本地就近骑手兼职怎么找?新手接单与避坑全指南 - 企业信息速递
  • 非官方《植物大战僵尸》卡片收藏指南:从鉴别到数字化保存
  • 为什么uos-uwsgi-exporter是uWSGI监控的最佳选择?全面对比分析
  • 2026年7月亲身探访扬州亨得利官方名表服务中心|完整网点地址与售后热线 - 亨得利官方
  • AI应用架构演进:从基础调用到智能体系统
  • Muse Spark 1.1知识工作智能体模型:AA-Benchmark基准测试解析与应用
  • 猫抓Cat-Catch:浏览器视频下载终极指南,三步搞定任何网页视频
  • C++运算符重载实战:从C结构体到日期类的面向对象编程
  • 多模态Agentic AI技术解析与应用实践
  • CANN/AscendC Atanh临时空间大小接口
  • 量子场论、粒子物理标准模型与宇宙学体系完整综述——修正传统科普误区、融合底层物理矛盾、探讨理论天然边界
  • CANN/asc-devkit IsInf接口文档
  • Ubuntu核心指令实战指南:30个命令解决90%系统管理需求
  • 南宁黄金回收渠道,清奢黄金回收,大额黄金,安全交易! - 清奢黄金上门回收
  • 伯爵中国官方售后服务中心|服务热线及具体地址权威信息公示(2026年7月最新) - 亨得利钟表维修中心
  • MySQL连接错误:socket文件问题排查与解决指南
  • 昆明马桶地漏厨房下水道蹲坑疏通打捞渗水检测本地正规团队持证上门施工 2026 最新 - 北京金修达天津维修部
  • 向量的零空间
  • 软件更新乱象丛生:从汽车到微软,何时告别“半成品”软件?
  • Windows用户模式与内核模式原理及实践解析
  • 昇腾asc-devkit Axpy临时空间大小获取接口