Buildbot: Use annoying hybrid setup of two CUDA toolkits
authorSergey Sharybin <sergey.vfx@gmail.com>
Tue, 2 Aug 2016 13:32:03 +0000 (15:32 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 2 Aug 2016 13:32:03 +0000 (15:32 +0200)
This is for until we'll solve issues with toolkit 8.0.

build_files/buildbot/slave_compile.py
intern/cycles/kernel/CMakeLists.txt

index 127d58c7f3eaae351802b107150658b4eb040181..d763ddfb3e03c270915d4f05a86b7c562e9f5c26 100644 (file)
@@ -73,6 +73,7 @@ if 'cmake' in builder:
         if builder.endswith('x86_64_10_6_cmake'):
             cmake_extra_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64')
         cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE=/usr/local/cuda-hack/bin/nvcc')
+        cmake_extra_options.append('-DCUDA_NVCC8_EXECUTABLE=/usr/local/cuda8-hack/bin/nvcc')
 
     elif builder.startswith('win'):
         if builder.endswith('_vc2015'):
@@ -89,6 +90,8 @@ if 'cmake' in builder:
             elif builder.startswith('win32'):
                 bits = 32
                 cmake_options.extend(['-G', 'Visual Studio 12 2013'])
+        cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/bin/nvcc.exe')
+        cmake_extra_options.append('-DCUDA_NVCC8_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/bin/nvcc.exe')
 
     elif builder.startswith('linux'):
         tokens = builder.split("_")
@@ -108,6 +111,9 @@ if 'cmake' in builder:
             cuda_chroot_name = 'buildbot_' + deb_name + '_x86_64'
             targets = ['player', 'blender', 'cuda']
 
+        cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE=/usr/local/cuda-7.5/bin/nvcc')
+        cmake_extra_options.append('-DCUDA_NVCC8_EXECUTABLE=/usr/local/cuda-8.0/bin/nvcc')
+
     cmake_options.append("-C" + os.path.join(blender_dir, cmake_config_file))
 
     # Prepare CMake options needed to configure cuda binaries compilation.
index c0b58558563b6ff167c8ba629c47a65bda33f6ea..42298a0811dbdacc759e6830eb9cdd487ee5e38e 100644 (file)
@@ -244,12 +244,20 @@ if(WITH_CYCLES_CUDA_BINARIES)
                        set(cuda_debug_flags "")
                endif()
 
-               set(cuda_version_flags "-D__KERNEL_CUDA_VERSION__=${CUDA_VERSION}")
+               set(cuda_nvcc_command ${CUDA_NVCC_EXECUTABLE})
+               set(cuda_nvcc_version ${CUDA_VERSION})
+
+               if(DEFINED CUDA_NVCC8_EXECUTABLE  AND ((${arch} STREQUAL "sm_60") OR (${arch} STREQUAL "sm_61")))
+                       set(cuda_nvcc_command ${CUDA_NVCC8_EXECUTABLE})
+                       set(cuda_nvcc_version "80")
+               endif()
+
+               set(cuda_version_flags "-D__KERNEL_CUDA_VERSION__=${cuda_nvcc_version}")
                set(cuda_math_flags "--use_fast_math")
 
                add_custom_command(
                        OUTPUT ${cuda_cubin}
-                       COMMAND ${CUDA_NVCC_EXECUTABLE}
+                       COMMAND ${cuda_nvcc_command}
                                        -arch=${arch}
                                        ${CUDA_NVCC_FLAGS}
                                        -m${CUDA_BITS}
@@ -266,7 +274,6 @@ if(WITH_CYCLES_CUDA_BINARIES)
                                        -DCCL_NAMESPACE_BEGIN=
                                        -DCCL_NAMESPACE_END=
                                        -DNVCC
-
                        DEPENDS ${cuda_sources})
 
                delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib)
@@ -274,6 +281,9 @@ if(WITH_CYCLES_CUDA_BINARIES)
 
                unset(cuda_extra_flags)
                unset(cuda_debug_flags)
+
+               unset(cuda_nvcc_command)
+               unset(cuda_nvcc_version)
        endmacro()
 
        foreach(arch ${CYCLES_CUDA_BINARIES_ARCH})