@@ -3,65 +3,62 @@ ARG DEBIAN_FRONTEND=noninteractive
3
3
ARG PYTHON_VERSION=3.8
4
4
FROM python:$PYTHON_VERSION-slim AS base
5
5
6
- ARG CUDA=11.8
7
- ARG NV_CUDA_CUDART_VERSION=11.8.89-1
8
- ARG NV_CUDA_COMPAT_PACKAGE=cuda-compat-11-8
9
- # CUDDN
10
- ARG CUDNN_VERSION=8.6.0.163-1+cuda11.8
11
- # TensorRT
12
- ARG LIBINVER_VERSION=8.4.3-1+cuda11.6
13
6
14
7
# NVIDIA: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/11.8.0/ubuntu2204/base/Dockerfile
15
8
# specify the version of the CUDA Toolkit to use and the which driver versions are compatible for each brand of GPU.
9
+ ENV NVARCH x86_64
10
+ ENV NVIDIA_REQUIRE_CUDA "cuda>=11.8 brand=tesla,driver>=450,driver<451 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=510,driver<511 brand=unknown,driver>=510,driver<511 brand=nvidia,driver>=510,driver<511 brand=nvidiartx,driver>=510,driver<511 brand=geforce,driver>=510,driver<511 brand=geforcertx,driver>=510,driver<511 brand=quadro,driver>=510,driver<511 brand=quadrortx,driver>=510,driver<511 brand=titan,driver>=510,driver<511 brand=titanrtx,driver>=510,driver<511 brand=tesla,driver>=515,driver<516 brand=unknown,driver>=515,driver<516 brand=nvidia,driver>=515,driver<516 brand=nvidiartx,driver>=515,driver<516 brand=geforce,driver>=515,driver<516 brand=geforcertx,driver>=515,driver<516 brand=quadro,driver>=515,driver<516 brand=quadrortx,driver>=515,driver<516 brand=titan,driver>=515,driver<516 brand=titanrtx,driver>=515,driver<516"
16
11
17
- ENV NVARCH=x86_64\
18
- CUDA=$CUDA \
19
- CUDNN_VERSION=$CUDNN_VERSION \
20
- NV_CUDA_CUDART_VERSION=$NV_CUDA_CUDART_VERSION \
21
- NV_CUDA_COMPAT_PACKAGE=$NV_CUDA_COMPAT_PACKAGE \
22
- LIBINVER_VERSION=$LIBINVER_VERSION \
23
- NVIDIA_REQUIRE_CUDA="cuda>=$CUDA brand=tesla,driver>=450,driver<451 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=510,driver<511 brand=unknown,driver>=510,driver<511 brand=nvidia,driver>=510,driver<511 brand=nvidiartx,driver>=510,driver<511 brand=geforce,driver>=510,driver<511 brand=geforcertx,driver>=510,driver<511 brand=quadro,driver>=510,driver<511 brand=quadrortx,driver>=510,driver<511 brand=titan,driver>=510,driver<511 brand=titanrtx,driver>=510,driver<511 brand=tesla,driver>=515,driver<516 brand=unknown,driver>=515,driver<516 brand=nvidia,driver>=515,driver<516 brand=nvidiartx,driver>=515,driver<516 brand=geforce,driver>=515,driver<516 brand=geforcertx,driver>=515,driver<516 brand=quadro,driver>=515,driver<516 brand=quadrortx,driver>=515,driver<516 brand=titan,driver>=515,driver<516 brand=titanrtx,driver>=515,driver<516"
24
12
25
- # Updates the package index and installs the necessarys packages to add the CUDA repository, including `gnupg2`, `curl`, and `ca-certificates`.
13
+ # Updates the package index and installs the necessarys packages to add the CUDA repository, including `gnupg2`, `curl`, and `ca-certificates`. It then downloads the CUDA keyring package and installs it. Finally, it removes the installed packages that are no longer needed and cleans up the apt cache.
26
14
RUN apt-get update && apt-get install -y --no-install-recommends \
27
15
gnupg2 curl ca-certificates && \
28
16
curl -fsSLO https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/${NVARCH}/cuda-keyring_1.0-1_all.deb && \
29
17
dpkg -i cuda-keyring_1.0-1_all.deb && \
30
18
apt-get purge --autoremove -y curl \
31
19
&& rm -rf /var/lib/apt/lists/*
32
20
33
- # Install CUDA Toolkit, cuDNN SDK, optionally TensorRT
21
+ # Install CUDA Toolkit, cuDNN SDK 8.6.0, optionally TensorRT
22
+ # https://github.com/tensorflow/serving/blob/master/tensorflow_serving/tools/docker/Dockerfile.gpu
23
+ ENV CUDA=11.8
24
+ ENV NV_CUDA_CUDART_VERSION 11.8.89-1
25
+ ENV NV_CUDA_COMPAT_PACKAGE cuda-compat-11-8
26
+ ENV CUDNN_VERSION=8.6.0.163-1+cuda11.8
27
+ ENV TF_TENSORRT_VERSION=8.4.3-1+cuda11.6
28
+
29
+
34
30
RUN apt-get update && apt-get install -y --no-install-recommends \
35
- cuda-cudart-${CUDA%.*}-${CUDA#*.} =${NV_CUDA_CUDART_VERSION} \
31
+ cuda-cudart-11-8 =${NV_CUDA_CUDART_VERSION} \
36
32
${NV_CUDA_COMPAT_PACKAGE} \
37
- cuda-command-line-tools-${CUDA%.*}-${CUDA#*.} \
38
- libcublas-dev-${CUDA%.*}-${CUDA#*.} \
39
- cuda-nvcc-${CUDA%.*}-${CUDA#*.} \
40
- libcublas-${CUDA%.*}-${CUDA#*.} \
41
- cuda-cupti-${CUDA%.*}-${CUDA#*.} \
42
- cuda-nvrtc-${CUDA%.*}-${CUDA#*.} \
43
- cuda-nvprune-${CUDA%.*}-${CUDA#*.} \
44
- cuda-libraries-${CUDA%.*}-${CUDA#*.} \
45
- libcufft-${CUDA%.*}-${CUDA#*.} \
46
- libcurand-${CUDA%.*}-${CUDA#*.} \
47
- libcusolver-${CUDA%.*}-${CUDA#*.} \
48
- libcusparse-${CUDA%.*}-${CUDA#*.} \
33
+ cuda-command-line-tools-11-8 \
34
+ libcublas-dev-11-8 \
35
+ cuda-nvcc-11-8 \
36
+ libcublas-11-8 \
37
+ cuda-cupti-11-8 \
38
+ cuda-nvrtc-11-8 \
39
+ cuda-nvprune-11-8 \
40
+ cuda-libraries-11-8 \
41
+ libcufft-11-8 \
42
+ libcurand-11-8 \
43
+ libcusolver-11-8 \
44
+ libcusparse-11-8 \
49
45
libtool \
50
- libcudnn8=${CUDNN_VERSION}\
51
- libnvinfer8=${LIBINVER_VERSION} \
52
- libnvinfer-plugin8=${LIBINVER_VERSION} \
46
+ libcudnn8=${CUDNN_VERSION}-1+cuda${CUDA} \
47
+ libnvinfer8=${TF_TENSORRT_VERSION}-1+cuda11.6 \
48
+ libnvinfer-plugin8=${TF_TENSORRT_VERSION}-1+cuda11.6 \
53
49
build-essential \
54
50
pkg-config \
55
51
software-properties-common \
56
52
unzip && \
57
- find /usr/local/cuda-${CUDA} /lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete \
53
+ find /usr/local/cuda-11.8 /lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete \
58
54
&& apt-get clean && \
59
55
rm -rf /var/lib/apt/lists/*
60
56
61
57
# # Required for nvidia-docker v1
62
58
RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf \
63
59
&& echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
64
60
61
+
65
62
# Sets environment variables that are required by the `nvidia-container-runtime` to expose all the NVIDIA devices and enable compute and utility capabilities
66
63
ENV NVIDIA_VISIBLE_DEVICES all
67
64
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
0 commit comments