CANN/Ascend C Tanh临时缓冲区因子大小获取接口
GetTanhTmpBufferFactorSize【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明该接口用于获取maxLiveNodeCount和extraBuf在固定空间大小的情况下通过maxLiveNodeCount和extraBuf可以推算算子单次最大计算元素数量。maxLiveNodeCount表示临时空间是单次计算数据量所占空间的多少倍extraBuf表示使用的额外临时空间大小。推算示例如下算子实现需要调用Tanh接口开发者为其预留currBuff大小的空间利用GetTanhTmpBufferFactorSize接口得到maxLiveNodeCount、extraBuf输出值可推导算子单次最大计算元素数量为currentShapeSize (currBuff - extraBuf) / maxLiveNodeCount / typeSize算子实现需要调用两个kernel侧API KernelIntf1、KernelIntf2利用两个GetXxxTmpBufferFactorSize其中Xxx为需要调用的两个高阶API接口的两组输出值(maxLiveNodeCount、extraBuf)以及当前现有的临时空间推导单次最大计算元素数量currentShapeSize为currentShapeSize1 (currBuff - extraBuf1) / maxLiveNodeCount1 / typeSizecurrentShapeSize2 (currBuff - extraBuf2) / maxLiveNodeCount2 / typeSizecurrentShapeSize min(currentShapeSize1, currentShapeSize2)注意上文中的currBuff表示接口计算可用的空间需要去除用户输入输出等空间另外接口获取的maxLiveNodeCount值可能为0计算时需要判断该值非0避免除零错误。函数原型void GetTanhTmpBufferFactorSize(const uint32_t typeSize, uint32_t maxLiveNodeCount, uint32_t extraBuf)参数说明表 1参数列表参数名输入/输出功能typeSize输入输入的数据类型大小单位为字节。比如输入的数据类型为half此处应传入2。maxLiveNodeCount输出最大存活节点数表示临时空间是单次计算数据量所占空间的多少倍。extraBuf输出使用的额外临时空间大小单位为字节。返回值说明无约束说明当利用maxLiveNodeCountextraBuf反推出的currentShapeSize * typeSize 256B时currentShapeSize按照256B/typeSize的值向上取整。调用示例完整的调用样例请参考更多样例。uint32_t maxLiveNodeCount 0; uint32_t extraBuf 0; AscendC::GetTanhTmpBufferFactorSize(typeSize, maxLiveNodeCount, extraBuf);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2629066.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!