diff --git a/CMakeLists.txt b/CMakeLists.txt index 05d67ad..c686662 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,8 +68,10 @@ if(ENABLE_CUDA_BACKEND) # https://en.wikipedia.org/w/index.php?title=CUDA§ion=5#GPUs_supported # https://raw.githubusercontent.com/PointCloudLibrary/pcl/master/cmake/pcl_find_cuda.cmake - if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_GREATER_EQUAL "11.0") + if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_GREATER_EQUAL "11.1") set(CMAKE_CUDA_ARCHITECTURES 35 37 50 52 53 60 61 62 70 72 75 80 86) + elseif(${CMAKE_CUDA_COMPILER_VERSION} EQUAL "11.0") + set(CMAKE_CUDA_ARCHITECTURES 30 32 35 37 50 52 53 60 61 62 70 72 75 80) elseif(${CMAKE_CUDA_COMPILER_VERSION} VERSION_GREATER_EQUAL "10.0") set(CMAKE_CUDA_ARCHITECTURES 30 32 35 37 50 52 53 60 61 62 70 72 75) elseif(${CMAKE_CUDA_COMPILER_VERSION} VERSION_GREATER_EQUAL "9.0") @@ -78,13 +80,21 @@ if(ENABLE_CUDA_BACKEND) set(CMAKE_CUDA_ARCHITECTURES 20 21 30 32 35 37 50 52 53 60 61 62) endif() + # https://docs.nvidia.com/cuda/cuda-samples/index.html#new-features-in-cuda-toolkit-11-6 + # Not sure about this. Why the heck did they change this? + if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_GREATER_EQUAL "11.6") + set(CUDA_SAMPLES_PATH ${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/samples/Common) + else() + set(CUDA_SAMPLES_PATH ${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/samples/common/inc) + endif() + add_library(cuda_backend STATIC ${CUDA_DIR}/cuda.cpp ${CUDA_DIR}/uarch.cpp ${CUDA_DIR}/pci.cpp) if(NOT ${PCIUTILS_FOUND}) add_dependencies(cuda_backend pciutils) endif() - target_include_directories(cuda_backend PUBLIC ${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/samples/common/inc ${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/x86_64-linux/include) + target_include_directories(cuda_backend PUBLIC ${CUDA_SAMPLES_PATH} ${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/x86_64-linux/include) target_link_libraries(cuda_backend PRIVATE cudart) target_link_libraries(gpufetch cuda_backend)