yum-mirror/VkFFT
git clone https://git.yummers.dev/yum-mirror/VkFFT
4d140b8
master
1cmake_minimum_required ( VERSION 3.11 ) 2project ( VkFFT_TestSuite ) 3 4if ( NOT CMAKE_BUILD_TYPE) 5set ( CMAKE_CONFIGURATION_TYPES "Release" CACHE STRING "" FORCE ) 6set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE ) 7endif () 8 9if ( NOT DEFINED GLSLANG_GIT_TAG) 10set ( GLSLANG_GIT_TAG "16.6.0" ) 11endif () 12 13include ( FetchContent ) 14set ( VKFFT_BACKEND 0 CACHE STRING "0 - Vulkan, 1 - CUDA, 2 - HIP, 3 - OpenCL, 4 - Level Zero, 5 - Metal" ) 15 16if (${ VKFFT_BACKEND } EQUAL 1 ) 17option ( build_VkFFT_cuFFT_benchmark "Build VkFFT cuFFT benchmark" ON ) 18else () 19option ( build_VkFFT_cuFFT_benchmark "Build VkFFT cuFFT benchmark" OFF ) 20endif () 21 22if (${ VKFFT_BACKEND } EQUAL 2) 23option ( build_VkFFT_rocFFT_benchmark "Build VkFFT rocFFT benchmark" ON ) 24else () 25option ( build_VkFFT_rocFFT_benchmark "Build VkFFT rocFFT benchmark" OFF ) 26endif () 27 28option ( build_VkFFT_FFTW_precision "Build VkFFT FFTW precision comparison" OFF ) 29option ( VkFFT_use_FP128_Bluestein_RaderFFT "Use LD for Bluestein and Rader FFT kernel calculations. Currently requires LD FFT library, like FFTWl, will be reworked" OFF ) 30option ( VkFFT_use_FP128_double_double "Build VkFFT quad double-double" OFF ) 31 32if ( MSVC) 33set_property ( DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT ${ PROJECT_NAME }) 34add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) 35endif () 36if ( build_VkFFT_FFTW_precision) 37add_executable ( $ { PROJECT_NAME } VkFFT_TestSuite.cpp 38benchmark_scripts/vkFFT_scripts/src/utils_VkFFT.cpp 39benchmark_scripts/vkFFT_scripts/src/user_benchmark_VkFFT.cpp 40benchmark_scripts/vkFFT_scripts/src/sample_0_benchmark_VkFFT_single.cpp 41benchmark_scripts/vkFFT_scripts/src/sample_1_benchmark_VkFFT_double.cpp 42benchmark_scripts/vkFFT_scripts/src/sample_2_benchmark_VkFFT_half.cpp 43benchmark_scripts/vkFFT_scripts/src/sample_3_benchmark_VkFFT_single_3d.cpp 44benchmark_scripts/vkFFT_scripts/src/sample_4_benchmark_VkFFT_single_3d_zeropadding.cpp 45benchmark_scripts/vkFFT_scripts/src/sample_5_benchmark_VkFFT_single_disableReorderFourStep.cpp 46benchmark_scripts/vkFFT_scripts/src/sample_6_benchmark_VkFFT_single_r2c.cpp 47benchmark_scripts/vkFFT_scripts/src/sample_7_benchmark_VkFFT_single_Bluestein.cpp 48benchmark_scripts/vkFFT_scripts/src/sample_8_benchmark_VkFFT_double_Bluestein.cpp 49benchmark_scripts/vkFFT_scripts/src/sample_9_benchmark_VkFFT_quadDoubleDouble.cpp 50benchmark_scripts/vkFFT_scripts/src/sample_10_benchmark_VkFFT_single_multipleBuffers.cpp 51benchmark_scripts/vkFFT_scripts/src/sample_11_precision_VkFFT_single.cpp 52benchmark_scripts/vkFFT_scripts/src/sample_12_precision_VkFFT_double.cpp 53benchmark_scripts/vkFFT_scripts/src/sample_13_precision_VkFFT_half.cpp 54benchmark_scripts/vkFFT_scripts/src/sample_14_precision_VkFFT_single_nonPow2.cpp 55benchmark_scripts/vkFFT_scripts/src/sample_15_precision_VkFFT_single_r2c.cpp 56benchmark_scripts/vkFFT_scripts/src/sample_16_precision_VkFFT_single_dct.cpp 57benchmark_scripts/vkFFT_scripts/src/sample_17_precision_VkFFT_double_dct.cpp 58benchmark_scripts/vkFFT_scripts/src/sample_18_precision_VkFFT_double_nonPow2.cpp 59benchmark_scripts/vkFFT_scripts/src/sample_19_precision_VkFFT_quadDoubleDouble_nonPow2.cpp 60benchmark_scripts/vkFFT_scripts/src/sample_50_convolution_VkFFT_single_1d_matrix.cpp 61benchmark_scripts/vkFFT_scripts/src/sample_51_convolution_VkFFT_single_3d_matrix_zeropadding_r2c.cpp 62benchmark_scripts/vkFFT_scripts/src/sample_52_convolution_VkFFT_single_2d_batched_r2c.cpp 63benchmark_scripts/vkFFT_scripts/src/sample_100_benchmark_VkFFT_single_nd_dct.cpp 64benchmark_scripts/vkFFT_scripts/src/sample_101_benchmark_VkFFT_double_nd_dct.cpp 65benchmark_scripts/vkFFT_scripts/src/sample_1000_benchmark_VkFFT_single_2_4096.cpp 66benchmark_scripts/vkFFT_scripts/src/sample_1001_benchmark_VkFFT_double_2_4096.cpp 67benchmark_scripts/vkFFT_scripts/src/sample_1002_benchmark_VkFFT_half_2_4096.cpp 68benchmark_scripts/vkFFT_scripts/src/sample_1003_benchmark_VkFFT_single_3d_2_512.cpp 69benchmark_scripts/vkFFT_scripts/src/sample_1004_benchmark_VkFFT_quadDoubleDouble_2_4096.cpp ) 70else () 71add_executable ( $ { PROJECT_NAME } VkFFT_TestSuite.cpp 72benchmark_scripts/vkFFT_scripts/src/utils_VkFFT.cpp 73benchmark_scripts/vkFFT_scripts/src/user_benchmark_VkFFT.cpp 74benchmark_scripts/vkFFT_scripts/src/sample_0_benchmark_VkFFT_single.cpp 75benchmark_scripts/vkFFT_scripts/src/sample_1_benchmark_VkFFT_double.cpp 76benchmark_scripts/vkFFT_scripts/src/sample_2_benchmark_VkFFT_half.cpp 77benchmark_scripts/vkFFT_scripts/src/sample_3_benchmark_VkFFT_single_3d.cpp 78benchmark_scripts/vkFFT_scripts/src/sample_4_benchmark_VkFFT_single_3d_zeropadding.cpp 79benchmark_scripts/vkFFT_scripts/src/sample_5_benchmark_VkFFT_single_disableReorderFourStep.cpp 80benchmark_scripts/vkFFT_scripts/src/sample_6_benchmark_VkFFT_single_r2c.cpp 81benchmark_scripts/vkFFT_scripts/src/sample_7_benchmark_VkFFT_single_Bluestein.cpp 82benchmark_scripts/vkFFT_scripts/src/sample_8_benchmark_VkFFT_double_Bluestein.cpp 83benchmark_scripts/vkFFT_scripts/src/sample_9_benchmark_VkFFT_quadDoubleDouble.cpp 84benchmark_scripts/vkFFT_scripts/src/sample_10_benchmark_VkFFT_single_multipleBuffers.cpp 85benchmark_scripts/vkFFT_scripts/src/sample_50_convolution_VkFFT_single_1d_matrix.cpp 86benchmark_scripts/vkFFT_scripts/src/sample_51_convolution_VkFFT_single_3d_matrix_zeropadding_r2c.cpp 87benchmark_scripts/vkFFT_scripts/src/sample_52_convolution_VkFFT_single_2d_batched_r2c.cpp 88benchmark_scripts/vkFFT_scripts/src/sample_100_benchmark_VkFFT_single_nd_dct.cpp 89benchmark_scripts/vkFFT_scripts/src/sample_101_benchmark_VkFFT_double_nd_dct.cpp 90benchmark_scripts/vkFFT_scripts/src/sample_1000_benchmark_VkFFT_single_2_4096.cpp 91benchmark_scripts/vkFFT_scripts/src/sample_1001_benchmark_VkFFT_double_2_4096.cpp 92benchmark_scripts/vkFFT_scripts/src/sample_1002_benchmark_VkFFT_half_2_4096.cpp 93benchmark_scripts/vkFFT_scripts/src/sample_1003_benchmark_VkFFT_single_3d_2_512.cpp 94benchmark_scripts/vkFFT_scripts/src/sample_1004_benchmark_VkFFT_quadDoubleDouble_2_4096.cpp ) 95endif () 96target_compile_features ( $ { PROJECT_NAME } PUBLIC cxx_std_11 ) 97add_definitions ( -DVKFFT_BACKEND= ${ VKFFT_BACKEND }) 98if (${ VKFFT_BACKEND } EQUAL 0 ) 99find_package ( Vulkan REQUIRED ) 100elseif (${ VKFFT_BACKEND } EQUAL 1 ) 101find_package ( CUDA 9.0 REQUIRED ) 102enable_language ( CUDA ) 103if ( MSVC) 104else () 105set_source_files_properties ( VkFFT_TestSuite.cpp PROPERTIES LANGUAGE CUDA ) 106endif () 107set_property ( TARGET ${ PROJECT_NAME } PROPERTY CUDA_ARCHITECTURES 60 70 75 80 86 ) 108target_compile_options ( $ { PROJECT_NAME } PUBLIC " $ < $ <COMPILE_LANGUAGE:CUDA>:SHELL: 109-std=c++11 110-DVKFFT_BACKEND= ${ VKFFT_BACKEND } 111-gencode arch=compute_60,code=compute_60 112-gencode arch=compute_70,code=compute_70 113-gencode arch=compute_75,code=compute_75 114-gencode arch=compute_80,code=compute_80 115-gencode arch=compute_86,code=compute_86>" ) 116set_target_properties ( $ { PROJECT_NAME } PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) 117set_target_properties ( $ { PROJECT_NAME } PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON ) 118elseif (${ VKFFT_BACKEND } EQUAL 2) 119list ( APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm ) 120find_package ( hip ) 121#target_compile_definitions(${PROJECT_NAME} PUBLIC -DVKFFT_OLD_ROCM) #ROCm versions before 4.5 needed kernel include of hiprtc 122elseif (${ VKFFT_BACKEND } EQUAL 3) 123find_package ( OpenCL REQUIRED ) 124elseif (${ VKFFT_BACKEND } EQUAL 4) 125set ( LevelZero_LIBRARY "/usr/lib/x86_64-linux-gnu/" ) 126set ( LevelZero_INCLUDE_DIR "/usr/include/" ) 127find_library ( 128LevelZero_LIB 129NAMES "ze_loader" 130PATHS ${ LevelZero_LIBRARY } 131PATH_SUFFIXES "lib" "lib64" 132NO_DEFAULT_PATH 133) 134find_path ( 135LevelZero_INCLUDES 136NAMES "ze_api.h" 137PATHS ${ LevelZero_INCLUDE_DIR } 138PATH_SUFFIXES "include" "level_zero" 139NO_DEFAULT_PATH 140) 141target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ LevelZero_INCLUDES }) 142elseif (${ VKFFT_BACKEND } EQUAL 5) 143add_compile_options ( -WMTL_IGNORE_WARNINGS ) 144find_library ( FOUNDATION_LIB Foundation REQUIRED ) 145find_library ( QUARTZ_CORE_LIB QuartzCore REQUIRED ) 146find_library ( METAL_LIB Metal REQUIRED ) 147target_include_directories ( $ { PROJECT_NAME } PUBLIC "metal-cpp/" ) 148endif () 149 150target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVK_API_VERSION=11 ) #10 - Vulkan 1.0, 11 - Vulkan 1.1, 12 - Vulkan 1.2 151if ( VkFFT_use_FP128_Bluestein_RaderFFT) 152target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVkFFT_use_FP128_Bluestein_RaderFFT ) 153endif () 154if ( VkFFT_use_FP128_double_double) 155target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVKFFT_USE_DOUBLEDOUBLE_FP128 ) 156target_link_libraries ( $ { PROJECT_NAME } PUBLIC quadmath ) 157endif () 158if (${ VKFFT_BACKEND } EQUAL 0 ) 159set ( ENABLE_OPT 0 ) 160FetchContent_Declare ( 161glslang-main 162GIT_TAG ${ GLSLANG_GIT_TAG } 163GIT_REPOSITORY https://github.com/KhronosGroup/glslang 164SOURCE_DIR ${ CMAKE_CURRENT_SOURCE_DIR } /glslang-main 165) 166FetchContent_GetProperties ( glslang-main ) 167if ( NOT glslang-main_POPULATED) 168FetchContent_Populate ( glslang-main ) 169endif () 170target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /glslang-main/glslang/Include/ ) 171add_subdirectory ( $ { CMAKE_CURRENT_SOURCE_DIR } /glslang-main ) 172endif () 173 174add_library ( VkFFT INTERFACE ) 175target_include_directories ( VkFFT INTERFACE ${ CMAKE_CURRENT_SOURCE_DIR } /vkFFT/ ) 176target_compile_definitions ( VkFFT INTERFACE -DVKFFT_BACKEND= ${ VKFFT_BACKEND }) 177 178add_library ( half INTERFACE ) 179target_include_directories ( half INTERFACE ${ CMAKE_CURRENT_SOURCE_DIR } /half_lib/ ) 180 181target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/vkFFT_scripts/include/ ) 182 183if (${ VKFFT_BACKEND } EQUAL 0 ) 184target_link_libraries ( $ { PROJECT_NAME } PUBLIC SPIRV glslang Vulkan::Vulkan VkFFT half ) 185elseif (${ VKFFT_BACKEND } EQUAL 1 ) 186find_library ( CUDA_NVRTC_LIB libnvrtc nvrtc HINTS " ${ CUDA_TOOLKIT_ROOT_DIR } /lib64" " ${ LIBNVRTC_LIBRARY_DIR } " " ${ CUDA_TOOLKIT_ROOT_DIR } /lib/x64" /usr/lib64 /usr/local/cuda/lib64 ) 187add_definitions ( -DCUDA_TOOLKIT_ROOT_DIR= " ${ CUDA_TOOLKIT_ROOT_DIR } " ) 188target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ CUDA_LIBRARIES } cuda ${ CUDA_NVRTC_LIB } VkFFT half ) 189target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ CUDA_INCLUDE_DIRS }) 190elseif (${ VKFFT_BACKEND } EQUAL 2) 191target_link_libraries ( $ { PROJECT_NAME } PUBLIC hip::host VkFFT half ) 192elseif (${ VKFFT_BACKEND } EQUAL 3) 193target_link_libraries ( $ { PROJECT_NAME } PUBLIC OpenCL::OpenCL VkFFT half ) 194elseif (${ VKFFT_BACKEND } EQUAL 4) 195target_link_libraries ( $ { PROJECT_NAME } PUBLIC ze_loader VkFFT half ) 196elseif (${ VKFFT_BACKEND } EQUAL 5) 197target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FOUNDATION_LIB } ${ QUARTZ_CORE_LIB } ${ METAL_LIB } VkFFT half ) 198endif () 199 200if ( build_VkFFT_FFTW_precisionOR VkFFT_use_FP128_Bluestein_RaderFFT) 201add_definitions ( -DUSE_FFTW ) 202set ( FFTW3_LIB_DIR "/usr/lib/x86_64-linux-gnu/" ) 203set ( FFTW3_INCLUDE_DIR "/usr/include/" ) 204find_library ( 205FFTW_LIB 206NAMES "libfftw3-3" "fftw3" 207PATHS ${ FFTW3_LIB_DIR } 208PATH_SUFFIXES "lib" "lib64" 209NO_DEFAULT_PATH 210) 211find_path ( 212FFTW_INCLUDES 213NAMES "fftw3.h" 214PATHS ${ FFTW3_INCLUDE_DIR } 215PATH_SUFFIXES "include" 216NO_DEFAULT_PATH 217) 218target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ FFTW_INCLUDES }) 219if ( VkFFT_use_FP128_double_double) 220find_library ( 221FFTWQ_LIB 222NAMES "libfftw3q" "fftw3q" 223PATHS ${ FFTW3_LIB_DIR } 224PATH_SUFFIXES "lib" "lib64" 225NO_DEFAULT_PATH 226) 227target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTWQ_LIB }) 228endif () 229if ( VkFFT_use_FP128_Bluestein_RaderFFT) 230find_library ( 231FFTWL_LIB 232NAMES "libfftw3l" "fftw3l" 233PATHS ${ FFTW3_LIB_DIR } 234PATH_SUFFIXES "lib" "lib64" 235NO_DEFAULT_PATH 236) 237target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTWL_LIB }) 238endif () 239target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTW_LIB }) 240endif () 241 242if ( build_VkFFT_cuFFT_benchmark) 243add_definitions ( -DUSE_cuFFT ) 244find_package ( CUDA 9.0 REQUIRED ) 245enable_language ( CUDA ) 246if ( build_VkFFT_FFTW_precision) 247add_library ( cuFFT_scripts STATIC 248benchmark_scripts/cuFFT_scripts/src/user_benchmark_cuFFT.cu 249benchmark_scripts/cuFFT_scripts/src/sample_0_benchmark_cuFFT_single.cu 250benchmark_scripts/cuFFT_scripts/src/sample_1_benchmark_cuFFT_double.cu 251benchmark_scripts/cuFFT_scripts/src/sample_2_benchmark_cuFFT_half.cu 252benchmark_scripts/cuFFT_scripts/src/sample_3_benchmark_cuFFT_single_3d.cu 253benchmark_scripts/cuFFT_scripts/src/sample_6_benchmark_cuFFT_single_r2c.cu 254benchmark_scripts/cuFFT_scripts/src/sample_7_benchmark_cuFFT_single_Bluestein.cu 255benchmark_scripts/cuFFT_scripts/src/sample_8_benchmark_cuFFT_double_Bluestein.cu 256benchmark_scripts/cuFFT_scripts/src/sample_1000_benchmark_cuFFT_single_2_4096.cu 257benchmark_scripts/cuFFT_scripts/src/sample_1001_benchmark_cuFFT_double_2_4096.cu 258benchmark_scripts/cuFFT_scripts/src/sample_1003_benchmark_cuFFT_single_3d_2_512.cu 259benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_single.cu 260benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_r2c.cu 261benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_double.cu 262benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_half.cu ) 263else () 264add_library ( cuFFT_scripts STATIC 265benchmark_scripts/cuFFT_scripts/src/user_benchmark_cuFFT.cu 266benchmark_scripts/cuFFT_scripts/src/sample_0_benchmark_cuFFT_single.cu 267benchmark_scripts/cuFFT_scripts/src/sample_1_benchmark_cuFFT_double.cu 268benchmark_scripts/cuFFT_scripts/src/sample_2_benchmark_cuFFT_half.cu 269benchmark_scripts/cuFFT_scripts/src/sample_3_benchmark_cuFFT_single_3d.cu 270benchmark_scripts/cuFFT_scripts/src/sample_6_benchmark_cuFFT_single_r2c.cu 271benchmark_scripts/cuFFT_scripts/src/sample_7_benchmark_cuFFT_single_Bluestein.cu 272benchmark_scripts/cuFFT_scripts/src/sample_8_benchmark_cuFFT_double_Bluestein.cu 273benchmark_scripts/cuFFT_scripts/src/sample_1000_benchmark_cuFFT_single_2_4096.cu 274benchmark_scripts/cuFFT_scripts/src/sample_1001_benchmark_cuFFT_double_2_4096.cu 275benchmark_scripts/cuFFT_scripts/src/sample_1003_benchmark_cuFFT_single_3d_2_512.cu ) 276endif () 277set_property ( TARGET cuFFT_scripts PROPERTY CUDA_ARCHITECTURES 60 70 75 80 86 ) 278CUDA_ADD_CUFFT_TO_TARGET ( cuFFT_scripts ) 279target_compile_options ( cuFFT_scripts PRIVATE " $ < $ <COMPILE_LANGUAGE:CUDA>:SHELL: 280-std=c++11 281-gencode arch=compute_60,code=compute_60 282-gencode arch=compute_70,code=compute_70 283-gencode arch=compute_75,code=compute_75 284-gencode arch=compute_80,code=compute_80 285-gencode arch=compute_86,code=compute_86>" ) 286target_include_directories ( cuFFT_scripts PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/cuFFT_scripts/include ) 287target_include_directories ( cuFFT_scripts PUBLIC ${ CUDA_INCLUDE_DIRS }) 288set_target_properties ( cuFFT_scripts PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) 289set_target_properties ( cuFFT_scripts PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON ) 290target_link_libraries ( $ { PROJECT_NAME } PUBLIC cuFFT_scripts ) 291endif () 292if ( build_VkFFT_rocFFT_benchmark) 293add_definitions ( -DUSE_rocFFT ) 294list ( APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm ) 295find_package ( hip ) 296find_package ( hipfft ) 297 298if ( build_VkFFT_FFTW_precision) 299add_library ( rocFFT_scripts STATIC 300benchmark_scripts/rocFFT_scripts/src/user_benchmark_rocFFT.cpp 301benchmark_scripts/rocFFT_scripts/src/sample_0_benchmark_rocFFT_single.cpp 302benchmark_scripts/rocFFT_scripts/src/sample_1_benchmark_rocFFT_double.cpp 303benchmark_scripts/rocFFT_scripts/src/sample_3_benchmark_rocFFT_single_3d.cpp 304benchmark_scripts/rocFFT_scripts/src/sample_6_benchmark_rocFFT_single_r2c.cpp 305benchmark_scripts/rocFFT_scripts/src/sample_7_benchmark_rocFFT_single_Bluestein.cpp 306benchmark_scripts/rocFFT_scripts/src/sample_8_benchmark_rocFFT_double_Bluestein.cpp 307benchmark_scripts/rocFFT_scripts/src/sample_1000_benchmark_rocFFT_single_2_4096.cpp 308benchmark_scripts/rocFFT_scripts/src/sample_1001_benchmark_rocFFT_double_2_4096.cpp 309benchmark_scripts/rocFFT_scripts/src/sample_1003_benchmark_rocFFT_single_3d_2_512.cpp 310benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_single.cpp 311benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_r2c.cpp 312benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_double.cpp ) 313else () 314add_library ( rocFFT_scripts STATIC 315benchmark_scripts/rocFFT_scripts/src/user_benchmark_rocFFT.cpp 316benchmark_scripts/rocFFT_scripts/src/sample_0_benchmark_rocFFT_single.cpp 317benchmark_scripts/rocFFT_scripts/src/sample_1_benchmark_rocFFT_double.cpp 318benchmark_scripts/rocFFT_scripts/src/sample_3_benchmark_rocFFT_single_3d.cpp 319benchmark_scripts/rocFFT_scripts/src/sample_6_benchmark_rocFFT_single_r2c.cpp 320benchmark_scripts/rocFFT_scripts/src/sample_7_benchmark_rocFFT_single_Bluestein.cpp 321benchmark_scripts/rocFFT_scripts/src/sample_8_benchmark_rocFFT_double_Bluestein.cpp 322benchmark_scripts/rocFFT_scripts/src/sample_1000_benchmark_rocFFT_single_2_4096.cpp 323benchmark_scripts/rocFFT_scripts/src/sample_1001_benchmark_rocFFT_double_2_4096.cpp 324benchmark_scripts/rocFFT_scripts/src/sample_1003_benchmark_rocFFT_single_3d_2_512.cpp ) 325endif () 326target_include_directories ( rocFFT_scripts PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/rocFFT_scripts/include ) 327target_link_libraries ( rocFFT_scripts PRIVATE hip::host hip::hipfft ) 328target_link_libraries ( $ { PROJECT_NAME } PUBLIC rocFFT_scripts ) 329endif () 330install ( DIRECTORY " ${ CMAKE_CURRENT_SOURCE_DIR } /vkFFT/" DESTINATION include ) 331install ( TARGETS ${ PROJECT_NAME } DESTINATION bin )