-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
40 lines (33 loc) · 967 Bytes
/
Copy pathCMakeLists.txt
File metadata and controls
40 lines (33 loc) · 967 Bytes
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
cmake_minimum_required(VERSION 3.20)
project(sparse_binary_fft LANGUAGES CXX CUDA)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
# RTX 3050 (laptop) and A4000 are both Ampere sm_86
set(CMAKE_CUDA_ARCHITECTURES 86)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --use_fast_math -lineinfo")
set(CMAKE_CUDA_FLAGS_RELEASE "-O3 --use_fast_math -lineinfo")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
find_package(CUDAToolkit REQUIRED)
set(SRC
src/main.cu
src/common/mtx_loader.cu
src/common/verify.cu
src/v0_cufft_dense.cu
src/v1_naive_sparse.cu
src/v2_streaming.cu
src/v3_hybrid.cu
src/v4_bitpacked.cu
src/v5_pipelined.cu
src/v6_symmetry.cu
)
add_executable(sbfft ${SRC})
target_include_directories(sbfft PRIVATE src)
target_link_libraries(sbfft PRIVATE
CUDA::cudart
CUDA::cufft
)