接口功能:完成路由专家GroupedMatMul、Unpermute、AlltoAllv融合并实现与共享专家MatMul并行融合,先计算后通信。
计算公式:
- 路由专家:
- 共享专家:
相较于[object Object]接口,该接口变更如下:
新增
[object Object]参数,用户根据该参数指定芯片使用的通信引擎。- [object Object]Ascend 950DT[object Object]:支持
[object Object]和[object Object]。
- [object Object]Ascend 950DT[object Object]:支持
每个算子分为,必须先调用[object Object]接口获取入参并根据计算流程计算所需workspace大小,再调用[object Object]接口执行计算。
[object Object]
[object Object]
确定性计算:
- aclnnGroupedMatMulAlltoAllvV2默认确定性实现。
通信引擎约束:
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持AI_CPU通信。
- Ascend 950DT:支持CCU通信和AI_CPU通信,CCU仅支持单机UB域内互联,AI_CPU可支持跨机UB域内互联。
参数说明里shape使用的变量:
- BSK:本卡接收的token数,是recvCounts参数累加之和,取值范围(0, 52428800)。
- H1:表示路由专家hidden size隐藏层大小,取值范围(0, 65536)。
- H2:表示共享专家hidden size隐藏层大小,取值范围(0, 12288]。
- e:表示单卡上专家个数,e<=32,e * epWorldSize最大支持256。
- N1:表示路由专家的head_num,取值范围(0, 65536)。
- N2:表示共享专家的head_num,取值范围(0, 65536)。
- BS:batch sequence size。
- K:表示选取TopK个专家,K的范围[2, 8]。
- A:本卡发送的token数,是sendCounts参数累加之和。
- ep通信域内所有卡的A参数的累加和等于所有卡上的BSK参数的累加和。
[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object] : 单卡通信量在2MB以下可能存在性能劣化。
说明:本示例代码调用了部分HCCL集合通信库接口:HcclGetCommName、HcclCommInitAll、HcclCommDestroy,请参考。
[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Ascend 950DT[object Object]:
[object Object]