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

昇腾C FMA临时缓冲区因子大小接口

GetFmaTmpBufferFactorSize

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

功能说明

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

推算示例如下:

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

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

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

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

相关文章:

  • 别再为VMware里Kali上不了网发愁了!三种网络模式(桥接/NAT/仅主机)保姆级配置与排错指南
  • 2026年数据治理工具推荐:瓴羊Dataphin、龙石、火山引擎横评对比 - 博客万
  • Squirrel-RIFE:AI视频补帧的终极免费解决方案,10-25倍速度提升让老旧视频焕发新生
  • 2026年4月有名的钯回收公司推荐,金膏回收/银渣回收/铂碳粉回收/铂触煤回收/钌浆回收/金盐回收,钯回收公司怎么选择 - 品牌推荐师
  • OpCore Simplify:告别繁琐配置,轻松构建黑苹果OpenCore EFI的智能工具
  • 如何在Windows电脑上安装Android应用:APK Installer完全指南
  • 跨境物流监控进入“秒级预警”时代:实测实在Agent风险预警能力深度测评详解
  • 告别纯HDL!用Xilinx SDK和MicroBlaze MCS,像写软件一样玩转FPGA嵌入式开发
  • 2026年全国医用微动力系统与无刷电机深度选购指南|精准定制vs通用方案对标 - 企业名录优选推荐
  • 2026招聘网站平台排行榜 易直聘好用排第一求职招聘优选 - 博客万
  • 猫抓浏览器扩展:基于网络请求拦截的智能资源嗅探技术实现
  • Vivado/DC中set_max_delay的另类用法:搞定异步FIFO等CDC路径的“半时序检查”
  • 突破限制:5步解锁VMware的macOS虚拟机隐藏功能
  • 某供应链企业200GB数据泄露复盘:如果开了透明加密,攻击者拿走的只有乱码
  • 低温低压注塑与精密点胶技术革新:这些硬核玩家正在重塑智能制造 - 品牌企业推荐师(官方)
  • 2026年推荐几家做的高分辨率大视野镜头代理商?联系方式与靠谱选择指南 - 品牌推荐大师1
  • 重大利好!巴西取消50美元以下跨境包裹进口关税,妙手ERP超全攻略助你抢占先机 - 跨境小媛
  • 如何用Perplexity秒级获取NCBI/UniProt/PDB关联知识?——生物学家正在悄悄使用的4层语义穿透法
  • 米尔STM32MP135核心板:入门级嵌入式Linux开发与异构架构实战解析
  • 收藏!2026年AI大厂抢人才!大模型工程师成香饽饽,高薪高发展路径揭秘
  • 2026 全息投影行业口碑优选榜单:全息片源制作、裸眼 3D、沉浸式光影全场景靠谱服务商参考 - 海棠依旧大
  • 东莞市CPPM和SCMP总授权报名机构公示及联系方式 - 众智商学院课程中心
  • Rocky9.3 UEFI 引导崩溃解决办法
  • 手把手教你用MP1470芯片设计一个12V转5V的降压电路(附完整原理图与PCB布局)
  • 终极指南:如何用MangaOCR实现日语漫画文本识别的革命性突破
  • 收藏!小白程序员6个月免费学通AI智能体,保姆级路线图助你毕业
  • 2026年医用微动力系统全国采购指南:从无刷电机到手术钻的深度横评与官方对接 - 企业名录优选推荐
  • Codex配置指南:个性化你的AI编程助手体验
  • 2026年全国医用微动力系统与无刷电机深度选型指南:从定制化精准适配到全产业链自主可控 - 企业名录优选推荐
  • Kafka 集群扩容后 Partition 分配不均如何重新平衡负载?