00000719
双机做 NCCL / all_reduce_perf 测试时:
all_reduce_perf 能正常打出带宽表。
常见表现:
Init START / GPU Direct RDMA Enabled 附近;或 以下能力正常,仍不能说明 GDR 可用:
说明:verbs 用户态、RoCE 链路可能已通;NCCL 走 GPU Direct RDMA 仍可能失败。
| 路径 | 是否依赖 GPU↔网卡 peer mem | 现场结果 |
|---|---|---|
|
NCCL + TCP/Socket
|
否
|
通过
|
ib_write_bw(Host 内存)
|
否
|
可通过
|
|
NCCL + RDMA +
GDR(注册 GPU 显存为 IB MR)
|
是
|
卡住 /
ibv_reg_mr_iova2 失败
|
ibv_reg_mr_iova2 ... Invalid argument 表示:NCCL 在做 GPU Direct RDMA 时,把 GPU 显存注册到 mlx5 RDMA 失败。
该能力依赖 Iluvatar 侧 peer memory 内核模块,其中包括:
itr_peer_mem_drv 宿主机未按规范安装驱动,导致 Iluvatar 驱动/CoreX 安装编译时没有把 itr_peer_mem_drv 编译出来。
因此:
ibv_reg_mr_iova2 失败 PS:只在 Ubuntu 容器里补
rdma-core/ibverbs-utils,解决的是用户态 verbs,不能替代宿主机内核里的itr_peer_mem_drv。
按 Iluvatar 官方驱动安装文档,在宿主机重新安装/补装驱动,保证安装过程能够:
itr_peer_mem_drv; 安装完成后检查(命令以现场模块名为准):
若 modinfo 找不到模块,说明仍未编进系统,需对照安装日志排查为何跳过 peer_mem 编译(缺依赖、内核不匹配、安装参数跳过等)。
itr_peer_mem_drv 已加载。 /dev/infiniband,RDMA 用户态正常(ibv_devices)。 ib_write_bw 通过。 NCCL_IB_DISABLE=1 通过; ibv_reg_mr_iova2 Invalid argument,all_reduce_perf 能出表。 | 项目 | 说明 |
|---|---|
|
现象
|
双机 NCCL:TCP 通,RDMA 卡/崩
|
|
直接报错
|
ibv_reg_mr_iova2 / GDR 路径
|
|
根因
|
驱动未装好,
itr_peer_mem_drv 未编译
|
|
处理
|
重装/补齐 Iluvatar 驱动并确认 peer_mem 模块;未修复前可
NCCL_NET_GDR_LEVEL=0 临时绕过
|