Cycles: upgrade CUDA to 11.4 master
authorBrecht Van Lommel <brecht@blender.org>
Mon, 26 Jul 2021 17:45:05 +0000 (19:45 +0200)
committerBrecht Van Lommel <brecht@blender.org>
Mon, 26 Jul 2021 17:46:51 +0000 (19:46 +0200)
This fixes a performance regression on Ampere cards, on specific scenes like
classroom. For cycles-x there is little difference, but this is still helpful
for LTS releases, and we need to upgrade at some point anyway.

build_files/config/pipeline_config.json
intern/cycles/device/cuda/device_cuda_impl.cpp
intern/cycles/kernel/CMakeLists.txt

index c9a5e25eaaf8b3e5977882c848a51c0fe313a219..d914cf85eaef07e406c9e898f75438a3f0624f73 100644 (file)
@@ -41,7 +41,7 @@
             },
             "cuda11":
             {
-                "version": "11.3"
+                "version": "11.4"
             }
         },
         "cmake":
index 5b62292ca55251eb619e219fcd89264a8e0dfd71..cebe8ce631e5304ac416a6bccf89e537fcc7700a 100644 (file)
@@ -461,18 +461,19 @@ string CUDADevice::compile_kernel(const DeviceRequestedFeatures &requested_featu
 
   const int nvcc_cuda_version = cuewCompilerVersion();
   VLOG(1) << "Found nvcc " << nvcc << ", CUDA version " << nvcc_cuda_version << ".";
-  if (nvcc_cuda_version < 80) {
+  if (nvcc_cuda_version < 101) {
     printf(
         "Unsupported CUDA version %d.%d detected, "
-        "you need CUDA 8.0 or newer.\n",
+        "you need CUDA 10.1 or newer.\n",
         nvcc_cuda_version / 10,
         nvcc_cuda_version % 10);
     return string();
   }
-  else if (!(nvcc_cuda_version == 101 || nvcc_cuda_version == 102)) {
+  else if (!(nvcc_cuda_version == 101 || nvcc_cuda_version == 102 || nvcc_cuda_version == 111 ||
+             nvcc_cuda_version == 112 || nvcc_cuda_version == 113 || nvcc_cuda_version == 114)) {
     printf(
         "CUDA version %d.%d detected, build may succeed but only "
-        "CUDA 10.1 and 10.2 are officially supported.\n",
+        "CUDA 10.1 to 11.4 are officially supported.\n",
         nvcc_cuda_version / 10,
         nvcc_cuda_version % 10);
   }
index ea0f16c923399f770bb6f806aa368fd63d367fd9..db789d885f75c4cf9d4d5990123e4ce459161f71 100644 (file)
@@ -380,11 +380,16 @@ if(WITH_CYCLES_CUDA_BINARIES)
   set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}")
 
   # warn for other versions
-  if((CUDA_VERSION MATCHES "101") OR (CUDA_VERSION MATCHES "102") OR (CUDA_VERSION MATCHES "111"))
+  if((CUDA_VERSION MATCHES "101") OR
+     (CUDA_VERSION MATCHES "102") OR
+     (CUDA_VERSION MATCHES "111") OR
+     (CUDA_VERSION MATCHES "112") OR
+     (CUDA_VERSION MATCHES "113") OR
+     (CUDA_VERSION MATCHES "114"))
   else()
     message(WARNING
       "CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, "
-      "build may succeed but only CUDA 10.1, 10.2 and 11.1 are officially supported")
+      "build may succeed but only CUDA 10.1 to 11.4 are officially supported")
   endif()
 
   # build for each arch