起飞检查:单机与双机训练环境验证
本文用于超大规模训练任务启动前的环境验收:在 1 台或 2 台 8 卡机器上,确认 GPU、机内互联、PCIe、RDMA 和 MCCL 集合通信是否可用。检查全部通过后,再扩展到多机和大规模任务,可以避免把硬件或网络问题带进正式训练。
本文只覆盖单机与双机的连通性验证,不提供吞吐量、MFU、训练耗时等性能指标,也不替代大规模集群巡检和自动隔离。
建议严格按以下顺序执行:基础状态 → 拷贝链路 → 机内互联 → 网络与 RDMA → 单机集合通信 → 双机 AllReduce。前一步失败时,先修复再继续,不要把多个层级的故障混在一起排查。
本文中的命令分为两类:标注“宿主机执行”的命令在 Docker 宿主机运行,其余命令默认在训练容器内执行。带有 <...> 的内容必须替换为当前环境的实际值。
1. 前置条件
- 每台机器 8 张 GPU,且 GPU 必须空闲。存在残留训练或推理进程时,拷贝和 MCCL 测试结果不可信。
- Docker 默认 runtime 为
mthreads,或启动容器时显式指定--runtime=mthreads。 - 本文使用 TrainingSuite v2.1.7 镜像
registry.mthreads.com/mcconline/training-suite:v2.1.7。启动前请确认当前环境可以访问该镜像仓库。 - 准备好机器管理面 IP,以及用于 MPI / RoCE 的训练网卡名称。本文示例使用
bond0,实际网卡名以机器输出为准。
每台机器启动一个检查容器(宿主机执行):
docker run -it --rm \
--runtime=mthreads \
--privileged \
--network=host \
--ipc=host \
--name hw-check \
registry.mthreads.com/mcconline/training-suite:v2.1.7 \
bash
--network=host 用于让容器看到宿主机的 RDMA 网卡;--ipc=host 便于单机多进程共享 GPU 通信。镜像已配置好 /usr/local/musa/bin、/usr/local/musa/mccl_test 和 /usr/local/openmpi/bin 等路径,如果当前镜像未配置,需要手动补充 PATH 和 LD_LIBRARY_PATH。