|
| 1 | +cmake_minimum_required(VERSION 3.12) |
| 2 | + |
| 3 | +set(CMAKE_CXX_STANDARD 20) |
| 4 | +set(CMAKE_CUDA_STANDARD 17) |
| 5 | +set(CMAKE_CXX_EXTENSIONS OFF) |
| 6 | +set(CMAKE_CUDA_EXTENSIONS OFF) |
| 7 | +set(CMAKE_CUDA_SEPARABLE_COMPILATION OFF) |
| 8 | +set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -isystem . --expt-relaxed-constexpr --expt-extended-lambda") |
| 9 | + |
| 10 | +if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES) |
| 11 | + # try to set CMAKE_CUDA_ARCHITECTURES to native card version |
| 12 | + if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.24) |
| 13 | + set(CMAKE_CUDA_ARCHITECTURES native) |
| 14 | + else() |
| 15 | + message(STATUS "Running __nvcc_device_query for CMAKE_CUDA_ARCHITECTURES") |
| 16 | + execute_process(COMMAND "__nvcc_device_query" |
| 17 | + RESULT_VARIABLE NVCC_DEVICE_QUERY_RESULT |
| 18 | + OUTPUT_VARIABLE CMAKE_CUDA_ARCHITECTURES |
| 19 | + OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 20 | + if (NVCC_DEVICE_QUERY_RESULT EQUAL 0) |
| 21 | + message(STATUS "CMAKE_CUDA_ARCHITECTURES set to ${CMAKE_CUDA_ARCHITECTURES}") |
| 22 | + else() |
| 23 | + message(WARNING "CMAKE_CUDA_ARCHITECTURES not defined and __nvcc_device_query failed.") |
| 24 | + unset(CMAKE_CUDA_ARCHITECTURES) |
| 25 | + endif() |
| 26 | + endif() |
| 27 | +endif() |
| 28 | + |
| 29 | +project(cuda_reverse LANGUAGES CXX CUDA) |
| 30 | + |
| 31 | +file(GLOB sources "*.cpp" "*.cu") |
| 32 | +add_executable(${PROJECT_NAME} ${sources}) |
| 33 | +target_link_libraries(${PROJECT_NAME} PRIVATE cusparse cublas) |
| 34 | +find_package(fmt REQUIRED) |
| 35 | +target_link_libraries(${PROJECT_NAME} PRIVATE fmt::fmt) |
0 commit comments