FROM nvcr.io/nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04 ARG EFA_INSTALLER_VERSION=latest ARG AWS_OFI_NCCL_VERSION=aws ARG NCCL_TESTS_VERSION=v2.0.0 RUN apt-get update -y RUN apt-get purge -y libmlx5-1 ibverbs-utils libibverbs-dev libibverbs1 RUN apt-get install -y --allow-unauthenticated \ git \ gcc \ yum-utils \ vim \ kmod \ openssh-client \ openssh-server \ build-essential \ curl \ autoconf \ libtool \ gdb \ automake \ python3-distutils \ cmake \ && rm -rf /var/lib/apt/lists/* ENV HOME /tmp ENV LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:/opt/amazon/openmpi/lib:/opt/nccl/build/lib:/opt/amazon/efa/lib:/opt/aws-ofi-nccl/install/lib:$LD_LIBRARY_PATH ENV PATH=/opt/amazon/openmpi/bin/:/opt/amazon/efa/bin:$PATH RUN curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py && python3 /tmp/get-pip.py RUN pip3 install awscli ################################################# ## Install EFA installer RUN cd $HOME \ && curl -O https://efa-installer.amazonaws.com/aws-efa-installer-${EFA_INSTALLER_VERSION}.tar.gz \ && tar -xf $HOME/aws-efa-installer-${EFA_INSTALLER_VERSION}.tar.gz \ && cd aws-efa-installer \ && ./efa_installer.sh -y -g -d --skip-kmod --skip-limit-conf --no-verify ################################################### ## Install NCCL RUN git clone https://github.com/NVIDIA/nccl.git /opt/nccl \ && cd /opt/nccl \ && make -j src.build CUDA_HOME=/usr/local/cuda \ NVCC_GENCODE="-gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_60,code=sm_60" ################################################### ## Install AWS-OFI-NCCL plugin RUN git clone https://github.com/aws/aws-ofi-nccl.git /opt/aws-ofi-nccl \ && cd /opt/aws-ofi-nccl \ && git checkout ${AWS_OFI_NCCL_VERSION} \ && ./autogen.sh \ && ./configure --prefix=/opt/aws-ofi-nccl/install \ --with-libfabric=/opt/amazon/efa/ \ --with-cuda=/usr/local/cuda \ --with-nccl=/opt/nccl/build \ --with-mpi=/opt/amazon/openmpi/ \ && make && make install ################################################### ## Install NCCL-tests RUN git clone https://github.com/NVIDIA/nccl-tests.git $HOME/nccl-tests \ && cd $HOME/nccl-tests \ && git checkout ${NCCL_TESTS_VERSION} \ && make MPI=1 \ MPI_HOME=/opt/amazon/openmpi/ \ CUDA_HOME=/usr/local/cuda \ NCCL_HOME=/opt/nccl/build \ NVCC_GENCODE="-gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_60,code=sm_60"