银河麒麟v10不支持传统crossfire/sli,但可通过pcie多卡并行+统一api实现算力叠加,需显卡同架构、驱动与内核严格匹配;执行lspci | grep vga确认多卡识别,nvidia-smi或clinfo验证驱动加载,deep link或nccl等机制需对应版本、内核参数及服务状态支持。

确认硬件与驱动基础是否就绪
银河麒麟V10不支持传统AMD CrossFire或NVIDIA SLI意义上的“交火”,但可通过PCIe多卡并行+统一API调度实现算力叠加,前提是显卡型号、驱动版本、内核模块三者严格匹配。
执行lspci | grep VGA确认系统识别到两张及以上独立GPU,且均为同架构(如双ARC A750、双RTX 4090或双昇腾910B);若混插Intel核显+独显或NVIDIA+AMD,【将无法启用任何协同加速机制】。
运行nvidia-smi(N卡)或clinfo(Intel/AMD OpenCL)验证每张卡均被驱动正确加载,无“Failed to initialize”报错。
启用Intel ARC多卡Deep Link加速
仅适用于搭载两块Intel Arc系列显卡(如A750+A750或A770+A380)的银河麒麟V10 SP1 2503及以上版本,需关闭Secure Boot并启用UEFI CSM兼容模式。
方法一:通过内核参数强制启用
编辑/etc/default/grub,在GRUB_CMDLINE_LINUX末尾追加:intel_iommu=on iommu=pt,保存后执行sudo update-grub && sudo reboot。
方法二:加载Deep Link内核模块
终端中依次执行:
① sudo modprobe intel_dlb
② echo "intel_dlb" | sudo tee -a /etc/modules
③ 验证模块状态:lsmod | grep dlb应返回非空结果。
此时运行intel_gpu_top可观察到双卡GPU利用率同步波动,说明Deep Link链路已激活。若仅单卡响应,检查BIOS中PCIe Slot Link Speed是否被强制降为Gen3——【必须设为Auto或Gen4以上】。
配置NVIDIA多卡CUDA统一内存与NCCL通信
适用于双RTX 4090/Ada架构显卡,要求驱动版本≥535.129.03且已安装cuda-toolkit-12-4完整套件。
第一步:确认NVLink物理连接(仅限支持NVLink桥接器的型号,如A100/RTX 6000 Ada)
执行nvidia-smi topo -m,输出中应出现NVLINK行且带OK标识;若显示PHB或PIX,说明仅走PCIe总线,带宽受限于CPU PCIe通道数。
第二步:设置CUDA_VISIBLE_DEVICES环境变量
在运行AI训练脚本前,导出:export CUDA_VISIBLE_DEVICES=0,1,确保PyTorch/TensorFlow能同时调用两张卡。
第三步:启用NCCL通信优化(关键步骤)
添加环境变量:export NCCL_TREE_THRESHOLD=0,避免小规模通信绕过树形拓扑;再执行export NCCL_ASYNC_ERROR_HANDLING=1,防止某卡异常导致全任务中断。
若训练中出现NCCL WARN Connection closed by peer,立即检查/var/log/nvidia-persistenced/nvidia-persistenced.log——【nvidia-persistenced服务必须处于active状态】,否则多卡上下文无法持久驻留。
验证多卡算力叠加效果
使用deviceQuery(CUDA)或oneapi-cli list(Intel oneAPI)确认设备枚举数量与ID连续性。
运行基准测试:
• NVIDIA场景:cd /usr/local/cuda/samples/1_Utilities/deviceQuery && sudo make && ./deviceQuery,输出应显示两个Device 0/1且Result = PASS
• Intel ARC场景:clinfo | grep "Device Name\|Max compute units",对比单卡与双卡模式下Compute Units总数是否翻倍
启动真实负载验证:python -c "import torch; print([torch.cuda.memory_allocated(i) for i in range(torch.cuda.device_count())])",若返回[120586240, 120586240]类对称数值,证明显存分配已均衡生效。











