GetAtanhTmpBufferFactorSize
功能说明
kernel侧Atanh接口的计算需要开发者预留/申请临时空间,最大临时空间(maxTmpBuffer)和输入所占空间(inputSize * typeSize)存在以下关系:
maxTmpBuffer = maxLiveNodeCount * inputSize * typeSize + extraBuffer
其中maxLiveNodeCount表示最大临时空间是输入所占空间的多少倍;extraBuffer表示使用的额外临时空间大小。
该接口用于获取maxLiveNodeCount和extraBuffer,在固定空间大小的情况下,通过maxLiveNodeCount和extraBuffer可以推算算子单次最大计算元素数量。
示例如下:
算子实现需要调用Atanh接口,开发者为其预留currBuff大小的空间,利用GetAtanhTmpBufferFactorSize接口得到maxLiveNodeCount、extraBuffer输出值,反推Atanh算子单次最大计算元素数量为:
currentShapeSize = (currBuff - extraBuffer) / maxLiveNodeCount / typeSize
函数原型
void GetAtanhTmpBufferFactorSize(const uint32_t typeSize, uint32_t& maxLiveNodeCount, uint32_t& extraBuf)
参数说明
表 1 参数列表
返回值说明
无
约束说明
当利用maxLiveNodeCount,extraBuf反推出的currentShapeSize * typeSize < 256B时,currentShapeSize按照256B/typeSize的值向上取整。
调用示例
// 获取输入类型为half的Atanh操作的maxLiveNodeCount和extraBuffer
uint32_t typeSize = sizeof(half);
uint32_t maxLiveNodeCount = 0;
uint32_t extraBuffer = 0;
AscendC::GetAtanhTmpBufferFactorSize(typeSize, maxLiveNodeCount, extraBuffer);