11ARG BASE_TAG=staging
2- FROM nvidia/cuda:10.2-cudnn7 -devel-ubuntu18.04 AS nvidia
2+ FROM nvidia/cuda:11.4.2-cudnn8 -devel-ubuntu18.04 AS nvidia
33FROM gcr.io/kaggle-images/rstats:${BASE_TAG}
44ARG ncpus=1
55
66ADD clean-layer.sh /tmp/clean-layer.sh
77
88# Cuda support
99COPY --from=nvidia /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/
10- COPY --from=nvidia /etc/apt/sources.list.d/nvidia-ml.list /etc/apt/sources.list.d/
1110COPY --from=nvidia /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/cuda.gpg
1211
13- ENV CUDA_MAJOR_VERSION=10
14- ENV CUDA_MINOR_VERSION=2
15- ENV CUDA_PATCH_VERSION=89
12+ ENV CUDA_MAJOR_VERSION=11
13+ ENV CUDA_MINOR_VERSION=4
14+ ENV CUDA_PATCH_VERSION=2
1615ENV CUDA_VERSION=$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION.$CUDA_PATCH_VERSION
17- ENV CUDA_PKG_VERSION=$CUDA_MAJOR_VERSION-$CUDA_MINOR_VERSION=$CUDA_VERSION-1
18- ENV CUDNN_VERSION=7.6.5.32
19- ENV CUBLAS_VERSION=10.2.2.89
16+ ENV CUDA_PKG_VERSION=$CUDA_MAJOR_VERSION-$CUDA_MINOR_VERSION
17+ ENV CUDNN_VERSION=8.2.4.15
2018LABEL com.nvidia.volumes.needed="nvidia_driver"
2119LABEL com.nvidia.cuda.version="${CUDA_VERSION}"
2220LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"
@@ -39,17 +37,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
3937 cuda-nvml-dev-$CUDA_PKG_VERSION \
4038 cuda-minimal-build-$CUDA_PKG_VERSION \
4139 cuda-command-line-tools-$CUDA_PKG_VERSION \
42- libcudnn7=$CUDNN_VERSION-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
43- libcudnn7-dev=$CUDNN_VERSION-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
44- libcublas10=$CUBLAS_VERSION-1 \
45- libcublas-dev=$CUBLAS_VERSION-1 \
46- libnccl2=2.5.6-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
47- libnccl-dev=2.5.6-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION && \
48- ln -s /usr/local/cuda-$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION /usr/local/cuda && \
49- ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
50- # TODO: remove this hack when we move past tensorflow 2.3
51- # https://github.com/tensorflow/tensorflow/issues/38578#issuecomment-760175854
52- ln -sf /usr/local/cuda/lib64/libcudart.so.10.2 /usr/local/cuda/lib64/libcudart.so.10.1 && \
40+ libcudnn8=$CUDNN_VERSION-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
41+ libcudnn8-dev=$CUDNN_VERSION-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
42+ libcublas-$CUDA_PKG_VERSION \
43+ libcublas-dev-$CUDA_PKG_VERSION \
44+ libnccl2=2.11.4-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION \
45+ libnccl-dev=2.11.4-1+cuda$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION && \
5346 /tmp/clean-layer.sh
5447
5548ENV CUDA_HOME=/usr/local/cuda
@@ -62,7 +55,7 @@ ENV CUDA_HOME=/usr/local/cuda
6255ADD ldpaths $R_HOME/etc/ldpaths
6356
6457# Install tensorflow with GPU support
65- RUN R -e 'keras::install_keras(tensorflow = "2.3 -gpu")' && \
58+ RUN R -e 'keras::install_keras(tensorflow = "2.6 -gpu")' && \
6659 rm -rf /tmp/tensorflow_gpu && \
6760 /tmp/clean-layer.sh
6861
@@ -77,8 +70,9 @@ RUN CPATH=/usr/local/cuda/targets/x86_64-linux/include install2.r --error --ncpu
7770
7871# Torch: install the full package upfront otherwise it will be installed on loading the package which doesn't work for kernels
7972# without internet (competitions for example). It will detect CUDA and install the proper version.
80- # TODO(b/224540778) Unpin Torch.
81- RUN R -e 'library(devtools); install_version("torch", version = "0.6.0", ask=FALSE)'
82- RUN R -e 'library(torch); install_torch(reinstall = TRUE)'
73+ # Make Torch think we use CUDA 11.3 (https://github.com/mlverse/torch/issues/807)
74+ ENV CUDA=11.3
75+ RUN R -e 'install.packages("torch")'
76+ RUN R -e 'library(torch); install_torch()'
8377
8478CMD ["R" ]
0 commit comments