aclnnMoeDistributeCombineAddRmsNorm
产品支持情况
功能说明
接口功能:当存在TP域通信时,先进行ReduceScatterV通信,再进行AlltoAllV通信,最后将接收的数据整合(乘权重再相加);当不存在TP域通信时,进行AlltoAllV通信,最后将接收的数据整合(乘权重再相加),之后完成Add + RmsNorm融合。
计算公式:
[object Object]
函数原型
每个算子分为,必须先调用 “aclnnMoeDistributeCombineAddRmsNormGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMoeDistributeCombineAddRmsNorm”接口执行计算。
[object Object]
[object Object]
aclnnMoeDistributeCombineAddRmsNormGetWorkspaceSize
aclnnMoeDistributeCombineAddRmsNorm
约束说明
确定性计算:
- aclnnMoeDistributeCombineAddRmsNorm默认确定性实现。
[object Object]接口与[object Object]接口必须配套使用,具体参考调用示例。调用接口过程中使用的
[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]参数取值所有卡需保持一致,网络中不同层也需保持一致,且和[object Object]对应参数也保持一致。参数说明里shape格式说明:
- A:表示本卡需要分发的最大token数量,取值范围如下:
- 对于共享专家,需满足 (A = Bs * epWorldSize * sharedExpertNum / sharedExpertRankNum)。
- 对于MoE专家,当
[object Object]为0时,需满足 (A >= Bs * epWorldSize * min(localExpertNum, K));当[object Object]非0时,需满足 (A >= globalBS * min(localExpertNum, K))。
- H:表示hidden size(隐藏层大小),取值范围为[1024, 8192]。
- Bs:表示batch sequence size(本卡最终输出的token数量),取值范围为 (0 < Bs ≤ 512)。
- K:表示选取topK个专家,取值范围为 (0 < K ≤ 16) 且满足 (0 < K ≤ moeExpertNum)。
- localExpertNum:表示本卡专家数量:
- 对于共享专家卡,(localExpertNum = 1)。
- 对于MoE专家卡,(localExpertNum = moeExpertNum / (epWorldSize - sharedExpertRankNum));当(localExpertNum > 1)时,不支持TP域通信。
- A:表示本卡需要分发的最大token数量,取值范围如下:
HCCL_BUFFSIZE: 调用本接口前需检查
[object Object]环境变量取值是否合理,该环境变量表示单个通信域占用内存大小,单位MB,不配置时默认为200MB。- ep通信域内:设置大小要求 (≥ 2) 且满足 (1024^2 * (HCCL_BUFFSIZE - 2) / 2 ≥ Bs * 2 * (H + 128) * (epWorldSize * localExpertNum + K + 1)),其中
[object Object]需使用MoE专家卡的本卡专家数。 - tp通信域内:设置大小要求 >= (A * Align512(Align32(h * 2) + 44) + A * Align512(h * 2)) * 2。
- ep通信域内:设置大小要求 (≥ 2) 且满足 (1024^2 * (HCCL_BUFFSIZE - 2) / 2 ≥ Bs * 2 * (H + 128) * (epWorldSize * localExpertNum + K + 1)),其中
通信域使用约束:
- 一个模型中的
[object Object]和[object Object]仅支持相同EP通信域,且该通信域中不允许有其他算子。 - 一个模型中的
[object Object]和[object Object]仅支持相同TP通信域或都不支持TP通信域;有TP通信域时,该通信域中不允许有其他算子。 - [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:一个通信域内的节点需在一个超节点内,不支持跨超节点。
- 一个模型中的
调用示例
- [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:[object Object]