Skip to content

Commit bbf05c9

Browse files
committed
Freeze Python v3.14.4
1 parent 8640bb6 commit bbf05c9

4 files changed

Lines changed: 605 additions & 0 deletions

File tree

base/3.14.4.Dockerfile

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
ARG BASE_IMAGE=debian
2+
ARG BASE_IMAGE_TAG=13
3+
ARG BUILD_ON_IMAGE=glcr.b-data.ch/python/ver
4+
ARG PYTHON_VERSION=3.14.4
5+
ARG NEOVIM_VERSION=0.12.2
6+
ARG GIT_VERSION=2.54.0
7+
ARG GIT_LFS_VERSION=3.7.1
8+
ARG PANDOC_VERSION=3.8.3
9+
10+
FROM glcr.b-data.ch/neovim/nvsi:${NEOVIM_VERSION} AS nvsi
11+
FROM glcr.b-data.ch/git/gsi/${GIT_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} as gsi
12+
FROM glcr.b-data.ch/git-lfs/glfsi:${GIT_LFS_VERSION} as glfsi
13+
14+
FROM ${BUILD_ON_IMAGE}${PYTHON_VERSION:+:$PYTHON_VERSION}
15+
16+
ARG DEBIAN_FRONTEND=noninteractive
17+
18+
ARG BUILD_ON_IMAGE
19+
ARG NEOVIM_VERSION
20+
ARG GIT_VERSION
21+
ARG GIT_LFS_VERSION
22+
ARG PANDOC_VERSION
23+
ARG BUILD_START
24+
25+
ENV PARENT_IMAGE=${BUILD_ON_IMAGE}${PYTHON_VERSION:+:$PYTHON_VERSION} \
26+
NEOVIM_VERSION=${NEOVIM_VERSION} \
27+
GIT_VERSION=${GIT_VERSION} \
28+
GIT_LFS_VERSION=${GIT_LFS_VERSION} \
29+
PANDOC_VERSION=${PANDOC_VERSION} \
30+
BUILD_DATE=${BUILD_START}
31+
32+
## Install Neovim
33+
COPY --from=nvsi /usr/local /usr/local
34+
## Install Git
35+
COPY --from=gsi /usr/local /usr/local
36+
## Install Git LFS
37+
COPY --from=glfsi /usr/local /usr/local
38+
39+
RUN dpkgArch="$(dpkg --print-architecture)" \
40+
&& apt-get update \
41+
&& apt-get -y install --no-install-recommends \
42+
bash-completion \
43+
build-essential \
44+
curl \
45+
file \
46+
fontconfig \
47+
g++ \
48+
gcc \
49+
gfortran \
50+
gnupg \
51+
htop \
52+
info \
53+
jq \
54+
libclang-dev \
55+
man-db \
56+
nano \
57+
ncdu \
58+
procps \
59+
psmisc \
60+
screen \
61+
sudo \
62+
swig \
63+
tmux \
64+
vim-tiny \
65+
wget \
66+
zsh \
67+
## Neovim: Additional runtime recommendations
68+
ripgrep \
69+
## Git: Additional runtime dependencies
70+
libcurl3-gnutls \
71+
liberror-perl \
72+
## Git: Additional runtime recommendations
73+
less \
74+
ssh-client \
75+
## Python: Additional dev dependencies
76+
&& if [ -z "$PYTHON_VERSION" ]; then \
77+
apt-get -y install --no-install-recommends \
78+
python3-dev \
79+
## Install Python package installer
80+
## (dep: python3-distutils, python3-setuptools and python3-wheel)
81+
python3-pip \
82+
## Install venv module for python3
83+
python3-venv; \
84+
## make some useful symlinks that are expected to exist
85+
## ("/usr/bin/python" and friends)
86+
for src in pydoc3 python3 python3-config; do \
87+
dst="$(echo "$src" | tr -d 3)"; \
88+
if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
89+
ln -svT "$src" "/usr/bin/$dst"; \
90+
fi \
91+
done; \
92+
else \
93+
## Force update pip
94+
pip install --upgrade --force-reinstall pip; \
95+
fi \
96+
## Git: Set default branch name to main
97+
&& git config --system init.defaultBranch main \
98+
## Git: Store passwords for one hour in memory
99+
&& git config --system credential.helper "cache --timeout=3600" \
100+
## Git: Merge the default branch from the default remote when "git pull" is run
101+
&& git config --system pull.rebase false \
102+
## Install pandoc
103+
&& curl -sLO https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION}-1-${dpkgArch}.deb \
104+
&& dpkg -i pandoc-${PANDOC_VERSION}-1-${dpkgArch}.deb \
105+
&& rm pandoc-${PANDOC_VERSION}-1-${dpkgArch}.deb \
106+
## Clean up
107+
&& rm -rf /tmp/* \
108+
&& rm -rf /var/lib/apt/lists/* \
109+
${HOME}/.cache

cuda/3.14.4.Dockerfile

Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
ARG CUDNN_VERSION=9.22.0.52
2+
ARG CUDNN_VERSION_AMD64=${CUDNN_VERSION}
3+
ARG CUDNN_VERSION_ARM64=${CUDNN_VERSION}
4+
ARG CUDNN_CUDA_VERSION_MAJ_MIN=13.2
5+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_AMD64=${CUDNN_CUDA_VERSION_MAJ_MIN}
6+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_ARM64=${CUDNN_CUDA_VERSION_MAJ_MIN}
7+
8+
ARG NCCL_VERSION=2.30.4
9+
ARG NCCL_VERSION_AMD64=${NCCL_VERSION}
10+
ARG NCCL_VERSION_ARM64=${NCCL_VERSION}
11+
ARG NCCL_CUDA_VERSION_MAJ_MIN=13.2
12+
ARG NCCL_CUDA_VERSION_MAJ_MIN_AMD64=${NCCL_CUDA_VERSION_MAJ_MIN}
13+
ARG NCCL_CUDA_VERSION_MAJ_MIN_ARM64=${NCCL_CUDA_VERSION_MAJ_MIN}
14+
15+
## CUDA_IMAGE
16+
## ├── nvidia/cuda:13.2.1-runtime-ubuntu24.04
17+
## └── nvidia/cuda:13.2.1-devel-ubuntu24.04
18+
ARG BUILD_ON_IMAGE
19+
ARG CUDNN_VERSION_MAJ=${CUDNN_VERSION%%.*}
20+
ARG CUDNN_VERSION_MAJ=${CUDNN_VERSION_MAJ:-${CUDNN_VERSION_AMD64%%.*}}
21+
ARG CUDNN_VERSION_MAJ=${CUDNN_VERSION_MAJ:-${CUDNN_VERSION_ARM64%%.*}}
22+
ARG CUDA_IMAGE_FLAVOR
23+
24+
FROM ${BUILD_ON_IMAGE} AS cudnn8-runtime-amd64
25+
26+
ARG CUDNN_VERSION_AMD64
27+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_AMD64
28+
29+
ARG NCCL_VERSION_AMD64
30+
ARG NCCL_CUDA_VERSION_MAJ_MIN_AMD64
31+
32+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_AMD64}"
33+
34+
ENV CUDNN_VERSION=${CUDNN_VERSION_AMD64}
35+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
36+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}
37+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64}"
38+
39+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
40+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
41+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
42+
43+
FROM ${BUILD_ON_IMAGE} AS cudnn8-runtime-arm64
44+
45+
ARG CUDNN_VERSION_ARM64
46+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_ARM64
47+
48+
ARG NCCL_VERSION_ARM64
49+
ARG NCCL_CUDA_VERSION_MAJ_MIN_ARM64
50+
51+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_ARM64}"
52+
53+
ENV CUDNN_VERSION=${CUDNN_VERSION_ARM64}
54+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
55+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}
56+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64}"
57+
58+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
59+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
60+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
61+
62+
FROM ${BUILD_ON_IMAGE} AS cudnn8-devel-amd64
63+
64+
ARG CUDNN_VERSION_AMD64
65+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_AMD64
66+
67+
ARG NCCL_VERSION_AMD64
68+
ARG NCCL_CUDA_VERSION_MAJ_MIN_AMD64
69+
70+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_AMD64}"
71+
72+
ENV CUDNN_VERSION=${CUDNN_VERSION_AMD64}
73+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
74+
ENV NV_CUDNN_DEV_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
75+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}
76+
ENV NV_CUDNN_DEV_PACKAGE_NAME=libcudnn${NV_CUDNN_DEV_PACKAGE_VERSION%%.*}-dev
77+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64}"
78+
ENV NV_CUDNN_DEV_PACKAGE="${NV_CUDNN_DEV_PACKAGE_NAME}=${NV_CUDNN_DEV_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64}"
79+
80+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
81+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
82+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
83+
84+
ENV NV_LIBNCCL_DEV_PACKAGE_NAME=libnccl-dev
85+
ENV NV_LIBNCCL_DEV_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
86+
ENV NV_LIBNCCL_DEV_PACKAGE="${NV_LIBNCCL_DEV_PACKAGE_NAME}=${NV_LIBNCCL_DEV_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
87+
88+
FROM ${BUILD_ON_IMAGE} AS cudnn8-devel-arm64
89+
90+
ARG CUDNN_VERSION_ARM64
91+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_ARM64
92+
93+
ARG NCCL_VERSION_ARM64
94+
ARG NCCL_CUDA_VERSION_MAJ_MIN_ARM64
95+
96+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_ARM64}"
97+
98+
ENV CUDNN_VERSION=${CUDNN_VERSION_ARM64}
99+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
100+
ENV NV_CUDNN_DEV_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
101+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}
102+
ENV NV_CUDNN_DEV_PACKAGE_NAME=libcudnn${NV_CUDNN_DEV_PACKAGE_VERSION%%.*}-dev
103+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64}"
104+
ENV NV_CUDNN_DEV_PACKAGE="${NV_CUDNN_DEV_PACKAGE_NAME}=${NV_CUDNN_DEV_PACKAGE_VERSION}-1+cuda${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64}"
105+
106+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
107+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
108+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
109+
110+
ENV NV_LIBNCCL_DEV_PACKAGE_NAME=libnccl-dev
111+
ENV NV_LIBNCCL_DEV_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
112+
ENV NV_LIBNCCL_DEV_PACKAGE="${NV_LIBNCCL_DEV_PACKAGE_NAME}=${NV_LIBNCCL_DEV_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
113+
114+
FROM ${BUILD_ON_IMAGE} AS cudnn9-runtime-amd64
115+
116+
ARG CUDNN_VERSION_AMD64
117+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_AMD64
118+
119+
ARG NCCL_VERSION_AMD64
120+
ARG NCCL_CUDA_VERSION_MAJ_MIN_AMD64
121+
122+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_AMD64}"
123+
124+
ENV CUDNN_VERSION=${CUDNN_VERSION_AMD64}
125+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
126+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64%%.*}
127+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1"
128+
129+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
130+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
131+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
132+
133+
FROM ${BUILD_ON_IMAGE} AS cudnn9-runtime-arm64
134+
135+
ARG CUDNN_VERSION_ARM64
136+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_ARM64
137+
138+
ARG NCCL_VERSION_ARM64
139+
ARG NCCL_CUDA_VERSION_MAJ_MIN_ARM64
140+
141+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_ARM64}"
142+
143+
ENV CUDNN_VERSION=${CUDNN_VERSION_ARM64}
144+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
145+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64%%.*}
146+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1"
147+
148+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
149+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
150+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
151+
152+
FROM ${BUILD_ON_IMAGE} AS cudnn9-devel-amd64
153+
154+
ARG CUDNN_VERSION_AMD64
155+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_AMD64
156+
157+
ARG NCCL_VERSION_AMD64
158+
ARG NCCL_CUDA_VERSION_MAJ_MIN_AMD64
159+
160+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_AMD64}"
161+
162+
ENV CUDNN_VERSION=${CUDNN_VERSION_AMD64}
163+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
164+
ENV NV_CUDNN_DEV_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
165+
ENV NV_CUDNN_HEADERS_PACKAGE_VERSION=${CUDNN_VERSION_AMD64}
166+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64%%.*}
167+
ENV NV_CUDNN_DEV_PACKAGE_NAME=libcudnn${NV_CUDNN_DEV_PACKAGE_VERSION%%.*}-dev-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64%%.*}
168+
ENV NV_CUDNN_HEADERS_PACKAGE_NAME=libcudnn${NV_CUDNN_HEADERS_PACKAGE_VERSION%%.*}-headers-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_AMD64%%.*}
169+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1"
170+
ENV NV_CUDNN_DEV_PACKAGE="${NV_CUDNN_DEV_PACKAGE_NAME}=${NV_CUDNN_DEV_PACKAGE_VERSION}-1"
171+
ENV NV_CUDNN_HEADERS_PACKAGE="${NV_CUDNN_HEADERS_PACKAGE_NAME}=${NV_CUDNN_HEADERS_PACKAGE_VERSION}-1"
172+
173+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
174+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
175+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
176+
177+
ENV NV_LIBNCCL_DEV_PACKAGE_NAME=libnccl-dev
178+
ENV NV_LIBNCCL_DEV_PACKAGE_VERSION=${NCCL_VERSION_AMD64}
179+
ENV NV_LIBNCCL_DEV_PACKAGE="${NV_LIBNCCL_DEV_PACKAGE_NAME}=${NV_LIBNCCL_DEV_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_AMD64}"
180+
181+
FROM ${BUILD_ON_IMAGE} AS cudnn9-devel-arm64
182+
183+
ARG CUDNN_VERSION_ARM64
184+
ARG CUDNN_CUDA_VERSION_MAJ_MIN_ARM64
185+
186+
ARG NCCL_VERSION_ARM64
187+
ARG NCCL_CUDA_VERSION_MAJ_MIN_ARM64
188+
189+
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION_ARM64}"
190+
191+
ENV CUDNN_VERSION=${CUDNN_VERSION_ARM64}
192+
ENV NV_CUDNN_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
193+
ENV NV_CUDNN_DEV_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
194+
ENV NV_CUDNN_HEADERS_PACKAGE_VERSION=${CUDNN_VERSION_ARM64}
195+
ENV NV_CUDNN_PACKAGE_NAME=libcudnn${NV_CUDNN_PACKAGE_VERSION%%.*}-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64%%.*}
196+
ENV NV_CUDNN_DEV_PACKAGE_NAME=libcudnn${NV_CUDNN_DEV_PACKAGE_VERSION%%.*}-dev-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64%%.*}
197+
ENV NV_CUDNN_HEADERS_PACKAGE_NAME=libcudnn${NV_CUDNN_HEADERS_PACKAGE_VERSION%%.*}-headers-cuda-${CUDNN_CUDA_VERSION_MAJ_MIN_ARM64%%.*}
198+
ENV NV_CUDNN_PACKAGE="${NV_CUDNN_PACKAGE_NAME}=${NV_CUDNN_PACKAGE_VERSION}-1"
199+
ENV NV_CUDNN_DEV_PACKAGE="${NV_CUDNN_DEV_PACKAGE_NAME}=${NV_CUDNN_DEV_PACKAGE_VERSION}-1"
200+
ENV NV_CUDNN_HEADERS_PACKAGE="${NV_CUDNN_HEADERS_PACKAGE_NAME}=${NV_CUDNN_HEADERS_PACKAGE_VERSION}-1"
201+
202+
ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2
203+
ENV NV_LIBNCCL_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
204+
ENV NV_LIBNCCL_PACKAGE="${NV_LIBNCCL_PACKAGE_NAME}=${NV_LIBNCCL_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
205+
206+
ENV NV_LIBNCCL_DEV_PACKAGE_NAME=libnccl-dev
207+
ENV NV_LIBNCCL_DEV_PACKAGE_VERSION=${NCCL_VERSION_ARM64}
208+
ENV NV_LIBNCCL_DEV_PACKAGE="${NV_LIBNCCL_DEV_PACKAGE_NAME}=${NV_LIBNCCL_DEV_PACKAGE_VERSION}-1+cuda${NCCL_CUDA_VERSION_MAJ_MIN_ARM64}"
209+
210+
FROM cudnn${CUDNN_VERSION_MAJ}-${CUDA_IMAGE_FLAVOR}-${TARGETARCH}
211+
212+
ARG DEBIAN_FRONTEND=noninteractive
213+
214+
ARG CUDA_HOME=/usr/local/cuda
215+
ARG NVBLAS_CONFIG_FILE=/etc/nvblas.conf
216+
217+
ARG CUDA_IMAGE_FLAVOR
218+
ARG CUPTI_AVAILABLE
219+
ARG BUILD_START
220+
221+
ENV CUDA_HOME=${CUDA_HOME} \
222+
NVBLAS_CONFIG_FILE=${NVBLAS_CONFIG_FILE} \
223+
BUILD_DATE=${BUILD_START}
224+
225+
RUN cpuBlasLib="$(update-alternatives --query \
226+
libblas.so.3-$(uname -m)-linux-gnu | grep Value | cut -f2 -d' ')" \
227+
&& dpkgArch="$(dpkg --print-architecture)" \
228+
&& CUDA_VERSION_MAJ_MIN_DASH=$(echo ${CUDA_VERSION%.*} | tr '.' '-') \
229+
## Install the CUDA Runtime native dev links, headers
230+
&& apt-get update \
231+
&& apt-get -y install --no-install-recommends \
232+
cuda-cudart-dev-${CUDA_VERSION_MAJ_MIN_DASH}=${NV_CUDA_CUDART_VERSION} \
233+
## Keep apt from auto upgrading the CUDA Runtime packages
234+
&& apt-mark hold \
235+
cuda-cudart-${CUDA_VERSION_MAJ_MIN_DASH} \
236+
cuda-cudart-dev-${CUDA_VERSION_MAJ_MIN_DASH} \
237+
## Unminimise if the system has been minimised
238+
&& if [ ${CUDA_IMAGE_FLAVOR} = "devel" -a $(command -v unminimize) ]; then \
239+
sed -i "s/apt-get upgrade/#apt-get upgrade/g" "$(which unminimize)"; \
240+
yes | unminimize; \
241+
sed -i "s/#apt-get upgrade/apt-get upgrade/g" "$(which unminimize)"; \
242+
fi \
243+
## NVBLAS log configuration
244+
&& touch /var/log/nvblas.log \
245+
&& chown :users /var/log/nvblas.log \
246+
&& chmod g+rw /var/log/nvblas.log \
247+
## NVBLAS configuration using all compute-capable GPUs
248+
&& echo "NVBLAS_LOGFILE /var/log/nvblas.log" > $NVBLAS_CONFIG_FILE \
249+
&& echo "NVBLAS_CPU_BLAS_LIB $cpuBlasLib" >> $NVBLAS_CONFIG_FILE \
250+
&& echo "NVBLAS_GPU_LIST ALL" >> $NVBLAS_CONFIG_FILE \
251+
## Install cuDNN
252+
&& apt-get -y install --no-install-recommends \
253+
${NV_CUDNN_PACKAGE} \
254+
${NV_CUDNN_DEV_PACKAGE} \
255+
${NV_CUDNN_HEADERS_PACKAGE} \
256+
## Keep apt from auto upgrading the cuDNN packages
257+
&& apt-mark hold \
258+
${NV_CUDNN_PACKAGE_NAME} \
259+
${NV_CUDNN_DEV_PACKAGE_NAME} \
260+
${NV_CUDNN_HEADERS_PACKAGE_NAME} \
261+
## Install NCCL
262+
&& apt-get -y install --no-install-recommends \
263+
${NV_LIBNCCL_PACKAGE} \
264+
${NV_LIBNCCL_DEV_PACKAGE} \
265+
## Keep apt from auto upgrading the NCCL package
266+
&& apt-mark hold \
267+
${NV_LIBNCCL_PACKAGE_NAME} \
268+
${NV_LIBNCCL_DEV_PACKAGE_NAME} \
269+
## Clean up
270+
&& rm -rf /var/lib/apt/lists/*

0 commit comments

Comments
 (0)