更新时间:2024-04-30 GMT+08:00
在容器镜像中安装MLNX_OFED
场景描述
ModelArts GPU服务器上配置了Mellanox Technologies网卡,支持RDMA(Remote Direct Memory Access)。因此可以在容器镜像中安装MLNX_OFED,使得NCCL可以启用该网卡,提高跨节点通信效率。
NCCL启用该网卡后,跨节点通信采用的方法为NET/IB。未启用该网卡时,跨节点通信采用的方法为NET/Socket。NET/IB在时延与带宽方面都要优于NET/Socket。
服务器GPU型号 |
Mellanox Technologies网卡 |
服务器安装的MLNX_OFED版本 |
推荐容器镜像安装的MLNX_OFED版本 |
---|---|---|---|
Vnt1 |
ConnectX-5 |
4.3-1.0.1.0/4.5-1.0.1.0 |
4.9-6.0.6.0-LTS |
Ant8/Ant1 |
ConnectX-6 Dx |
5.5-1.0.3.2 |
5.8-2.0.3.0-LTS |
安装MLNX_OFED
以Ubuntu18.04的容器镜像为例,安装MLNX_OFED 4.9-6.0.6.0-LTS的Dockerfile示例如下。
Dockerfile中涉及文件下载,构建容器镜像的主机要求能够连通公网。
FROM nvidia/cuda:11.1.1-runtime-ubuntu18.04 RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak && \ sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list && \ sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list && \ echo > /etc/apt/apt.conf.d/00skip-verify-peer.conf "Acquire { https::Verify-Peer false }" && \ apt-get update && \ apt-get install --no-install-recommends -y lsb-core curl && \ curl -k -o /tmp/MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64.tgz https://content.mellanox.com/ofed/MLNX_OFED-4.9-6.0.6.0/MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64.tgz && \ cd /tmp && \ tar xzf MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64.tgz && \ cd MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64 && \ ./mlnxofedinstall --user-space-only --without-fw-update --without-neohost-backend --force && \ rm /tmp/MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64.tgz && \ rm -rf /tmp/MLNX_OFED_LINUX-4.9-6.0.6.0-ubuntu18.04-x86_64 && \ apt-get clean && \ mv /etc/apt/sources.list.bak /etc/apt/sources.list && \ rm /etc/apt/apt.conf.d/00skip-verify-peer.conf
构建容器镜像命令示例如下:
docker build -f Dockerfile . -t nvidia/cuda:mlnx-ofed-4.9-11.1.1-runtime-ubuntu18.04
构建完成后,执行如下命令可以查询容器镜像中的MLNX_OFED版本。
docker run -ti --rm nvidia/cuda:mlnx-ofed-4.9-11.1.1-runtime-ubuntu18.04 ofed_info | head -n 1
命令回显示例如下:
MLNX_OFED_LINUX-4.9-6.0.6.0 (OFED-4.9-6.0.6):
父主题: 准备训练镜像