@@ -32,57 +32,34 @@ ENV CUDA_VERSION=12.1.0 \
32
32
NVIDIA_VISIBLE_DEVICES=all \
33
33
NVIDIA_DRIVER_CAPABILITIES=compute,utility \
34
34
NV_CUDA_CUDART_VERSION=12.1.55-1 \
35
- NV_CUDA_COMPAT_VERSION=530.30.02-1
35
+ NV_CUDA_COMPAT_VERSION=530.30.02-1 \
36
+ NV_CUDA_NVCC_VERSION=12.1.66-1
36
37
38
+ # Ref: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.1.1/ubi9/base/Dockerfile
39
+ # nvcc is required for Flash Attention
37
40
RUN dnf config-manager \
38
41
--add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo \
39
42
&& dnf install -y \
40
43
cuda-cudart-12-1-${NV_CUDA_CUDART_VERSION} \
41
44
cuda-compat-12-1-${NV_CUDA_COMPAT_VERSION} \
45
+ cuda-nvcc-12-1-${NV_CUDA_NVCC_VERSION} \
42
46
&& echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf \
43
47
&& echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf \
44
48
&& dnf clean all
45
49
46
- RUN dnf -y install --allowerasing cudnn9-cuda-12
47
-
48
50
ENV CUDA_HOME="/usr/local/cuda" \
49
51
PATH="/usr/local/nvidia/bin:${CUDA_HOME}/bin:${PATH}" \
50
- LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH" \
51
- LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
52
-
53
- # Ref: https://developer.nvidia.com/nccl/nccl-legacy-downloads
54
- ENV NV_CUDA_CUDART_DEV_VERSION=12.1.55-1 \
55
- NV_NVML_DEV_VERSION=12.1.55-1 \
56
- NV_LIBCUBLAS_DEV_VERSION=12.1.0.26-1 \
57
- NV_LIBNPP_DEV_VERSION=12.0.2.50-1 \
58
- NV_LIBNCCL_DEV_PACKAGE_VERSION=2.18.3-1+cuda12.1
52
+ LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
59
53
54
+ # Install InfiniBand and RDMA packages
60
55
RUN dnf config-manager \
61
- --add-repo https://developer.download.nvidia. com/compute/cuda/repos/rhel9/x86_64/cuda- rhel9.repo \
56
+ --add-repo https://linux.mellanox. com/public/repo/mlnx_ofed/latest/ rhel9.5/mellanox_mlnx_ofed .repo \
62
57
&& dnf install -y \
63
- cuda-command-line-tools-12-1-${NV_CUDA_LIB_VERSION} \
64
- cuda-libraries-devel-12-1-${NV_CUDA_LIB_VERSION} \
65
- cuda-minimal-build-12-1-${NV_CUDA_LIB_VERSION} \
66
- cuda-cudart-devel-12-1-${NV_CUDA_CUDART_DEV_VERSION} \
67
- cuda-nvml-devel-12-1-${NV_NVML_DEV_VERSION} \
68
- libcublas-devel-12-1-${NV_LIBCUBLAS_DEV_VERSION} \
69
- libnpp-devel-12-1-${NV_LIBNPP_DEV_VERSION} \
70
- libnccl-devel-${NV_LIBNCCL_DEV_PACKAGE_VERSION} \
71
- && dnf clean all
72
-
73
- ENV LIBRARY_PATH="$CUDA_HOME/lib64/stubs"
74
-
75
- # Install CUDA devel cudnn8 from:
76
- # https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.1.1/ubi9/devel/cudnn8/Dockerfile
77
- ENV NV_CUDNN_VERSION=8.9.0.131-1
78
- ENV NV_CUDNN_PACKAGE=libcudnn8-${NV_CUDNN_VERSION}.cuda12.1
79
- ENV NV_CUDNN_PACKAGE_DEV=libcudnn8-devel-${NV_CUDNN_VERSION}.cuda12.1
80
-
81
- LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}"
82
-
83
- RUN dnf install -y \
84
- ${NV_CUDNN_PACKAGE} \
85
- ${NV_CUDNN_PACKAGE_DEV} \
58
+ libibverbs-utils \
59
+ infiniband-diags \
60
+ libibumad \
61
+ librdmacm \
62
+ rdma-core \
86
63
&& dnf clean all \
87
64
&& rm -rf /var/cache/dnf/*
88
65
@@ -94,15 +71,15 @@ RUN pip install --no-cache-dir -U "micropipenv[toml]"
94
71
# Install Python dependencies from Pipfile.lock file
95
72
COPY Pipfile.lock ./
96
73
97
- RUN micropipenv install && \
74
+ RUN micropipenv install -- --no-cache-dir && \
98
75
rm -f ./Pipfile.lock && \
99
76
# Fix permissions to support pip in OpenShift environments \
100
77
chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \
101
78
fix-permissions /opt/app-root -P
102
79
103
80
# Install Flash Attention
104
81
RUN pip install wheel
105
- RUN pip install flash-attn==2.7.4.post1 --no-build-isolation
82
+ RUN pip install --no-cache-dir flash-attn==2.7.4.post1 --no-build-isolation
106
83
107
84
# Restore user workspace
108
85
USER 1001
0 commit comments