From 5c86128379d9abf881ddf4a75a294bfb76c6104d Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 1/9] auto find cudnn version --- src/nvidia-cuda/devcontainer-feature.json | 37 ------------------- src/nvidia-cuda/install.sh | 15 ++++++-- ...rsion.sh => install_cudnn_12_3_version.sh} | 4 +- ...rsion.sh => install_cudnn_12_4_version.sh} | 4 +- ...rsion.sh => install_cudnn_12_5_version.sh} | 7 ++-- test/nvidia-cuda/scenarios.json | 27 +++++--------- 6 files changed, 28 insertions(+), 66 deletions(-) rename test/nvidia-cuda/{install_cudnn_123_version.sh => install_cudnn_12_3_version.sh} (65%) rename test/nvidia-cuda/{install_cudnn_124_version.sh => install_cudnn_12_4_version.sh} (65%) rename test/nvidia-cuda/{install_cudnn_latest_version.sh => install_cudnn_12_5_version.sh} (52%) diff --git a/src/nvidia-cuda/devcontainer-feature.json b/src/nvidia-cuda/devcontainer-feature.json index b46d7c433..e0707173e 100644 --- a/src/nvidia-cuda/devcontainer-feature.json +++ b/src/nvidia-cuda/devcontainer-feature.json @@ -44,43 +44,6 @@ ], "default": "11.8", "description": "Version of CUDA to install" - }, - "cudnnVersion": { - "type": "string", - "proposals": [ - "8.9.5.29", - "8.9.4.25", - "8.9.3.28", - "8.9.2.26", - "8.9.1.23", - "8.9.0.131", - "8.8.1.3", - "8.8.0.121", - "8.7.0.84", - "8.6.0.163", - "8.5.0.96", - "8.4.1.50", - "8.4.0.27", - "8.3.3.40", - "8.3.2.44", - "8.3.1.22", - "8.3.0.98", - "8.2.4.15", - "8.2.2.26", - "8.2.1.32", - "8.2.0.53", - "8.1.1.33", - "8.1.0.77", - "9.0.0.312", - "9.1.0.70", - "9.1.1.17", - "9.2.0.82", - "9.2.1.18", - "9.3.0.75", - "9.4.0.58" - ], - "default": "8.6.0.163", - "description": "Version of cuDNN to install" } }, "installsAfter": [ diff --git a/src/nvidia-cuda/install.sh b/src/nvidia-cuda/install.sh index 37ba7f0f4..bca4c9b88 100644 --- a/src/nvidia-cuda/install.sh +++ b/src/nvidia-cuda/install.sh @@ -10,7 +10,6 @@ INSTALL_CUDNNDEV=${INSTALLCUDNNDEV} INSTALL_NVTX=${INSTALLNVTX} INSTALL_TOOLKIT=${INSTALLTOOLKIT} CUDA_VERSION=${CUDAVERSION} -CUDNN_VERSION=${CUDNNVERSION} . /etc/os-release @@ -69,10 +68,17 @@ fi echo "Installing CUDA libraries..." apt-get install -yq "$cuda_pkg" +# auto find recent cudnn version +major_cuda_version=$(echo "${CUDA_VERSION}" | cut -d '.' -f 1) +if [[ "$CUDA_VERSION" < "12.3" ]]; then + CUDNN_VERSION=$(apt-cache policy libcudnn8 | grep "$CUDA_VERSION" | grep -Eo '^[^-1+]*' | sort -V | tail -n1 | xargs) +fi +major_cudnn_version=$(echo "${CUDNN_VERSION}" | cut -d '.' -f 1) + if [ "$INSTALL_CUDNN" = "true" ]; then # Ensure that the requested version of cuDNN is available AND compatible - #if major cudnn version is 9, then we need to install libcudnn9-cuda- package - #else we need to install libcudnn8-cuda- package + #if major cudnn version is 9, then we need to install libcudnn9-cuda-_-1 package + #else we need to install libcudnn8_-1+cuda" package if [[ $major_cudnn_version -ge "9" ]] then cudnn_pkg_version="libcudnn9-cuda-${major_cuda_version}=${CUDNN_VERSION}-1" @@ -91,13 +97,14 @@ fi if [ "$INSTALL_CUDNNDEV" = "true" ]; then # Ensure that the requested version of cuDNN development package is available AND compatible + #if major cudnn version is 9, then we need to install libcudnn9-dev-cuda-_-1 package + #else we need to install libcudnn8-dev_-1+cuda" package if [[ $major_cudnn_version -ge "9" ]] then cudnn_dev_pkg_version="libcudnn9-dev-cuda-${major_cuda_version}=${CUDNN_VERSION}-1" else cudnn_dev_pkg_version="libcudnn8-dev=${CUDNN_VERSION}-1+cuda${CUDA_VERSION}" fi - if ! apt-cache show "$cudnn_dev_pkg_version"; then echo "The requested version of cuDNN development package is not available: cuDNN $CUDNN_VERSION for CUDA $CUDA_VERSION" exit 1 diff --git a/test/nvidia-cuda/install_cudnn_123_version.sh b/test/nvidia-cuda/install_cudnn_12_3_version.sh similarity index 65% rename from test/nvidia-cuda/install_cudnn_123_version.sh rename to test/nvidia-cuda/install_cudnn_12_3_version.sh index f331a591f..b77f62ad3 100644 --- a/test/nvidia-cuda/install_cudnn_123_version.sh +++ b/test/nvidia-cuda/install_cudnn_12_3_version.sh @@ -8,8 +8,8 @@ source dev-container-features-test-lib # Check installation of libcudnn9-cuda-12 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" -# Check installation of cuda-nvtx-11-7 (11.7) -# check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3' +# Check installation of cuda-nvtx-12-3 (12.3) +check "cuda-12-3+nvtx" test -e '/usr/local/cuda-12.3/targets/x86_64-linux/include/nvtx3' # Report result reportResults diff --git a/test/nvidia-cuda/install_cudnn_124_version.sh b/test/nvidia-cuda/install_cudnn_12_4_version.sh similarity index 65% rename from test/nvidia-cuda/install_cudnn_124_version.sh rename to test/nvidia-cuda/install_cudnn_12_4_version.sh index f331a591f..64e581b01 100644 --- a/test/nvidia-cuda/install_cudnn_124_version.sh +++ b/test/nvidia-cuda/install_cudnn_12_4_version.sh @@ -8,8 +8,8 @@ source dev-container-features-test-lib # Check installation of libcudnn9-cuda-12 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" -# Check installation of cuda-nvtx-11-7 (11.7) -# check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3' +# Check installation of cuda-nvtx-12-4 (12.4) +check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3' # Report result reportResults diff --git a/test/nvidia-cuda/install_cudnn_latest_version.sh b/test/nvidia-cuda/install_cudnn_12_5_version.sh similarity index 52% rename from test/nvidia-cuda/install_cudnn_latest_version.sh rename to test/nvidia-cuda/install_cudnn_12_5_version.sh index f331a591f..44bce8ebc 100644 --- a/test/nvidia-cuda/install_cudnn_latest_version.sh +++ b/test/nvidia-cuda/install_cudnn_12_5_version.sh @@ -5,12 +5,11 @@ set -e # Optional: Import test library source dev-container-features-test-lib -# Check installation of libcudnn9-cuda-12 (9.4.0) +# # Check installation of libcudnn8 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" -# Check installation of cuda-nvtx-11-7 (11.7) -# check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3' +# Check installation of cuda-nvtx-12-5 (12.5) +check "cuda-12-5+nvtx" test -e '/usr/local/cuda-12.5/targets/x86_64-linux/include/nvtx3/' # Report result reportResults - \ No newline at end of file diff --git a/test/nvidia-cuda/scenarios.json b/test/nvidia-cuda/scenarios.json index d2400503b..eb6edf3cc 100644 --- a/test/nvidia-cuda/scenarios.json +++ b/test/nvidia-cuda/scenarios.json @@ -16,47 +16,40 @@ "nvidia-cuda": { "installCudnn": true, "installNvtx": true, - "cudaVersion": "11.7", - "cudnnVersion": "8.5.0.96" + "cudaVersion": "11.7" } } }, - "install_cudnn_123_version": { + "install_cuda_12_3_version": { "image": "debian", "features": { "nvidia-cuda": { "installCudnn": true, - "installNvtx": true, "installCudnnDev": true, - "installToolkit": true, - "cudaVersion": "12.3", - "cudnnVersion": "9.4.0.58" + "installNvtx": true, + "cudaVersion": "12.3" } } }, - "install_cudnn_124_version": { + "install_cuda_12_4_version": { "image": "debian", "features": { "nvidia-cuda": { "installCudnn": true, - "installNvtx": true, "installCudnnDev": true, - "installToolkit": true, - "cudaVersion": "12.4", - "cudnnVersion": "9.4.0.58" + "installNvtx": true, + "cudaVersion": "12.4" } } }, - "install_cudnn_latest_version": { + "install_cuda_12_5_version": { "image": "debian", "features": { "nvidia-cuda": { "installCudnn": true, - "installNvtx": true, "installCudnnDev": true, - "installToolkit": true, - "cudaVersion": "12.5", - "cudnnVersion": "9.4.0.58" + "installNvtx": true, + "cudaVersion": "12.5" } } } From c5b363dc851991766d4dfee8f324f06b18458c9d Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 2/9] auto finding libcudnn8 and libcudnn9 packages --- src/nvidia-cuda/install.sh | 3 +++ test/nvidia-cuda/install_cuda_12_3_version.sh | 15 +++++++++++++++ test/nvidia-cuda/install_cuda_12_4_version.sh | 15 +++++++++++++++ test/nvidia-cuda/install_cuda_12_5_version.sh | 15 +++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 test/nvidia-cuda/install_cuda_12_3_version.sh create mode 100644 test/nvidia-cuda/install_cuda_12_4_version.sh create mode 100644 test/nvidia-cuda/install_cuda_12_5_version.sh diff --git a/src/nvidia-cuda/install.sh b/src/nvidia-cuda/install.sh index bca4c9b88..7a520e6c0 100644 --- a/src/nvidia-cuda/install.sh +++ b/src/nvidia-cuda/install.sh @@ -67,11 +67,14 @@ fi echo "Installing CUDA libraries..." apt-get install -yq "$cuda_pkg" +apt-get update -yq # auto find recent cudnn version major_cuda_version=$(echo "${CUDA_VERSION}" | cut -d '.' -f 1) if [[ "$CUDA_VERSION" < "12.3" ]]; then CUDNN_VERSION=$(apt-cache policy libcudnn8 | grep "$CUDA_VERSION" | grep -Eo '^[^-1+]*' | sort -V | tail -n1 | xargs) +else + CUDNN_VERSION=$(apt-cache policy libcudnn9-cuda-$major_cuda_version | grep "Candidate" | awk '{print $2}' | grep -Eo '^[^-1+]*') fi major_cudnn_version=$(echo "${CUDNN_VERSION}" | cut -d '.' -f 1) diff --git a/test/nvidia-cuda/install_cuda_12_3_version.sh b/test/nvidia-cuda/install_cuda_12_3_version.sh new file mode 100644 index 000000000..b49a54455 --- /dev/null +++ b/test/nvidia-cuda/install_cuda_12_3_version.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# # Check installation of libcudnn8 (9.4.0) +check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" + +# Check installation of cuda-nvtx-12-3 (12.3) +check "cuda-12-3+nvtx" test -e '/usr/local/cuda-12.3/targets/x86_64-linux/include/nvtx3/' + +# Report result +reportResults diff --git a/test/nvidia-cuda/install_cuda_12_4_version.sh b/test/nvidia-cuda/install_cuda_12_4_version.sh new file mode 100644 index 000000000..85e42d33a --- /dev/null +++ b/test/nvidia-cuda/install_cuda_12_4_version.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# # Check installation of libcudnn8 (9.4.0) +check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" + +# Check installation of cuda-nvtx-12-3 (12.3) +check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3/' + +# Report result +reportResults diff --git a/test/nvidia-cuda/install_cuda_12_5_version.sh b/test/nvidia-cuda/install_cuda_12_5_version.sh new file mode 100644 index 000000000..808eba33c --- /dev/null +++ b/test/nvidia-cuda/install_cuda_12_5_version.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# # Check installation of libcudnn8 (9.4.0) +check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" + +# Check installation of cuda-nvtx-12-3 (12.3) +check "cuda-12-5+nvtx" test -e '/usr/local/cuda-12.5/targets/x86_64-linux/include/nvtx3/' + +# Report result +reportResults From 33294c91df9cf07bb35ed891c9fe98476a6118ee Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 3/9] removed unused files --- test/nvidia-cuda/install_cuda_12_4_version.sh | 2 +- test/nvidia-cuda/install_cuda_12_5_version.sh | 2 +- test/nvidia-cuda/install_cudnn_12_3_version.sh | 16 ---------------- test/nvidia-cuda/install_cudnn_12_4_version.sh | 16 ---------------- test/nvidia-cuda/install_cudnn_12_5_version.sh | 15 --------------- 5 files changed, 2 insertions(+), 49 deletions(-) delete mode 100644 test/nvidia-cuda/install_cudnn_12_3_version.sh delete mode 100644 test/nvidia-cuda/install_cudnn_12_4_version.sh delete mode 100644 test/nvidia-cuda/install_cudnn_12_5_version.sh diff --git a/test/nvidia-cuda/install_cuda_12_4_version.sh b/test/nvidia-cuda/install_cuda_12_4_version.sh index 85e42d33a..0cb83fe42 100644 --- a/test/nvidia-cuda/install_cuda_12_4_version.sh +++ b/test/nvidia-cuda/install_cuda_12_4_version.sh @@ -8,7 +8,7 @@ source dev-container-features-test-lib # # Check installation of libcudnn8 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" -# Check installation of cuda-nvtx-12-3 (12.3) +# Check installation of cuda-nvtx-12-4 (12.4) check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3/' # Report result diff --git a/test/nvidia-cuda/install_cuda_12_5_version.sh b/test/nvidia-cuda/install_cuda_12_5_version.sh index 808eba33c..44bce8ebc 100644 --- a/test/nvidia-cuda/install_cuda_12_5_version.sh +++ b/test/nvidia-cuda/install_cuda_12_5_version.sh @@ -8,7 +8,7 @@ source dev-container-features-test-lib # # Check installation of libcudnn8 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" -# Check installation of cuda-nvtx-12-3 (12.3) +# Check installation of cuda-nvtx-12-5 (12.5) check "cuda-12-5+nvtx" test -e '/usr/local/cuda-12.5/targets/x86_64-linux/include/nvtx3/' # Report result diff --git a/test/nvidia-cuda/install_cudnn_12_3_version.sh b/test/nvidia-cuda/install_cudnn_12_3_version.sh deleted file mode 100644 index b77f62ad3..000000000 --- a/test/nvidia-cuda/install_cudnn_12_3_version.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# Check installation of libcudnn9-cuda-12 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" - -# Check installation of cuda-nvtx-12-3 (12.3) -check "cuda-12-3+nvtx" test -e '/usr/local/cuda-12.3/targets/x86_64-linux/include/nvtx3' - -# Report result -reportResults - \ No newline at end of file diff --git a/test/nvidia-cuda/install_cudnn_12_4_version.sh b/test/nvidia-cuda/install_cudnn_12_4_version.sh deleted file mode 100644 index 64e581b01..000000000 --- a/test/nvidia-cuda/install_cudnn_12_4_version.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# Check installation of libcudnn9-cuda-12 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" - -# Check installation of cuda-nvtx-12-4 (12.4) -check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3' - -# Report result -reportResults - \ No newline at end of file diff --git a/test/nvidia-cuda/install_cudnn_12_5_version.sh b/test/nvidia-cuda/install_cudnn_12_5_version.sh deleted file mode 100644 index 44bce8ebc..000000000 --- a/test/nvidia-cuda/install_cudnn_12_5_version.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# # Check installation of libcudnn8 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" - -# Check installation of cuda-nvtx-12-5 (12.5) -check "cuda-12-5+nvtx" test -e '/usr/local/cuda-12.5/targets/x86_64-linux/include/nvtx3/' - -# Report result -reportResults From 9049a118d7eee7d4df98b825fbd9329cab69a489 Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 4/9] nvidia-cuda feature patch version bumped --- src/nvidia-cuda/devcontainer-feature.json | 2 +- test/nvidia-cuda/install_cuda_12_3_version.sh | 2 +- test/nvidia-cuda/install_cuda_12_4_version.sh | 2 +- test/nvidia-cuda/install_cuda_12_5_version.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nvidia-cuda/devcontainer-feature.json b/src/nvidia-cuda/devcontainer-feature.json index e0707173e..b10639c21 100644 --- a/src/nvidia-cuda/devcontainer-feature.json +++ b/src/nvidia-cuda/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "nvidia-cuda", - "version": "1.1.3", + "version": "1.1.4", "name": "NVIDIA CUDA", "description": "Installs shared libraries for NVIDIA CUDA.", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/nvidia-cuda", diff --git a/test/nvidia-cuda/install_cuda_12_3_version.sh b/test/nvidia-cuda/install_cuda_12_3_version.sh index b49a54455..dbc5b15a1 100644 --- a/test/nvidia-cuda/install_cuda_12_3_version.sh +++ b/test/nvidia-cuda/install_cuda_12_3_version.sh @@ -5,7 +5,7 @@ set -e # Optional: Import test library source dev-container-features-test-lib -# # Check installation of libcudnn8 (9.4.0) +# # Check installation of libcudnn9-cuda-12 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" # Check installation of cuda-nvtx-12-3 (12.3) diff --git a/test/nvidia-cuda/install_cuda_12_4_version.sh b/test/nvidia-cuda/install_cuda_12_4_version.sh index 0cb83fe42..36ebbf7ea 100644 --- a/test/nvidia-cuda/install_cuda_12_4_version.sh +++ b/test/nvidia-cuda/install_cuda_12_4_version.sh @@ -5,7 +5,7 @@ set -e # Optional: Import test library source dev-container-features-test-lib -# # Check installation of libcudnn8 (9.4.0) +# # Check installation of libcudnn9-cuda-12 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" # Check installation of cuda-nvtx-12-4 (12.4) diff --git a/test/nvidia-cuda/install_cuda_12_5_version.sh b/test/nvidia-cuda/install_cuda_12_5_version.sh index 44bce8ebc..b129b2385 100644 --- a/test/nvidia-cuda/install_cuda_12_5_version.sh +++ b/test/nvidia-cuda/install_cuda_12_5_version.sh @@ -5,7 +5,7 @@ set -e # Optional: Import test library source dev-container-features-test-lib -# # Check installation of libcudnn8 (9.4.0) +# # Check installation of libcudnn9-cuda-12 (9.4.0) check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" # Check installation of cuda-nvtx-12-5 (12.5) From 463d3f1f839be1e4fd112ef14ebeacbec199c20c Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 5/9] review comments addressed --- src/nvidia-cuda/devcontainer-feature.json | 40 ++++++++++++++++++++++- src/nvidia-cuda/install.sh | 13 ++++---- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/nvidia-cuda/devcontainer-feature.json b/src/nvidia-cuda/devcontainer-feature.json index b10639c21..da3b4e054 100644 --- a/src/nvidia-cuda/devcontainer-feature.json +++ b/src/nvidia-cuda/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "nvidia-cuda", - "version": "1.1.4", + "version": "1.2.0", "name": "NVIDIA CUDA", "description": "Installs shared libraries for NVIDIA CUDA.", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/nvidia-cuda", @@ -44,6 +44,44 @@ ], "default": "11.8", "description": "Version of CUDA to install" + }, + "cudnnVersion": { + "type": "string", + "proposals": [ + "8.9.5.29", + "8.9.4.25", + "8.9.3.28", + "8.9.2.26", + "8.9.1.23", + "8.9.0.131", + "8.8.1.3", + "8.8.0.121", + "8.7.0.84", + "8.6.0.163", + "8.5.0.96", + "8.4.1.50", + "8.4.0.27", + "8.3.3.40", + "8.3.2.44", + "8.3.1.22", + "8.3.0.98", + "8.2.4.15", + "8.2.2.26", + "8.2.1.32", + "8.2.0.53", + "8.1.1.33", + "8.1.0.77", + "9.0.0.312", + "9.1.0.70", + "9.1.1.17", + "9.2.0.82", + "9.2.1.18", + "9.3.0.75", + "9.4.0.58", + "automatic" + ], + "default": "automatic", + "description": "Version of cuDNN to install" } }, "installsAfter": [ diff --git a/src/nvidia-cuda/install.sh b/src/nvidia-cuda/install.sh index 7a520e6c0..637986300 100644 --- a/src/nvidia-cuda/install.sh +++ b/src/nvidia-cuda/install.sh @@ -10,6 +10,7 @@ INSTALL_CUDNNDEV=${INSTALLCUDNNDEV} INSTALL_NVTX=${INSTALLNVTX} INSTALL_TOOLKIT=${INSTALLTOOLKIT} CUDA_VERSION=${CUDAVERSION} +CUDNN_VERSION=${CUDNNVERSION} . /etc/os-release @@ -58,8 +59,6 @@ apt-get update -yq cuda_pkg="cuda-libraries-${CUDA_VERSION/./-}" nvtx_pkg="cuda-nvtx-${CUDA_VERSION/./-}" toolkit_pkg="cuda-toolkit-${CUDA_VERSION/./-}" -major_cudnn_version=$(echo "${CUDNN_VERSION}" | cut -d '.' -f 1) -major_cuda_version=$(echo "${CUDA_VERSION}" | cut -d '.' -f 1) if ! apt-cache show "$cuda_pkg"; then echo "The requested version of CUDA is not available: CUDA $CUDA_VERSION" exit 1 @@ -71,10 +70,12 @@ apt-get update -yq # auto find recent cudnn version major_cuda_version=$(echo "${CUDA_VERSION}" | cut -d '.' -f 1) -if [[ "$CUDA_VERSION" < "12.3" ]]; then - CUDNN_VERSION=$(apt-cache policy libcudnn8 | grep "$CUDA_VERSION" | grep -Eo '^[^-1+]*' | sort -V | tail -n1 | xargs) -else - CUDNN_VERSION=$(apt-cache policy libcudnn9-cuda-$major_cuda_version | grep "Candidate" | awk '{print $2}' | grep -Eo '^[^-1+]*') +if [ "$CUDNN_VERSION" = "automatic" ]; then + if [[ "$CUDA_VERSION" < "12.3" ]]; then + CUDNN_VERSION=$(apt-cache policy libcudnn8 | grep "$CUDA_VERSION" | grep -Eo '^[^-1+]*' | sort -V | tail -n1 | xargs) + else + CUDNN_VERSION=$(apt-cache policy libcudnn9-cuda-$major_cuda_version | grep "Candidate" | awk '{print $2}' | grep -Eo '^[^-1+]*') + fi fi major_cudnn_version=$(echo "${CUDNN_VERSION}" | cut -d '.' -f 1) From 240c2d7e008442c5a8f7da68af2f32b68f8ceeeb Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 6/9] review comments addressed --- src/nvidia-cuda/devcontainer-feature.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nvidia-cuda/devcontainer-feature.json b/src/nvidia-cuda/devcontainer-feature.json index da3b4e054..d29074fd9 100644 --- a/src/nvidia-cuda/devcontainer-feature.json +++ b/src/nvidia-cuda/devcontainer-feature.json @@ -48,6 +48,7 @@ "cudnnVersion": { "type": "string", "proposals": [ + "automatic", "8.9.5.29", "8.9.4.25", "8.9.3.28", @@ -77,8 +78,7 @@ "9.2.0.82", "9.2.1.18", "9.3.0.75", - "9.4.0.58", - "automatic" + "9.4.0.58" ], "default": "automatic", "description": "Version of cuDNN to install" From c5b709b31cea1e6e4ae3779f04a246127077e370 Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:41:06 +0000 Subject: [PATCH 7/9] --fix-missing added for apt-get update --- src/nvidia-cuda/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nvidia-cuda/install.sh b/src/nvidia-cuda/install.sh index 637986300..1cfc7668e 100644 --- a/src/nvidia-cuda/install.sh +++ b/src/nvidia-cuda/install.sh @@ -66,7 +66,7 @@ fi echo "Installing CUDA libraries..." apt-get install -yq "$cuda_pkg" -apt-get update -yq +apt-get update -yq --fix-missing # auto find recent cudnn version major_cuda_version=$(echo "${CUDA_VERSION}" | cut -d '.' -f 1) From 29e96f255cafa507756b8553f36bb4ab72330e56 Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:04:17 +0000 Subject: [PATCH 8/9] test cases fixed for libcudnn check --- test/nvidia-cuda/install_cuda_12_3_version.sh | 2 +- test/nvidia-cuda/install_cuda_12_4_version.sh | 2 +- test/nvidia-cuda/install_cuda_12_5_version.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/nvidia-cuda/install_cuda_12_3_version.sh b/test/nvidia-cuda/install_cuda_12_3_version.sh index dbc5b15a1..95d4e8bdc 100644 --- a/test/nvidia-cuda/install_cuda_12_3_version.sh +++ b/test/nvidia-cuda/install_cuda_12_3_version.sh @@ -6,7 +6,7 @@ set -e source dev-container-features-test-lib # # Check installation of libcudnn9-cuda-12 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" +check "libcudnn.so.9.5.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.5.0' | wc -l)" # Check installation of cuda-nvtx-12-3 (12.3) check "cuda-12-3+nvtx" test -e '/usr/local/cuda-12.3/targets/x86_64-linux/include/nvtx3/' diff --git a/test/nvidia-cuda/install_cuda_12_4_version.sh b/test/nvidia-cuda/install_cuda_12_4_version.sh index 36ebbf7ea..77ecbf190 100644 --- a/test/nvidia-cuda/install_cuda_12_4_version.sh +++ b/test/nvidia-cuda/install_cuda_12_4_version.sh @@ -6,7 +6,7 @@ set -e source dev-container-features-test-lib # # Check installation of libcudnn9-cuda-12 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" +check "libcudnn.so.9.5.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.5.0' | wc -l)" # Check installation of cuda-nvtx-12-4 (12.4) check "cuda-12-4+nvtx" test -e '/usr/local/cuda-12.4/targets/x86_64-linux/include/nvtx3/' diff --git a/test/nvidia-cuda/install_cuda_12_5_version.sh b/test/nvidia-cuda/install_cuda_12_5_version.sh index b129b2385..05cd20c88 100644 --- a/test/nvidia-cuda/install_cuda_12_5_version.sh +++ b/test/nvidia-cuda/install_cuda_12_5_version.sh @@ -6,7 +6,7 @@ set -e source dev-container-features-test-lib # # Check installation of libcudnn9-cuda-12 (9.4.0) -check "libcudnn.so.9.4.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.4.0' | wc -l)" +check "libcudnn.so.9.5.0" test 1 -eq "$(find /usr -name 'libcudnn.so.9.5.0' | wc -l)" # Check installation of cuda-nvtx-12-5 (12.5) check "cuda-12-5+nvtx" test -e '/usr/local/cuda-12.5/targets/x86_64-linux/include/nvtx3/' From 45df7325104f42b1d371f08b6ad26b6c0dc13755 Mon Sep 17 00:00:00 2001 From: Prathamesh Zarkar <159782310+prathameshzarkar9@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:56:40 +0000 Subject: [PATCH 9/9] test updatedfor cudnnVersion without automatic --- test/nvidia-cuda/scenarios.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/nvidia-cuda/scenarios.json b/test/nvidia-cuda/scenarios.json index eb6edf3cc..82c84f119 100644 --- a/test/nvidia-cuda/scenarios.json +++ b/test/nvidia-cuda/scenarios.json @@ -49,7 +49,8 @@ "installCudnn": true, "installCudnnDev": true, "installNvtx": true, - "cudaVersion": "12.5" + "cudaVersion": "12.5", + "cudnnVersion": "9.5.0.50" } } }