下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

GetSwiGLUTmpBufferFactorSize

功能说明

kernel侧SwiGLU接口的计算需要开发者预留/申请临时空间,最大临时空间(maxTmpBuffer)和输入所占空间(inputSize * typeSize)存在以下关系:

maxTmpBuffer = maxLivedNodeCount * inputSize * typeSize + extraBuffer

其中maxLivedNodeCount表示最大临时空间是输入所占空间的多少倍;extraBuffer表示使用的额外临时空间大小。

该接口用于获取maxLivedNodeCount和extraBuffer,在固定空间大小的情况下,通过maxLivedNodeCount和extraBuffer可以推算算子单次最大计算元素数量。

示例如下:

算子实现需要调用SwiGLU接口,开发者为其预留currBuff大小的空间,利用GetSwiGLUTmpBufferFactorSize接口得到maxLivedNodeCount 、extraBuffer输出值,反推SwiGLU算子单次最大计算元素数量为:

currentShapeSize = (currBuff - extraBuffer) / maxLivedNodeCount / typeSize

函数原型

1
void GetSwiGLUTmpBufferFactorSize(const uint32_t typeSize, uint32_t &maxLiveNodeCount, uint32_t &extraBuffer)

参数说明

表1 参数列表

接口

输入/输出

功能

typeSize

输入

算子输入的数据类型大小,单位为字节。比如算子输入的数据类型为half,此处应传入2。

maxLiveNodeCount

输出

最大存活节点数,最大临时空间是输入所占空间的多少倍。

extraBuffer

输出

使用的额外临时空间大小,单位为byte。

返回值

支持的型号

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas推理系列产品AI Core

约束说明

当利用maxLiveNodeCount,extraBuffer反推出的currentShapeSize * typeSize < 256B时,currentShapeSize按照256B/ typeSize的值向上取整。

调用示例

uint32_t typeSize = sizeof(half);
uint32_t maxLiveNodeCount = 0;
uint32_t extraBuffer = 0;

AscendC::GetSwiGLUTmpBufferFactorSize(typeSize, maxLiveNodeCount, extraBuffer);
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词