约束说明
- 仅支持device间HCCS互联,如下命令可查询卡间互联信息。
1npu-smi info -t topo -i 0
- 输入x / weight矩阵维度,通过transWeight配置需满足矩阵乘的维度关系。
- rank、rankSize、rankRoot需满足以下条件。
- 0 ≤ rank < rankSize
- 0 ≤ rankRoot < rankSize
- 多用户使用时需要使用ATB_SHARE_MEMORY_NAME_SUFFIX环境变量(请参见Transformer加速库环境变量说明)进行共享内存的区分,以进行初始化信息同步。
- 当使用加速库的通信算子异常退出时,需要清空残留数据,避免影响之后的使用,命令参考如下:
rm -rf /dev/shm/sem.lccl* rm -rf /dev/shm/sem.hccl* ipcrm -a
- 调用AllGatherMatmulReduceScatter算子时(即LinearParallelParam的type设置为ALL_GATHER_LINEAR_REDUCE_SCATTER时),backend需要设置为"lcoc",keepIntermediate需为false,twoDimTPInfo中的agDim、rsDim、innerDimIsAg可供设置,且需满足agDim * rsDim == rankSize,不支持量化相关参数。输入维度m、k、n的取值范围分别为[1, 200000]、[1, 32768]、[1, 32768]。
- agDim和rsDim需为2的幂,且最小为2,rankSize最小为4,最大为16。
- AlltoallvcAllGatherGroupMatmul、GroupMatmulReduceScatterAlltoallvc算子约束如下:
- 当type为ALLTOALLVC_ALL_GATHER_GMM或GMM_REDUCE_SCATTER_ALLTOALLVC时,1<= localExpertNums <=16。ep×tp = rankSize。
- 当type为ALLTOALLVC_ALL_GATHER_GMM或GMM_REDUCE_SCATTER_ALLTOALLVC时,quantType只能为QUANT_TYPE_PER_CHANNEL或QUANT_TYPE_PER_TOKEN。
- 因AllToAllV为不均匀通信,每卡输出矩阵不同,m'为给output开辟的最大空间,保证可以容纳每张卡的output,当m'不足以容纳该卡输出时,算子内会对token进行截断,如要保证不触发阶段场景,m'可取 m * rankSize * localExpertNum,AlltoallvcAllGatherGroupMatmul、GroupMatmulReduceScatterAlltoallvc算子需满足 m' * 256 * sizeof(inputType) < 200 * 1024 * 1024 / 2。
- Atlas 200T A2 Box16 异构子框场景下,通信域仅支持前8卡或后8卡内部建立,不支持同时包含前8卡和后8卡的通信域。
- 在lcoc场景下,M、K、N最大值分别为M:10000000、K:100000、N:32768。
- 在mc2场景下,M、K、N的取值范围分别为M:[2, 10000000]、K:[256, 65535)、N:[1, 32768]。