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

CANN asc-devkit LogicalXor缓冲区大小接口文档

GetLogicalXorTmpBufferFactorSize

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

功能说明

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

推算示例如下:

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

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

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

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

相关文章:

  • Claude提示工程:提升AI交互效果的5大核心技巧
  • Python股票量化教程:手把手实现WR威廉指标
  • Linux基础命令与NAT技术实战指南
  • 统好AI数智一体化平台SRM模块功能说明
  • STM32MP157开发板TF-A移植与安全启动实践
  • 7分钟高效瘦手臂训练:HIIT原理与家庭健身方案全解析
  • Dev-C++ 2026 配置指南:解决中文乱码与编译运行问题
  • 工厂环境综合监测物联网系统方案
  • 颠覆传统睡眠软件只追求睡眠最长,编写程序,记录睡醒第一瞬间的念头,利用浅睡眠后的潜意识灵感,收集创新点子。
  • phpMyAdmin安全验证深度解析:Cookie、HTTP与Signon三种方式配置指南
  • 豆包手机深度前瞻:它不是一个“带AI的手机”,它是一个“AI原生手机”
  • 计算机毕业设计之物流企业车辆信息管理系统
  • AI辅助开发边界探讨:平衡效率与技术深度的实践策略
  • Nextcloud+MariaDB+Onlyoffice+HTTPS Docker一站式部署指南
  • 小程序毕业设计-基于 SpringBoot + 微信小程序的分类信息服务平台的设计与实现 基于 SpringBoot 的移动端便民分类信息小程序(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 2026年7月襄阳市救护车转运_24小时正规医疗转运服务全程指南 - 小校长
  • Linux下Rime输入法配置与高级定制指南
  • Visual C++运行库一键修复:3分钟彻底解决Windows软件启动失败的终极方案
  • 数据采集终端(DTU)是什么?有什么功能?
  • 科技公司商业机密保护:从权限管理到内部威胁防护
  • CANN/asc-devkit bfloat16x2 sin函数
  • CANN/asc-devkit bfloat16对数函数
  • Ascend C SIMD Asinh接口文档
  • 2026年7月整装装修公司哪家好?——基于全流程服务标准的行业技术评测报告 - 品牌鉴赏官2026
  • 统好AI数智一体化平台CRM模块功能说明
  • PVZ3E冷沙拉植物深度解析:低成本群体减速与节奏打断战术
  • Transformer架构与自注意力机制实战解析
  • 如何删除Windows PC 或Mac上的 iTunes备份
  • 如何使用VagrantPress?3步实现本地WordPress开发环境一键部署
  • 颠覆传统培训课程全部设定固定知识点,编写程序,每天随机抽取一个陌生行业名词,强迫结合自身专业设计应用方案。