aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ceres/0006_fix_cuda_architectures.patch
blob: acc292461f42be0577fc2027c0a8aaee4d8b3d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
commit 4939da2d6bbd8652020dc970ea0405d634e3550f
Author: Markus Hess <hess@3dvisionlabs.com>
Date:   Thu Jun 6 12:44:55 2024 +0000

    Set CMAKE_CUDA_ARCHITECTURES depending on CUDAToolkit_VERSION
    
    Compilation fails if the CUDA architecture is not supported by the
    installed version of the CUDA toolkit. This commit sets the
    CMAKE_CUDA_ARCHITECTURES depending on the the installed CUDA toolkit
    version.
    
    Change-Id: I4765512279ee56897388e6ea22b961aebeb0fbca

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9729ccc2..bfa2d8ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -255,8 +255,29 @@ if (USE_CUDA)
         "find_dependency(CUDAToolkit ${CUDAToolkit_VERSION})")
       enable_language(CUDA)
       if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
-        # Support Maxwell, Pascal, Volta, Turing, and Ampere GPUs.
-        set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80")
+        # Support Maxwell GPUs (Default).
+        set(CMAKE_CUDA_ARCHITECTURES "50")
+        # Support other architectures depending on CUDA toolkit version.
+        if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0")
+          # Support Pascal GPUs.
+          list(APPEND CMAKE_CUDA_ARCHITECTURES "60")
+        endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0")
+        if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0")
+          # Support Volta GPUs.
+          list(APPEND CMAKE_CUDA_ARCHITECTURES "70")
+        endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0")
+        if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0")
+          # Support Turing  GPUs.
+          list(APPEND CMAKE_CUDA_ARCHITECTURES "75")
+        endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0")
+        if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0")
+          # Support Ampere GPUs.
+          list(APPEND CMAKE_CUDA_ARCHITECTURES "80")
+        endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0")
+        if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8")
+          # Support Hopper GPUs.
+          list(APPEND CMAKE_CUDA_ARCHITECTURES "90")
+        endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8")
         message("-- Setting CUDA Architecture to ${CMAKE_CUDA_ARCHITECTURES}")
       endif()