Cycles: upgrade CUDA to 11.4

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.
This commit is contained in:
Brecht Van Lommel
2021-07-26 19:45:05 +02:00
parent 6eb94d8df2
commit cf74cd9367
3 changed files with 13 additions and 7 deletions

View File

@@ -41,7 +41,7 @@
}, },
"cuda11": "cuda11":
{ {
"version": "11.3" "version": "11.4"
} }
}, },
"cmake": "cmake":

View File

@@ -461,18 +461,19 @@ string CUDADevice::compile_kernel(const DeviceRequestedFeatures &requested_featu
const int nvcc_cuda_version = cuewCompilerVersion(); const int nvcc_cuda_version = cuewCompilerVersion();
VLOG(1) << "Found nvcc " << nvcc << ", CUDA version " << nvcc_cuda_version << "."; VLOG(1) << "Found nvcc " << nvcc << ", CUDA version " << nvcc_cuda_version << ".";
if (nvcc_cuda_version < 80) { if (nvcc_cuda_version < 101) {
printf( printf(
"Unsupported CUDA version %d.%d detected, " "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,
nvcc_cuda_version % 10); nvcc_cuda_version % 10);
return string(); 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( printf(
"CUDA version %d.%d detected, build may succeed but only " "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,
nvcc_cuda_version % 10); nvcc_cuda_version % 10);
} }

View File

@@ -380,11 +380,16 @@ if(WITH_CYCLES_CUDA_BINARIES)
set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}") set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}")
# warn for other versions # 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() else()
message(WARNING message(WARNING
"CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, " "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() endif()
# build for each arch # build for each arch