diff options
author | Thomas Dinges <blender@dingto.org> | 2013-10-08 19:29:28 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-10-08 19:29:28 +0400 |
commit | b5a5773fa98b5ddf18dc68bc77df15cc79211ef5 (patch) | |
tree | 8fef2a5fb5e6e89ce7d6d966b0e6acd74b3d9f06 /intern/cycles/device | |
parent | dfe16105041292a1fc7ee29d825c25135a4f6a3c (diff) |
Cycles / CUDA:
* Remove support for CUDA Toolkit 4.x, only Toolkit 5.0 and above are supported now.
* Remove support for sm_1x cards (< Fermi) for good. We didn't officially support those cards for a few releases already, now remove some special code that was still there.
Diffstat (limited to 'intern/cycles/device')
-rw-r--r-- | intern/cycles/device/device_cuda.cpp | 54 |
1 files changed, 17 insertions, 37 deletions
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 5440bd91987..4ce7f6fd729 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -227,14 +227,12 @@ public: bool support_device(bool experimental) { - if(!experimental) { - int major, minor; - cuDeviceComputeCapability(&major, &minor, cuDevId); + int major, minor; + cuDeviceComputeCapability(&major, &minor, cuDevId); - if(major < 2) { - cuda_error_message(string_printf("CUDA device supported only with compute capability 2.0 or up, found %d.%d.", major, minor)); - return false; - } + if(major < 2) { + cuda_error_message(string_printf("CUDA device supported only with compute capability 2.0 or up, found %d.%d.", major, minor)); + return false; } return true; @@ -286,8 +284,12 @@ public: cuda_error_message("CUDA nvcc compiler version could not be parsed."); return ""; } + if(cuda_version < 50) { + printf("Unsupported CUDA version %d.%d detected, you need CUDA 5.0.\n", cuda_version/10, cuda_version%10); + return ""; + } - if(cuda_version != 50) + else if(cuda_version > 50) printf("CUDA version %d.%d detected, build may succeed but only CUDA 5.0 is officially supported.\n", cuda_version/10, cuda_version%10); /* compile */ @@ -296,36 +298,14 @@ public: const int machine = system_cpu_bits(); string arch_flags; - /* build flags depending on CUDA version and arch */ - if(cuda_version < 50) { - /* CUDA 4.x */ - if(major == 1) { - /* sm_1x */ - arch_flags = "--maxrregcount=24 --opencc-options -OPT:Olimit=0"; - } - else if(major == 2) { - /* sm_2x */ - arch_flags = "--maxrregcount=24"; - } - else { - /* sm_3x */ - arch_flags = "--maxrregcount=32"; - } + /* CUDA 5.x build flags for different archs */ + if(major == 2) { + /* sm_2x */ + arch_flags = "--maxrregcount=32 --use_fast_math"; } - else { - /* CUDA 5.x */ - if(major == 1) { - /* sm_1x */ - arch_flags = "--maxrregcount=24 --opencc-options -OPT:Olimit=0 --use_fast_math"; - } - else if(major == 2) { - /* sm_2x */ - arch_flags = "--maxrregcount=32 --use_fast_math"; - } - else { - /* sm_3x */ - arch_flags = "--maxrregcount=32 --use_fast_math"; - } + else if(major == 3) { + /* sm_3x */ + arch_flags = "--maxrregcount=32 --use_fast_math"; } double starttime = time_dt(); |