算子功能:完成路由专家AlltoAllv、量化GroupedMatMul融合并实现与共享专家量化MatMul并行融合,先通信后计算。
计算公式:
路由专家:
[object Object]共享专家:
[object Object]
每个算子分为两段式接口,必须先调用[object Object]接口获取入参并根据计算流程计算所需workspace大小,再调用[object Object]接口执行计算。
[object Object]
[object Object]
参数说明
[object Object]gmmXQuantMode、gmmWeightQuantMode、mmXQuantMode、mmWeightQuantMode的枚举值跟量化模式关系如下:
- 0: 不量化
- 1: pertensor
- 2: perchannel
- 3: pertoken
- 4: pergroup
- 5: perblock
- 6: mx量化
- 7: pertoken动态量化
返回值
[object Object]
确定性计算:
[object Object]默认确定性实现。
参数说明里shape使用的变量:
- BSK:本卡发送的token数,是sendCounts参数累加之和,取值范围(0, 52428800)。
- H1:表示路由专家hidden size隐藏层大小,取值范围(0, 65536)。
- H2:表示共享专家hidden size隐藏层大小,取值范围(0, 12288]。
- e:表示单卡上专家个数,取值范围(0, 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数,是recvCounts参数累加之和。
- ep通信域内所有卡的 A 参数的累加和等于所有卡上的 BSK 参数的累加和。
量化参数约束:
- 当前版本仅支持pertensor量化。
示例代码如下,仅供参考,具体编译和执行过程请参考编译与运行样例。
注意:由于量化接口仅支持Atlas 350 加速卡,以下示例基于该系列实现。
[object Object]