CANN/asc-devkit Digamma临时缓冲区因子大小接口
GetDigammaTmpBufferFactorSize【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明kernel侧Digamma接口的计算需要开发者预留/申请临时空间最大临时空间maxTmpBuffer和输入所占空间inputSize * typeSize存在以下关系maxTmpBuffer maxLiveNodeCount * inputSize * typeSize extraBuffer其中maxLiveNodeCount表示最大临时空间是输入所占空间的多少倍extraBuffer表示使用的额外临时空间大小。该接口用于获取maxLiveNodeCount和extraBuffer在固定空间大小的情况下通过maxLiveNodeCount和extraBuffer可以推算算子单次最大计算元素数量另外接口获取的maxLiveNodeCount值可能为0计算时需要判断该值非0避免除零错误。示例如下算子实现需要调用Digamma接口开发者为其预留currBuff大小的空间利用GetDigammaTmpBufferFactorSize接口得到maxLiveNodeCount、extraBuffer输出值反推Digamma算子单次最大计算元素数量为currentShapeSize (currBuff - extraBuffer) / maxLiveNodeCount / typeSize函数原型void GetDigammaTmpBufferFactorSize(const uint32_t typeSize, uint32_t maxLiveNodeCount, uint32_t extraBuffer)参数说明表1参数列表参数名输入/输出功能typeSize输入输入的数据类型大小单位为字节。比如输入的数据类型为half此处应传入2。maxLiveNodeCount输出最大存活节点数最大临时空间是输入所占空间的多少倍。extraBuffer输出使用的额外临时空间大小单位为字节。返回值说明无约束说明当利用maxLiveNodeCountextraBuffer反推出的currentShapeSize * typeSize 256B时currentShapeSize按照256B/typeSize的值向上取整。调用示例// 获取输入类型为half的digamma操作的maxLiveNodeCount和extraBuffer uint32_t typeSize sizeof(half); uint32_t maxLiveNodeCount 0; uint32_t extraBuffer 0; AscendC::GetDigammaTmpBufferFactorSize(typeSize, maxLiveNodeCount, extraBuffer);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考