320 lines
8.7 KiB
Nix
320 lines
8.7 KiB
Nix
{
|
|
/**
|
|
Mapping of CUDA versions to NVCC compatibilities
|
|
|
|
Taken from
|
|
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
|
|
NVCC performs a version check on the host compiler's major version and so newer minor versions
|
|
of the compilers listed below will be supported, but major versions falling outside the range
|
|
will not be supported.
|
|
|
|
NOTE: These constraints don't apply to Jetson, which uses something else.
|
|
|
|
NOTE: NVIDIA can and will add support for newer compilers even during patch releases.
|
|
E.g.: CUDA 12.2.1 maxxed out with support for Clang 15.0; 12.2.2 added support for Clang 16.0.
|
|
|
|
NOTE: Because all platforms NVIDIA supports use GCC and Clang, we omit the architectures here.
|
|
|
|
# Type
|
|
|
|
```
|
|
nvccCompatibilities ::
|
|
AttrSet
|
|
String
|
|
{ clang :: { maxMajorVersion :: String, minMajorVersion :: String }
|
|
, gcc :: { maxMajorVersion :: String, minMajorVersion :: String }
|
|
}
|
|
```
|
|
*/
|
|
nvccCompatibilities = {
|
|
# https://docs.nvidia.com/cuda/archive/11.0/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features
|
|
"11.0" = {
|
|
clang = {
|
|
maxMajorVersion = "9";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "9";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 10 and GCC 10
|
|
# https://docs.nvidia.com/cuda/archive/11.1.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features
|
|
"11.1" = {
|
|
clang = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 11
|
|
# https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-linux/index.html#system-requirements
|
|
"11.2" = {
|
|
clang = {
|
|
maxMajorVersion = "11";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 11.2 to 11.3
|
|
"11.3" = {
|
|
clang = {
|
|
maxMajorVersion = "11";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 12 and GCC 11
|
|
# https://docs.nvidia.com/cuda/archive/11.4.4/cuda-toolkit-release-notes/index.html#cuda-general-new-features
|
|
# NOTE: There is a bug in the version of GLIBC that GCC 11 uses which causes it to fail to compile some CUDA
|
|
# code. As such, we skip it for this release, and do the bump in 11.6 (skipping 11.5).
|
|
# https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15
|
|
"11.4" = {
|
|
clang = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 11.4 to 11.5
|
|
"11.5" = {
|
|
clang = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "10";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 11.5 to 11.6
|
|
# However, as mentioned above, we add GCC 11 this release.
|
|
"11.6" = {
|
|
clang = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "11";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 13
|
|
# https://docs.nvidia.com/cuda/archive/11.7.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features
|
|
"11.7" = {
|
|
clang = {
|
|
maxMajorVersion = "13";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "11";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 14
|
|
# https://docs.nvidia.com/cuda/archive/11.8.0/cuda-installation-guide-linux/index.html#system-requirements
|
|
"11.8" = {
|
|
clang = {
|
|
maxMajorVersion = "14";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "11";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for GCC 12
|
|
# https://docs.nvidia.com/cuda/archive/12.0.1/cuda-installation-guide-linux/index.html#system-requirements
|
|
"12.0" = {
|
|
clang = {
|
|
maxMajorVersion = "14";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 15
|
|
# https://docs.nvidia.com/cuda/archive/12.1.1/cuda-toolkit-release-notes/index.html#cuda-compilers-new-features
|
|
"12.1" = {
|
|
clang = {
|
|
maxMajorVersion = "15";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 16
|
|
# https://docs.nvidia.com/cuda/archive/12.2.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.2" = {
|
|
clang = {
|
|
maxMajorVersion = "16";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 12.2 to 12.3
|
|
# https://docs.nvidia.com/cuda/archive/12.3.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.3" = {
|
|
clang = {
|
|
maxMajorVersion = "16";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "12";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Maximum Clang version is 17
|
|
# Minimum GCC version is still 6, but all versions prior to GCC 7.3 are deprecated.
|
|
# Maximum GCC version is 13.2
|
|
# https://docs.nvidia.com/cuda/archive/12.4.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.4" = {
|
|
clang = {
|
|
maxMajorVersion = "17";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "13";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 12.4 to 12.5
|
|
# https://docs.nvidia.com/cuda/archive/12.5.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.5" = {
|
|
clang = {
|
|
maxMajorVersion = "17";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "13";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Added support for Clang 18
|
|
# https://docs.nvidia.com/cuda/archive/12.6.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.6" = {
|
|
clang = {
|
|
maxMajorVersion = "18";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "13";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# Maximum Clang version is 19, maximum GCC version is 14
|
|
# https://docs.nvidia.com/cuda/archive/12.8.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.8" = {
|
|
clang = {
|
|
maxMajorVersion = "19";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "14";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 12.8 to 12.9
|
|
# https://docs.nvidia.com/cuda/archive/12.9.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"12.9" = {
|
|
clang = {
|
|
maxMajorVersion = "19";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "14";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# 12.9 to 13.0 adds support for GCC 15 and Clang 20
|
|
# https://docs.nvidia.com/cuda/archive/13.0.3/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"13.0" = {
|
|
clang = {
|
|
maxMajorVersion = "20";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "15";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# 13.0 to 13.1 adds support for Clang 21
|
|
# https://docs.nvidia.com/cuda/archive/13.1.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"13.1" = {
|
|
clang = {
|
|
maxMajorVersion = "21";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "15";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 13.1 to 13.2
|
|
# https://docs.nvidia.com/cuda/archive/13.2.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"13.2" = {
|
|
clang = {
|
|
maxMajorVersion = "21";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "15";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
|
|
# No changes from 13.2 to 13.3
|
|
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy
|
|
"13.3" = {
|
|
clang = {
|
|
maxMajorVersion = "21";
|
|
minMajorVersion = "7";
|
|
};
|
|
gcc = {
|
|
maxMajorVersion = "15";
|
|
minMajorVersion = "6";
|
|
};
|
|
};
|
|
};
|
|
}
|