Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 /** 3 Mapping of CUDA versions to NVCC compatibilities 4 5 Taken from 6 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy 7 8 NVCC performs a version check on the host compiler's major version and so newer minor versions 9 of the compilers listed below will be supported, but major versions falling outside the range 10 will not be supported. 11 12 NOTE: These constraints don't apply to Jetson, which uses something else. 13 14 NOTE: NVIDIA can and will add support for newer compilers even during patch releases. 15 E.g.: CUDA 12.2.1 maxxed out with support for Clang 15.0; 12.2.2 added support for Clang 16.0. 16 17 NOTE: Because all platforms NVIDIA supports use GCC and Clang, we omit the architectures here. 18 19 # Type 20 21 ``` 22 nvccCompatibilities :: 23 AttrSet 24 String 25 { clang :: { maxMajorVersion :: String, minMajorVersion :: String } 26 , gcc :: { maxMajorVersion :: String, minMajorVersion :: String } 27 } 28 ``` 29 */ 30 nvccCompatibilities = { 31 # Our baseline 32 # https://docs.nvidia.com/cuda/archive/11.0/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features 33 "11.0" = { 34 clang = { 35 maxMajorVersion = "9"; 36 minMajorVersion = "7"; 37 }; 38 gcc = { 39 maxMajorVersion = "9"; 40 minMajorVersion = "6"; 41 }; 42 }; 43 44 # Added support for Clang 10 and GCC 10 45 # https://docs.nvidia.com/cuda/archive/11.1.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features 46 "11.1" = { 47 clang = { 48 maxMajorVersion = "10"; 49 minMajorVersion = "7"; 50 }; 51 gcc = { 52 maxMajorVersion = "10"; 53 minMajorVersion = "6"; 54 }; 55 }; 56 57 # Added support for Clang 11 58 # https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-linux/index.html#system-requirements 59 "11.2" = { 60 clang = { 61 maxMajorVersion = "11"; 62 minMajorVersion = "7"; 63 }; 64 gcc = { 65 maxMajorVersion = "10"; 66 minMajorVersion = "6"; 67 }; 68 }; 69 70 # No changes from 11.2 to 11.3 71 "11.3" = { 72 clang = { 73 maxMajorVersion = "11"; 74 minMajorVersion = "7"; 75 }; 76 gcc = { 77 maxMajorVersion = "10"; 78 minMajorVersion = "6"; 79 }; 80 }; 81 82 # Added support for Clang 12 and GCC 11 83 # https://docs.nvidia.com/cuda/archive/11.4.4/cuda-toolkit-release-notes/index.html#cuda-general-new-features 84 # NOTE: There is a bug in the version of GLIBC that GCC 11 uses which causes it to fail to compile some CUDA 85 # code. As such, we skip it for this release, and do the bump in 11.6 (skipping 11.5). 86 # https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15 87 "11.4" = { 88 clang = { 89 maxMajorVersion = "12"; 90 minMajorVersion = "7"; 91 }; 92 gcc = { 93 maxMajorVersion = "10"; 94 minMajorVersion = "6"; 95 }; 96 }; 97 98 # No changes from 11.4 to 11.5 99 "11.5" = { 100 clang = { 101 maxMajorVersion = "12"; 102 minMajorVersion = "7"; 103 }; 104 gcc = { 105 maxMajorVersion = "10"; 106 minMajorVersion = "6"; 107 }; 108 }; 109 110 # No changes from 11.5 to 11.6 111 # However, as mentioned above, we add GCC 11 this release. 112 "11.6" = { 113 clang = { 114 maxMajorVersion = "12"; 115 minMajorVersion = "7"; 116 }; 117 gcc = { 118 maxMajorVersion = "11"; 119 minMajorVersion = "6"; 120 }; 121 }; 122 123 # Added support for Clang 13 124 # https://docs.nvidia.com/cuda/archive/11.7.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features 125 "11.7" = { 126 clang = { 127 maxMajorVersion = "13"; 128 minMajorVersion = "7"; 129 }; 130 gcc = { 131 maxMajorVersion = "11"; 132 minMajorVersion = "6"; 133 }; 134 }; 135 136 # Added support for Clang 14 137 # https://docs.nvidia.com/cuda/archive/11.8.0/cuda-installation-guide-linux/index.html#system-requirements 138 "11.8" = { 139 clang = { 140 maxMajorVersion = "14"; 141 minMajorVersion = "7"; 142 }; 143 gcc = { 144 maxMajorVersion = "11"; 145 minMajorVersion = "6"; 146 }; 147 }; 148 149 # Added support for GCC 12 150 # https://docs.nvidia.com/cuda/archive/12.0.1/cuda-installation-guide-linux/index.html#system-requirements 151 "12.0" = { 152 clang = { 153 maxMajorVersion = "14"; 154 minMajorVersion = "7"; 155 }; 156 gcc = { 157 maxMajorVersion = "12"; 158 minMajorVersion = "6"; 159 }; 160 }; 161 162 # Added support for Clang 15 163 # https://docs.nvidia.com/cuda/archive/12.1.1/cuda-toolkit-release-notes/index.html#cuda-compilers-new-features 164 "12.1" = { 165 clang = { 166 maxMajorVersion = "15"; 167 minMajorVersion = "7"; 168 }; 169 gcc = { 170 maxMajorVersion = "12"; 171 minMajorVersion = "6"; 172 }; 173 }; 174 175 # Added support for Clang 16 176 # https://docs.nvidia.com/cuda/archive/12.2.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy 177 "12.2" = { 178 clang = { 179 maxMajorVersion = "16"; 180 minMajorVersion = "7"; 181 }; 182 gcc = { 183 maxMajorVersion = "12"; 184 minMajorVersion = "6"; 185 }; 186 }; 187 188 # No changes from 12.2 to 12.3 189 # https://docs.nvidia.com/cuda/archive/12.3.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy 190 "12.3" = { 191 clang = { 192 maxMajorVersion = "16"; 193 minMajorVersion = "7"; 194 }; 195 gcc = { 196 maxMajorVersion = "12"; 197 minMajorVersion = "6"; 198 }; 199 }; 200 201 # Maximum Clang version is 17 202 # Minimum GCC version is still 6, but all versions prior to GCC 7.3 are deprecated. 203 # Maximum GCC version is 13.2 204 # https://docs.nvidia.com/cuda/archive/12.4.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy 205 "12.4" = { 206 clang = { 207 maxMajorVersion = "17"; 208 minMajorVersion = "7"; 209 }; 210 gcc = { 211 maxMajorVersion = "13"; 212 minMajorVersion = "6"; 213 }; 214 }; 215 216 # No changes from 12.4 to 12.5 217 # https://docs.nvidia.com/cuda/archive/12.5.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy 218 "12.5" = { 219 clang = { 220 maxMajorVersion = "17"; 221 minMajorVersion = "7"; 222 }; 223 gcc = { 224 maxMajorVersion = "13"; 225 minMajorVersion = "6"; 226 }; 227 }; 228 229 # Maximum Clang version is 18 230 # https://docs.nvidia.com/cuda/archive/12.6.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy 231 "12.6" = { 232 clang = { 233 maxMajorVersion = "18"; 234 minMajorVersion = "7"; 235 }; 236 gcc = { 237 maxMajorVersion = "13"; 238 minMajorVersion = "6"; 239 }; 240 }; 241 242 # Maximum Clang version is 19, maximum GCC version is 14 243 # https://docs.nvidia.com/cuda/archive/12.8.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy 244 "12.8" = { 245 clang = { 246 maxMajorVersion = "19"; 247 minMajorVersion = "7"; 248 }; 249 gcc = { 250 maxMajorVersion = "14"; 251 minMajorVersion = "6"; 252 }; 253 }; 254 255 # No changes from 12.8 to 12.9 256 # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy 257 "12.9" = { 258 clang = { 259 maxMajorVersion = "19"; 260 minMajorVersion = "7"; 261 }; 262 gcc = { 263 maxMajorVersion = "14"; 264 minMajorVersion = "6"; 265 }; 266 }; 267 }; 268}