[Bf-blender-cvs] [65d95879f73] blender2.7: Cycles: upgrade to CUDA 10.1 as the one officially supported version.

Brecht Van Lommel noreply at git.blender.org
Fri Mar 15 16:54:42 CET 2019


Commit: 65d95879f73951861a90efe1c3ac5d1d03530fd6
Author: Brecht Van Lommel
Date:   Fri Mar 15 14:18:22 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB65d95879f73951861a90efe1c3ac5d1d03530fd6

Cycles: upgrade to CUDA 10.1 as the one officially supported version.

This version fixes various bugs, and there is no need anymore to use both
9.1 and 10.0 for different cards.

There is a bug related to WITH_CYCLES_CUBIN_COMPILER and bump mapping in the
regression tests, so that remains disabled same as it was for CUDA 10.0.

Fix T59286: CUDA bake failing on some cards.
Fix T56858: CUDA 9.2 and 10 issues.

===================================================================

M	build_files/buildbot/slave_compile.py
M	build_files/cmake/config/blender_release.cmake
M	intern/cycles/CMakeLists.txt
M	intern/cycles/device/device_cuda.cpp
M	intern/cycles/kernel/CMakeLists.txt

===================================================================

diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py
index c282e3624c2..2a71b69ed53 100644
--- a/build_files/buildbot/slave_compile.py
+++ b/build_files/buildbot/slave_compile.py
@@ -118,23 +118,6 @@ if 'cmake' in builder:
             cmake_extra_options.extend(["-DCMAKE_C_COMPILER=/usr/bin/gcc-7",
                                         "-DCMAKE_CXX_COMPILER=/usr/bin/g++-7"])
 
-    # Workaround to build only sm_7x kernels with CUDA 10, until
-    # older kernels work well with this version.
-    if builder.startswith('win'):
-        cmake_extra_options.append('-DCUDA_VERSION=9.1')
-        cmake_extra_options.append('-DCUDA_TOOLKIT_INCLUDE:PATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.1/include')
-        cmake_extra_options.append('-DCUDA_TOOLKIT_ROOT_DIR:PATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.1')
-        cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.1/bin/nvcc.exe')
-        cmake_extra_options.append('-DCUDA10_NVCC_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/bin/nvcc.exe')
-        cmake_extra_options.append('-DCUDA10_TOOLKIT_ROOT_DIR:PATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0')
-    elif builder.startswith('linux'):
-        cmake_extra_options.append('-DCUDA_VERSION=9.1')
-        cmake_extra_options.append('-DCUDA_TOOLKIT_INCLDUE:PATH=/usr/local/cuda-9.1/include')
-        cmake_extra_options.append('-DCUDA_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda-9.1')
-        cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE:FILEPATH=/usr/local/cuda-9.1/bin/nvcc')
-        cmake_extra_options.append('-DCUDA10_NVCC_EXECUTABLE:FILEPATH=/usr/local/cuda-10.0/bin/nvcc')
-        cmake_extra_options.append('-DCUDA10_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda-10.0')
-
     cmake_options.append("-C" + os.path.join(blender_dir, cmake_config_file))
 
     # Prepare CMake options needed to configure cuda binaries compilation, 64bit only.
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index 4257d3df9b0..adffea0b99d 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -51,9 +51,10 @@ set(WITH_SDL                 ON  CACHE BOOL "" FORCE)
 set(WITH_X11_XINPUT          ON  CACHE BOOL "" FORCE)
 set(WITH_X11_XF86VMODE       ON  CACHE BOOL "" FORCE)
 
-set(WITH_PLAYER              ON  CACHE BOOL "" FORCE)
-set(WITH_MEM_JEMALLOC        ON  CACHE BOOL "" FORCE)
-set(WITH_CYCLES_CUDA_BINARIES ON  CACHE BOOL "" FORCE)
+set(WITH_PLAYER                ON  CACHE BOOL "" FORCE)
+set(WITH_MEM_JEMALLOC          ON  CACHE BOOL "" FORCE)
+set(WITH_CYCLES_CUDA_BINARIES  ON  CACHE BOOL "" FORCE)
+set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE)
 set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75 CACHE STRING "" FORCE)
 
 # platform dependent options
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 6fe4546ae8c..d4a613a78c7 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -301,6 +301,8 @@ if(WITH_CYCLES_CUDA_BINARIES AND (NOT WITH_CYCLES_CUBIN_COMPILER))
 			set(MAX_MSVC 1911)
 		elseif(${CUDA_VERSION} EQUAL "10.0")
 			set(MAX_MSVC 1999)
+		elseif(${CUDA_VERSION} EQUAL "10.1")
+			set(MAX_MSVC 1999)
 		endif()
 		if(NOT MSVC_VERSION LESS ${MAX_MSVC} OR CMAKE_C_COMPILER_ID MATCHES "Clang")
 			message(STATUS "nvcc not supported for this compiler version, using cycles_cubin_cc instead.")
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index e21d974ebbe..a7539d2ac31 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -400,9 +400,9 @@ public:
 			       major, minor);
 			return false;
 		}
-		else if(cuda_version != 80) {
+		else if(cuda_version != 101) {
 			printf("CUDA version %d.%d detected, build may succeed but only "
-			       "CUDA 8.0 is officially supported.\n",
+			       "CUDA 10.1 is officially supported.\n",
 			       major, minor);
 		}
 		return true;
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index a35eb102c9c..822ce68bdc8 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -346,11 +346,11 @@ if(WITH_CYCLES_CUDA_BINARIES)
 	set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}")
 
 	# warn for other versions
-	if(CUDA_VERSION MATCHES "90" OR CUDA_VERSION MATCHES "91" OR CUDA_VERSION MATCHES "100")
+	if(CUDA_VERSION MATCHES "101")
 	else()
 		message(WARNING
 			"CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, "
-			"build may succeed but only CUDA 9.0, 9.1 and 10.0 are officially supported")
+			"build may succeed but only CUDA 10.1 is officially supported")
 	endif()
 
 	# build for each arch
@@ -400,29 +400,17 @@ if(WITH_CYCLES_CUDA_BINARIES)
 			set(cuda_flags ${cuda_flags} -D __KERNEL_DEBUG__)
 		endif()
 
-		# Workaround to build only sm_7x kernels with CUDA 10, until
-		# older kernels work well with this version.
-		if(DEFINED CUDA10_NVCC_EXECUTABLE  AND (${arch} MATCHES "sm_7."))
-			set(with_cubin_compiler OFF)
-			set(cuda_nvcc_executable "${CUDA10_NVCC_EXECUTABLE}")
-			set(cuda_toolkit_root_dir "${CUDA10_TOOLKIT_ROOT_DIR}")
-		else()
-			set(with_cubin_compiler ${WITH_CYCLES_CUBIN_COMPILER})
-			set(cuda_nvcc_executable "${CUDA_NVCC_EXECUTABLE}")
-			set(cuda_toolkit_root_dir "${CUDA_TOOLKIT_ROOT_DIR}")
-		endif()
-
-		if(with_cubin_compiler)
+		if(WITH_CYCLES_CUBIN_COMPILER)
 			string(SUBSTRING ${arch} 3 -1 CUDA_ARCH)
 
 			# Needed to find libnvrtc-builtins.so. Can't do it from inside
 			# cycles_cubin_cc since the env variable is read before main()
 			if(APPLE)
 				set(CUBIN_CC_ENV ${CMAKE_COMMAND}
-					-E env DYLD_LIBRARY_PATH="${cuda_toolkit_root_dir}/lib")
+					-E env DYLD_LIBRARY_PATH="${CUDA_TOOLKIT_ROOT_DIR}/lib")
 			elseif(UNIX)
 				set(CUBIN_CC_ENV ${CMAKE_COMMAND}
-					-E env LD_LIBRARY_PATH="${cuda_toolkit_root_dir}/lib64")
+					-E env LD_LIBRARY_PATH="${CUDA_TOOLKIT_ROOT_DIR}/lib64")
 			endif()
 
 			add_custom_command(
@@ -433,12 +421,12 @@ if(WITH_CYCLES_CUDA_BINARIES)
 						-i ${CMAKE_CURRENT_SOURCE_DIR}${cuda_kernel_src}
 						${cuda_flags}
 						-v
-						-cuda-toolkit-dir "${cuda_toolkit_root_dir}"
+						-cuda-toolkit-dir "${CUDA_TOOLKIT_ROOT_DIR}"
 				DEPENDS ${kernel_sources} cycles_cubin_cc)
 		else()
 			add_custom_command(
 				OUTPUT ${cuda_cubin}
-				COMMAND ${cuda_nvcc_executable}
+				COMMAND ${CUDA_NVCC_EXECUTABLE}
 						-arch=${arch}
 						${CUDA_NVCC_FLAGS}
 						--cubin
@@ -457,7 +445,7 @@ if(WITH_CYCLES_CUDA_BINARIES)
 	foreach(arch ${CYCLES_CUDA_BINARIES_ARCH})
 		if(${arch} MATCHES "sm_2.")
 			message(STATUS "CUDA binaries for ${arch} are no longer supported, skipped.")
-		elseif(${arch} MATCHES "sm_7." AND (${CUDA_VERSION} LESS 100) AND (NOT DEFINED CUDA10_NVCC_EXECUTABLE))
+		elseif(${arch} MATCHES "sm_7." AND ${CUDA_VERSION} LESS 100)
 			message(STATUS "CUDA binaries for ${arch} require CUDA 10.0+, skipped.")
 		else()
 			# Compile regular kernel



More information about the Bf-blender-cvs mailing list