一、软硬件信息
- 服务器厂家: 算丰
- 沐曦GPU型号: MetaX C500 (64GB), 4 节点 x 8 卡, 共 32 卡
- 操作系统内核版本: 5.15.0-119-generic (Ubuntu 22.04.5 LTS)
- 是否开启CPU虚拟化: 是 (Intel VT-x, CPU: Intel Xeon Platinum 8460Y+)
- mx-smi回显:
mx-smi version: 2.2.9
MX-SMI 2.2.9 Kernel Mode Driver Version: 3.4.4
MACA Version: 3.3.0.15 BIOS Version: 1.30.0.0
Board Name | GPU Persist-M | Bus-id | GPU-Util sGPU-M
Pwr:Usage/Cap | Temp Perf | Memory-Usage | GPU-State
0 MetaX C500 | 0 Off | 0000:08:00.0 | 0% Disabled
69W / 350W | 36C P9 | 56938/65536 MiB| Available
1 MetaX C500 | 1 Off | 0000:09:00.0 | 0% Disabled
69W / 350W | 37C P9 | 57578/65536 MiB| Available
... (8 卡, 每卡 65536 MiB, 状态 Available)
- docker info回显:
Server Version: 20.10.19
Storage Driver: overlay2
Cgroup Driver: systemd
Kernel Version: 5.15.0-119-generic
Operating System: Ubuntu 22.04.5 LTS
CPUs: 160
Total Memory: 1.968TiB
- 镜像版本:
pub-registry1.metax-tech.com/ai-opentest/dev/vllm-metax:0.14.0-maca.ai3.5.3.102-torch2.8-py310-ubuntu22.04-amd64_glm_w4a8_full - 启动容器命令:
Head 节点 (节点0, 10.66.3.10):
sudo docker run -d --name ray-head --privileged --network host --shm-size 64g \
-v /data/models/GLM-5-W8A8:/model \
-v /dev/mxcd:/dev/mxcd \
-e RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1 \
pub-registry1.metax-tech.com/ai-opentest/dev/vllm-metax:0.14.0-maca.ai3.5.3.102-torch2.8-py310-ubuntu22.04-amd64_glm_w4a8_full \
bash -c '/opt/conda/bin/ray start --head --port=6379 && sleep infinity'
Worker 节点 (节点1/2/3):
sudo docker run -d --name ray-worker --privileged --network host --shm-size 64g \
-v /data/models/GLM-5-W8A8:/model \
-v /dev/mxcd:/dev/mxcd \
-e RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1 \
9. 容器内执行命令:
```bash
python -m vllm.entrypoints.openai.api_server \
--model /model \
--tensor-parallel-size 8 \
--pipeline-parallel-size 3 \
--distributed-executor-backend ray \
--enforce-eager \
--max-model-len 65536 \
--gpu-memory-utilization 0.90
二、问题现象
问题1: PP=3 推理卡死
使用上述命令部署 GLM-5-W8A8 (PP=3 TP=8, 3 节点 24 卡), 部署启动完全正常 (模型加载、KV cache 分配、API server 启动全部成功)。但发送推理请求后:
- 前约 10 秒有少量输出 (prompt throughput ~1.1 tok/s, generation throughput ~0.1 tok/s)
- 之后 throughput 降为 0, 请求卡死不返回
- 300 秒后超时报错
RayChannelTimeoutError
已用 --enforce-eager 禁用 CUDA graph, 仍然卡死, 排除 CUDA graph 问题。
关键对比: PP=2 全部正常
我们测试了所有可用节点对的 PP=2 推理 (PP=2 TP=8, 2 节点 16 卡), 全部正常:
| 节点对 | IP | PP=2 推理结果 |
|--------|-----|--------------|
| 节点0 + 节点1 | 10.66.3.10 + 10.66.3.11 | 正常 |
| 节点0 + 节点3 | 10.66.3.10 + 10.66.3.13 | 正常 |
| 节点1 + 节点3 | 10.66.3.11 + 10.66.3.13 | 正常 |
| 节点2 + 节点3 | 10.66.3.12 + 10.66.3.13 | 正常 |
| PP=3 任意 3 节点 | | 卡死 |
所有节点两两 PP=2 跨节点通信正常, 只有 PP=3 (3 节点) 时卡死。怀疑 MCCL 在 3 节点通信组场景下存在问题。
请求
- 排查 PP=3 推理卡死问题, 怀疑 MCCL 3 节点通信组场景