Enhancements in CUDA Support (#699)
* add cuda tookit installing support
* add nvcc installing support
* add libcudnn8-dev installing support
* add new cuda versions adn cudnn versions
* add specificaitons of new option
* remove installNvcc
installNvcc process is included in installToolkit
* add tests for new nvidia-cuda options
* fix wrong scenario name
* Revert "add specificaitons of new option"
This reverts commit 0dcdb92406
.
README.md should be generated by CI workflow.
* make cudnn-dev installation isolated
* dump minor version to 1.1.0
This commit is contained in:
parent
0d2fc3ad5b
commit
243671eece
4 changed files with 54 additions and 4 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"id": "nvidia-cuda",
|
||||
"version": "1.0.7",
|
||||
"version": "1.1.0",
|
||||
"name": "NVIDIA CUDA",
|
||||
"description": "Installs shared libraries for NVIDIA CUDA.",
|
||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/nvidia-cuda",
|
||||
|
@ -10,14 +10,27 @@
|
|||
"default": false,
|
||||
"description": "Additionally install CUDA Deep Neural Network (cuDNN) shared library"
|
||||
},
|
||||
"installCudnnDev": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Additionally install CUDA Deep Neural Network (cuDNN) development libraries and headers"
|
||||
},
|
||||
"installNvtx": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Additionally install NVIDIA Tools Extension (NVTX)"
|
||||
},
|
||||
"installToolkit": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Additionally install NVIDIA CUDA Toolkit"
|
||||
},
|
||||
"cudaVersion": {
|
||||
"type": "string",
|
||||
"proposals": [
|
||||
"12.2",
|
||||
"12.1",
|
||||
"12.0",
|
||||
"11.8",
|
||||
"11.7",
|
||||
"11.6",
|
||||
|
@ -32,6 +45,15 @@
|
|||
"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",
|
||||
|
|
|
@ -6,7 +6,9 @@ set -e
|
|||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
INSTALL_CUDNN=${INSTALLCUDNN}
|
||||
INSTALL_CUDNNDEV=${INSTALLCUDNNDEV}
|
||||
INSTALL_NVTX=${INSTALLNVTX}
|
||||
INSTALL_TOOLKIT=${INSTALLTOOLKIT}
|
||||
CUDA_VERSION=${CUDAVERSION}
|
||||
CUDNN_VERSION=${CUDNNVERSION}
|
||||
|
||||
|
@ -47,6 +49,7 @@ apt-get update -yq
|
|||
# Ensure that the requested version of CUDA is available
|
||||
cuda_pkg="cuda-libraries-${CUDA_VERSION/./-}"
|
||||
nvtx_pkg="cuda-nvtx-${CUDA_VERSION/./-}"
|
||||
toolkit_pkg="cuda-toolkit-${CUDA_VERSION/./-}"
|
||||
if ! apt-cache show "$cuda_pkg"; then
|
||||
echo "The requested version of CUDA is not available: CUDA $CUDA_VERSION"
|
||||
exit 1
|
||||
|
@ -67,11 +70,28 @@ if [ "$INSTALL_CUDNN" = "true" ]; then
|
|||
apt-get install -yq "$cudnn_pkg_version"
|
||||
fi
|
||||
|
||||
if [ "$INSTALL_CUDNNDEV" = "true" ]; then
|
||||
# Ensure that the requested version of cuDNN development package is available AND compatible
|
||||
cudnn_dev_pkg_version="libcudnn8-dev=${CUDNN_VERSION}-1+cuda${CUDA_VERSION}"
|
||||
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
|
||||
fi
|
||||
|
||||
echo "Installing cuDNN dev libraries..."
|
||||
apt-get install -yq "$cudnn_dev_pkg_version"
|
||||
fi
|
||||
|
||||
if [ "$INSTALL_NVTX" = "true" ]; then
|
||||
echo "Installing NVTX..."
|
||||
apt-get install -yq "$nvtx_pkg"
|
||||
fi
|
||||
|
||||
if [ "$INSTALL_TOOLKIT" = "true" ]; then
|
||||
echo "Installing CUDA Toolkit..."
|
||||
apt-get install -yq "$toolkit_pkg"
|
||||
fi
|
||||
|
||||
# Clean up
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
|
|
@ -8,8 +8,14 @@ source dev-container-features-test-lib
|
|||
# Check installation of libcudnn8
|
||||
check "libcudnn.so.8" test 1 -eq "$(find /usr -name 'libcudnn.so.8' | wc -l)"
|
||||
|
||||
# Check installation of libcudnn8-dev
|
||||
check "cudnn.h" test 1 -eq "$(find /usr -name 'cudnn.h' | wc -l)"
|
||||
|
||||
# Check installation of cuda-nvtx-11-<version>
|
||||
check "cuda-11+nvtx" test -e '/usr/local/cuda-11/targets/x86_64-linux/include/nvtx3'
|
||||
|
||||
# Check installation of cuda-nvcc-11-<version>
|
||||
check "cuda-11+nvcc" test -e '/usr/local/cuda-11/bin/nvcc'
|
||||
|
||||
# Report result
|
||||
reportResults
|
|
@ -1,10 +1,12 @@
|
|||
{
|
||||
"install_cudnn_nvxt": {
|
||||
"install_all_options": {
|
||||
"image": "debian",
|
||||
"features": {
|
||||
"nvidia-cuda": {
|
||||
"installCudnn": true,
|
||||
"installNvtx": true
|
||||
"installCudnnDev": true,
|
||||
"installNvtx": true,
|
||||
"installToolkit": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -19,4 +21,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue