[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57607] trunk/blender: Cycles: update build configurations to include CUDA sm_35 architecture.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Jun 20 15:10:48 CEST 2013


Revision: 57607
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57607
Author:   blendix
Date:     2013-06-20 13:10:47 +0000 (Thu, 20 Jun 2013)
Log Message:
-----------
Cycles: update build configurations to include CUDA sm_35 architecture. When using
a compiler older than CUDA 5.0 it will give a warning and skip this architecture.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-i686.py
    trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-x86_64.py
    trunk/blender/build_files/buildbot/config/user-config-mac-i386.py
    trunk/blender/build_files/buildbot/config/user-config-mac-x86_64.py
    trunk/blender/build_files/scons/config/darwin-config.py
    trunk/blender/build_files/scons/config/linux-config.py
    trunk/blender/build_files/scons/config/win32-mingw-config.py
    trunk/blender/build_files/scons/config/win32-vc-config.py
    trunk/blender/build_files/scons/config/win64-mingw-config.py
    trunk/blender/build_files/scons/config/win64-vc-config.py
    trunk/blender/intern/cycles/device/device_cuda.cpp
    trunk/blender/intern/cycles/kernel/CMakeLists.txt
    trunk/blender/intern/cycles/kernel/SConscript
    trunk/blender/intern/cycles/util/util_types.h

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/CMakeLists.txt	2013-06-20 13:10:47 UTC (rev 57607)
@@ -264,7 +264,7 @@
 option(WITH_CYCLES_TEST				"Build cycles test application" OFF)
 option(WITH_CYCLES_OSL				"Build Cycles with OSL support" OFF)
 option(WITH_CYCLES_CUDA_BINARIES	"Build cycles CUDA binaries" OFF)
-set(CYCLES_CUDA_BINARIES_ARCH sm_20 sm_21 sm_30 CACHE STRING "CUDA architectures to build binaries for")
+set(CYCLES_CUDA_BINARIES_ARCH sm_20 sm_21 sm_30 sm_35 CACHE STRING "CUDA architectures to build binaries for")
 mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
 unset(PLATFORM_DEFAULT)
 

Modified: trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-i686.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-i686.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-i686.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -2,4 +2,4 @@
 BF_INSTALLDIR = '../blender-install/linux-glibc211-i686'
 BF_NUMJOBS = 1
 
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']

Modified: trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-x86_64.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-x86_64.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/buildbot/config/user-config-cuda-glibc211-x86_64.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -2,4 +2,4 @@
 BF_INSTALLDIR = '../blender-install/linux-glibc211-x86_64'
 BF_NUMJOBS = 1
 
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']

Modified: trunk/blender/build_files/buildbot/config/user-config-mac-i386.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-mac-i386.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/buildbot/config/user-config-mac-i386.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -315,7 +315,7 @@
 
 WITH_BF_CYCLES_CUDA_BINARIES = True
 BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 #Freestyle
 WITH_BF_FREESTYLE = True

Modified: trunk/blender/build_files/buildbot/config/user-config-mac-x86_64.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-mac-x86_64.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/buildbot/config/user-config-mac-x86_64.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -315,7 +315,7 @@
 
 WITH_BF_CYCLES_CUDA_BINARIES = True
 BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 #Freestyle
 WITH_BF_FREESTYLE = True

Modified: trunk/blender/build_files/scons/config/darwin-config.py
===================================================================
--- trunk/blender/build_files/scons/config/darwin-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/darwin-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -315,7 +315,7 @@
 
 WITH_BF_CYCLES_CUDA_BINARIES = False
 BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 #Freestyle
 WITH_BF_FREESTYLE = True

Modified: trunk/blender/build_files/scons/config/linux-config.py
===================================================================
--- trunk/blender/build_files/scons/config/linux-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/linux-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -210,7 +210,7 @@
 
 WITH_BF_CYCLES_CUDA_BINARIES = False
 BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 WITH_BF_OPENMP = True
 

Modified: trunk/blender/build_files/scons/config/win32-mingw-config.py
===================================================================
--- trunk/blender/build_files/scons/config/win32-mingw-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/win32-mingw-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -149,7 +149,7 @@
 WITH_BF_CYCLES = True
 WITH_BF_CYCLES_CUDA_BINARIES = False
 BF_CYCLES_CUDA_NVCC = "" # Path to the NVIDIA CUDA compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 WITH_BF_OIIO = True
 BF_OIIO = LIBDIR + '/openimageio'

Modified: trunk/blender/build_files/scons/config/win32-vc-config.py
===================================================================
--- trunk/blender/build_files/scons/config/win32-vc-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/win32-vc-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -215,7 +215,7 @@
 #CUDA
 WITH_BF_CYCLES_CUDA_BINARIES = False
 #BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 #Ray trace optimization
 WITH_BF_RAYOPTIMIZATION = True

Modified: trunk/blender/build_files/scons/config/win64-mingw-config.py
===================================================================
--- trunk/blender/build_files/scons/config/win64-mingw-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/win64-mingw-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -146,7 +146,7 @@
 WITH_BF_CYCLES = True
 WITH_BF_CYCLES_CUDA_BINARIES = False
 BF_CYCLES_CUDA_NVCC = "" # Path to the NVIDIA CUDA compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 WITH_BF_OIIO = True
 BF_OIIO = LIBDIR + '/openimageio'

Modified: trunk/blender/build_files/scons/config/win64-vc-config.py
===================================================================
--- trunk/blender/build_files/scons/config/win64-vc-config.py	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/build_files/scons/config/win64-vc-config.py	2013-06-20 13:10:47 UTC (rev 57607)
@@ -212,7 +212,7 @@
 #CUDA
 WITH_BF_CYCLES_CUDA_BINARIES = False
 #BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35']
 
 #Ray trace optimization
 WITH_BF_RAYOPTIMIZATION = True

Modified: trunk/blender/intern/cycles/device/device_cuda.cpp
===================================================================
--- trunk/blender/intern/cycles/device/device_cuda.cpp	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/intern/cycles/device/device_cuda.cpp	2013-06-20 13:10:47 UTC (rev 57607)
@@ -304,7 +304,7 @@
 			}
 		}
 		else {
-			/* CUDA 4.x */
+			/* CUDA 5.x */
 			if(major == 1) {
 				/* sm_1x */
 				arch_flags = "--maxrregcount=24 --opencc-options -OPT:Olimit=0 --use_fast_math";

Modified: trunk/blender/intern/cycles/kernel/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/kernel/CMakeLists.txt	2013-06-20 11:47:09 UTC (rev 57606)
+++ trunk/blender/intern/cycles/kernel/CMakeLists.txt	2013-06-20 13:10:47 UTC (rev 57607)
@@ -130,6 +130,12 @@
 	string(REGEX REPLACE ".*release ([0-9]+)\\.([0-9]+).*" "\\2" CUDA_VERSION_MINOR ${NVCC_OUT})
 	set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}")
 
+	# warn for other versions
+	if(CUDA_VERSION MATCHES "50")
+	else()
+		message(WARNING "CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, build may succeed but only CUDA 5.0 is officially supported")
+	endif()
+
 	# build for each arch
 	set(cuda_sources kernel.cu ${SRC_HEADERS} ${SRC_SVM_HEADERS} ${SRC_CLOSURE_HEADERS} ${SRC_UTIL_HEADERS})
 	set(cuda_cubins)
@@ -139,12 +145,6 @@
 
 		set(cuda_version_flags "-D__KERNEL_CUDA_VERSION__=${CUDA_VERSION}")
 
-		# warn for other versions
-		if(CUDA_VERSION MATCHES "50")
-		else()
-			message(STATUS "CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, build may succeed but only CUDA 5.0 is officially supported")
-		endif()
-
 		# build flags depending on CUDA version and arch
 		if(CUDA_VERSION LESS 50)
 			# CUDA 4.x
@@ -176,13 +176,17 @@
 			set(cuda_math_flags "--use_fast_math")
 		endif()
 		
-		add_custom_command(
-			OUTPUT ${cuda_cubin}
-			COMMAND ${CUDA_NVCC_EXECUTABLE} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" ${cuda_arch_flags} ${cuda_version_flags} ${cuda_math_flags} -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC
-			DEPENDS ${cuda_sources})
+		if(CUDA_VERSION LESS 50 AND ${arch} MATCHES "sm_35")
+			message(WARNING "Can't build kernel for CUDA sm_35 architecture, skipping")
+		else()
+			add_custom_command(
+				OUTPUT ${cuda_cubin}
+				COMMAND ${CUDA_NVCC_EXECUTABLE} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" ${cuda_arch_flags} ${cuda_version_flags} ${cuda_math_flags} -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC
+				DEPENDS ${cuda_sources})
 
-		delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib)
-		list(APPEND cuda_cubins ${cuda_cubin})
+			delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib)
+			list(APPEND cuda_cubins ${cuda_cubin})
+		endif()
 	endforeach()
 
 	add_custom_target(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins})

Modified: trunk/blender/intern/cycles/kernel/SConscript

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list