【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。
项目地址: https://gitcode.com/cann/shmem
编译项目
在shmem/根目录下执行编译脚本:bash scripts/build.sh -examples数据生成
2.1 -config 文件参数:dataType数据类型,默认为2(INT8INT8_INT32_FP16),具体可见gen_data.py中的定义。peSize卡数,一般为2 4 6 8 16 32。mtoken数。k激活矩阵的Hidden维。n权重矩阵的Hidden维。weightNz权重矩阵是否是Nz数据格式,默认为1。dequantGranularity反量化的方式,默认为3。local_expert_nums每张卡上的专家数量。EP与peSize保持一致。maxOutputSizealltoall后的最大的token数,多余的则截断,默认开两倍的m。topK每个token复制的份数。transB权重矩阵是否转置,默认为0。
2.2 -执行生成脚本:
该步骤会在scripts/run.sh中自动执行,无需单独执行。
cd examples/dispatch_gmm_combine # 基于cpu实现 python3 utils/gen_data.py # 基于torch-npu实现(默认用gen_data.py生成的输入) python3 utils/gen_data_by_torch_npu.py注:运行用例需安装torch-npu
运行Dispatch-Gmm-Combine示例程序进入示例目录并执行运行脚本,参数同config中的保持一致:
cd examples/dispatch_gmm_combine bash scripts/run.sh -pes {peSize} -M {m} -K {k} -N {n} -expertPerPe {local_expert_nums} -dataType {dataType} -weightNz {weightNz} -transB {transB}scripts/run.sh会执行算子(输出结果保存在examples/dispatch_gmm_combine/out目录下)并进行结果校验。 也可以单独对结果进行校验:cd examples/dispatch_gmm_combine python3 utils/check_result.py运行示例
# 先将配置写入config.ini cd examples/dispatch_gmm_combine bash ./scripts/run.sh -pes 2 -M 64 -K 7168 -N 4096 -expertPerPe 2 -dataType 2 -weightNz 1 -transB 0
【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考