yum-mirror/VkFFT
git clone https://git.yummers.dev/yum-mirror/VkFFT
e2d3d57
develop
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 "12.3.1" ) 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_53_convolution_VkFFT_single_2d_Nimages_1kernel.cpp 64benchmark_scripts/vkFFT_scripts/src/sample_100_benchmark_VkFFT_single_nd_dct.cpp 65benchmark_scripts/vkFFT_scripts/src/sample_101_benchmark_VkFFT_double_nd_dct.cpp 66benchmark_scripts/vkFFT_scripts/src/sample_1000_benchmark_VkFFT_single_2_4096.cpp 67benchmark_scripts/vkFFT_scripts/src/sample_1001_benchmark_VkFFT_double_2_4096.cpp 68benchmark_scripts/vkFFT_scripts/src/sample_1002_benchmark_VkFFT_half_2_4096.cpp 69benchmark_scripts/vkFFT_scripts/src/sample_1003_benchmark_VkFFT_single_3d_2_512.cpp 70benchmark_scripts/vkFFT_scripts/src/sample_1004_benchmark_VkFFT_quadDoubleDouble_2_4096.cpp ) 71else () 72add_executable ( $ { PROJECT_NAME } VkFFT_TestSuite.cpp 73benchmark_scripts/vkFFT_scripts/src/utils_VkFFT.cpp 74benchmark_scripts/vkFFT_scripts/src/user_benchmark_VkFFT.cpp 75benchmark_scripts/vkFFT_scripts/src/sample_0_benchmark_VkFFT_single.cpp 76benchmark_scripts/vkFFT_scripts/src/sample_1_benchmark_VkFFT_double.cpp 77benchmark_scripts/vkFFT_scripts/src/sample_2_benchmark_VkFFT_half.cpp 78benchmark_scripts/vkFFT_scripts/src/sample_3_benchmark_VkFFT_single_3d.cpp 79benchmark_scripts/vkFFT_scripts/src/sample_4_benchmark_VkFFT_single_3d_zeropadding.cpp 80benchmark_scripts/vkFFT_scripts/src/sample_5_benchmark_VkFFT_single_disableReorderFourStep.cpp 81benchmark_scripts/vkFFT_scripts/src/sample_6_benchmark_VkFFT_single_r2c.cpp 82benchmark_scripts/vkFFT_scripts/src/sample_7_benchmark_VkFFT_single_Bluestein.cpp 83benchmark_scripts/vkFFT_scripts/src/sample_8_benchmark_VkFFT_double_Bluestein.cpp 84benchmark_scripts/vkFFT_scripts/src/sample_9_benchmark_VkFFT_quadDoubleDouble.cpp 85benchmark_scripts/vkFFT_scripts/src/sample_10_benchmark_VkFFT_single_multipleBuffers.cpp 86benchmark_scripts/vkFFT_scripts/src/sample_50_convolution_VkFFT_single_1d_matrix.cpp 87benchmark_scripts/vkFFT_scripts/src/sample_51_convolution_VkFFT_single_3d_matrix_zeropadding_r2c.cpp 88benchmark_scripts/vkFFT_scripts/src/sample_52_convolution_VkFFT_single_2d_batched_r2c.cpp 89benchmark_scripts/vkFFT_scripts/src/sample_53_convolution_VkFFT_single_2d_Nimages_1kernel.cpp 90benchmark_scripts/vkFFT_scripts/src/sample_100_benchmark_VkFFT_single_nd_dct.cpp 91benchmark_scripts/vkFFT_scripts/src/sample_101_benchmark_VkFFT_double_nd_dct.cpp 92benchmark_scripts/vkFFT_scripts/src/sample_1000_benchmark_VkFFT_single_2_4096.cpp 93benchmark_scripts/vkFFT_scripts/src/sample_1001_benchmark_VkFFT_double_2_4096.cpp 94benchmark_scripts/vkFFT_scripts/src/sample_1002_benchmark_VkFFT_half_2_4096.cpp 95benchmark_scripts/vkFFT_scripts/src/sample_1003_benchmark_VkFFT_single_3d_2_512.cpp 96benchmark_scripts/vkFFT_scripts/src/sample_1004_benchmark_VkFFT_quadDoubleDouble_2_4096.cpp ) 97endif () 98target_compile_features ( $ { PROJECT_NAME } PUBLIC cxx_std_11 ) 99add_definitions ( -DVKFFT_BACKEND= ${ VKFFT_BACKEND }) 100if (${ VKFFT_BACKEND } EQUAL 0 ) 101find_package ( Vulkan REQUIRED ) 102elseif (${ VKFFT_BACKEND } EQUAL 1 ) 103find_package ( CUDA 9.0 REQUIRED ) 104enable_language ( CUDA ) 105if ( MSVC) 106else () 107set_source_files_properties ( VkFFT_TestSuite.cpp PROPERTIES LANGUAGE CUDA ) 108endif () 109set_property ( TARGET ${ PROJECT_NAME } PROPERTY CUDA_ARCHITECTURES 60 70 75 80 86 ) 110target_compile_options ( $ { PROJECT_NAME } PUBLIC " $ < $ <COMPILE_LANGUAGE:CUDA>:SHELL: 111-std=c++11 112-DVKFFT_BACKEND= ${ VKFFT_BACKEND } 113-gencode arch=compute_60,code=compute_60 114-gencode arch=compute_70,code=compute_70 115-gencode arch=compute_75,code=compute_75 116-gencode arch=compute_80,code=compute_80 117-gencode arch=compute_86,code=compute_86>" ) 118set_target_properties ( $ { PROJECT_NAME } PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) 119set_target_properties ( $ { PROJECT_NAME } PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON ) 120elseif (${ VKFFT_BACKEND } EQUAL 2) 121list ( APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm ) 122find_package ( hip ) 123#target_compile_definitions(${PROJECT_NAME} PUBLIC -DVKFFT_OLD_ROCM) #ROCm versions before 4.5 needed kernel include of hiprtc 124elseif (${ VKFFT_BACKEND } EQUAL 3) 125find_package ( OpenCL REQUIRED ) 126elseif (${ VKFFT_BACKEND } EQUAL 4) 127set ( LevelZero_LIBRARY "/usr/lib/x86_64-linux-gnu/" ) 128set ( LevelZero_INCLUDE_DIR "/usr/include/" ) 129find_library ( 130LevelZero_LIB 131NAMES "ze_loader" 132PATHS ${ LevelZero_LIBRARY } 133PATH_SUFFIXES "lib" "lib64" 134NO_DEFAULT_PATH 135) 136find_path ( 137LevelZero_INCLUDES 138NAMES "ze_api.h" 139PATHS ${ LevelZero_INCLUDE_DIR } 140PATH_SUFFIXES "include" "level_zero" 141NO_DEFAULT_PATH 142) 143target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ LevelZero_INCLUDES }) 144elseif (${ VKFFT_BACKEND } EQUAL 5) 145add_compile_options ( -WMTL_IGNORE_WARNINGS ) 146find_library ( FOUNDATION_LIB Foundation REQUIRED ) 147find_library ( QUARTZ_CORE_LIB QuartzCore REQUIRED ) 148find_library ( METAL_LIB Metal REQUIRED ) 149target_include_directories ( $ { PROJECT_NAME } PUBLIC "metal-cpp/" ) 150endif () 151 152target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVK_API_VERSION=11 ) #10 - Vulkan 1.0, 11 - Vulkan 1.1, 12 - Vulkan 1.2 153if ( VkFFT_use_FP128_Bluestein_RaderFFT) 154target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVkFFT_use_FP128_Bluestein_RaderFFT ) 155endif () 156if ( VkFFT_use_FP128_double_double) 157target_compile_definitions ( $ { PROJECT_NAME } PUBLIC -DVKFFT_USE_DOUBLEDOUBLE_FP128 ) 158target_link_libraries ( $ { PROJECT_NAME } PUBLIC quadmath ) 159endif () 160if (${ VKFFT_BACKEND } EQUAL 0 ) 161find_package ( glslang CONFIG ) 162if ( NOT ${ glslang_FOUND }) 163set ( ENABLE_OPT 0 ) 164FetchContent_Declare ( 165glslang-main 166GIT_TAG ${ GLSLANG_GIT_TAG } 167GIT_REPOSITORY https://github.com/KhronosGroup/glslang 168SOURCE_DIR ${ CMAKE_CURRENT_SOURCE_DIR } /glslang-main 169) 170FetchContent_GetProperties ( glslang-main ) 171if ( NOT glslang-main_POPULATED) 172FetchContent_Populate ( glslang-main ) 173endif () 174add_subdirectory ( $ { CMAKE_CURRENT_SOURCE_DIR } /glslang-main ) 175endif ( NOT${ glslang_FOUND }) 176endif () 177 178add_library ( VkFFT INTERFACE ) 179target_include_directories ( VkFFT INTERFACE ${ CMAKE_CURRENT_SOURCE_DIR } /vkFFT/ ) 180target_compile_definitions ( VkFFT INTERFACE -DVKFFT_BACKEND= ${ VKFFT_BACKEND }) 181 182add_library ( half INTERFACE ) 183target_include_directories ( half INTERFACE ${ CMAKE_CURRENT_SOURCE_DIR } /half_lib/ ) 184 185target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/vkFFT_scripts/include/ ) 186 187if (${ VKFFT_BACKEND } EQUAL 0 ) 188if (${ glslang_FOUND }) 189target_link_libraries ( $ { PROJECT_NAME } PUBLIC glslang::SPIRV glslang::glslang Vulkan::Vulkan VkFFT half ) 190else (${ glslang_FOUND }) 191target_link_libraries ( $ { PROJECT_NAME } PUBLIC SPIRV glslang Vulkan::Vulkan VkFFT half ) 192endif (${ glslang_FOUND }) 193elseif (${ VKFFT_BACKEND } EQUAL 1 ) 194find_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 ) 195add_definitions ( -DCUDA_TOOLKIT_ROOT_DIR= " ${ CUDA_TOOLKIT_ROOT_DIR } " ) 196target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ CUDA_LIBRARIES } cuda ${ CUDA_NVRTC_LIB } VkFFT half ) 197target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ CUDA_INCLUDE_DIRS }) 198elseif (${ VKFFT_BACKEND } EQUAL 2) 199target_link_libraries ( $ { PROJECT_NAME } PUBLIC hip::host VkFFT half ) 200elseif (${ VKFFT_BACKEND } EQUAL 3) 201target_link_libraries ( $ { PROJECT_NAME } PUBLIC OpenCL::OpenCL VkFFT half ) 202elseif (${ VKFFT_BACKEND } EQUAL 4) 203target_link_libraries ( $ { PROJECT_NAME } PUBLIC ze_loader VkFFT half ) 204elseif (${ VKFFT_BACKEND } EQUAL 5) 205target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FOUNDATION_LIB } ${ QUARTZ_CORE_LIB } ${ METAL_LIB } VkFFT half ) 206endif () 207 208if ( build_VkFFT_FFTW_precisionOR VkFFT_use_FP128_Bluestein_RaderFFT) 209add_definitions ( -DUSE_FFTW ) 210set ( FFTW3_LIB_DIR "/usr/lib/x86_64-linux-gnu/" ) 211set ( FFTW3_INCLUDE_DIR "/usr/include/" ) 212find_library ( 213FFTW_LIB 214NAMES "libfftw3-3" "fftw3" 215PATHS ${ FFTW3_LIB_DIR } 216PATH_SUFFIXES "lib" "lib64" 217NO_DEFAULT_PATH 218) 219find_path ( 220FFTW_INCLUDES 221NAMES "fftw3.h" 222PATHS ${ FFTW3_INCLUDE_DIR } 223PATH_SUFFIXES "include" 224NO_DEFAULT_PATH 225) 226target_include_directories ( $ { PROJECT_NAME } PUBLIC ${ FFTW_INCLUDES }) 227if ( VkFFT_use_FP128_double_double) 228find_library ( 229FFTWQ_LIB 230NAMES "libfftw3q" "fftw3q" 231PATHS ${ FFTW3_LIB_DIR } 232PATH_SUFFIXES "lib" "lib64" 233NO_DEFAULT_PATH 234) 235target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTWQ_LIB }) 236endif () 237if ( VkFFT_use_FP128_Bluestein_RaderFFT) 238find_library ( 239FFTWL_LIB 240NAMES "libfftw3l" "fftw3l" 241PATHS ${ FFTW3_LIB_DIR } 242PATH_SUFFIXES "lib" "lib64" 243NO_DEFAULT_PATH 244) 245target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTWL_LIB }) 246endif () 247target_link_libraries ( $ { PROJECT_NAME } PUBLIC ${ FFTW_LIB }) 248endif () 249 250if ( build_VkFFT_cuFFT_benchmark) 251add_definitions ( -DUSE_cuFFT ) 252find_package ( CUDA 9.0 REQUIRED ) 253enable_language ( CUDA ) 254if ( build_VkFFT_FFTW_precision) 255add_library ( cuFFT_scripts STATIC 256benchmark_scripts/cuFFT_scripts/src/user_benchmark_cuFFT.cu 257benchmark_scripts/cuFFT_scripts/src/sample_0_benchmark_cuFFT_single.cu 258benchmark_scripts/cuFFT_scripts/src/sample_1_benchmark_cuFFT_double.cu 259benchmark_scripts/cuFFT_scripts/src/sample_2_benchmark_cuFFT_half.cu 260benchmark_scripts/cuFFT_scripts/src/sample_3_benchmark_cuFFT_single_3d.cu 261benchmark_scripts/cuFFT_scripts/src/sample_6_benchmark_cuFFT_single_r2c.cu 262benchmark_scripts/cuFFT_scripts/src/sample_7_benchmark_cuFFT_single_Bluestein.cu 263benchmark_scripts/cuFFT_scripts/src/sample_8_benchmark_cuFFT_double_Bluestein.cu 264benchmark_scripts/cuFFT_scripts/src/sample_1000_benchmark_cuFFT_single_2_4096.cu 265benchmark_scripts/cuFFT_scripts/src/sample_1001_benchmark_cuFFT_double_2_4096.cu 266benchmark_scripts/cuFFT_scripts/src/sample_1003_benchmark_cuFFT_single_3d_2_512.cu 267benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_single.cu 268benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_r2c.cu 269benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_double.cu 270benchmark_scripts/cuFFT_scripts/src/precision_cuFFT_half.cu ) 271else () 272add_library ( cuFFT_scripts STATIC 273benchmark_scripts/cuFFT_scripts/src/user_benchmark_cuFFT.cu 274benchmark_scripts/cuFFT_scripts/src/sample_0_benchmark_cuFFT_single.cu 275benchmark_scripts/cuFFT_scripts/src/sample_1_benchmark_cuFFT_double.cu 276benchmark_scripts/cuFFT_scripts/src/sample_2_benchmark_cuFFT_half.cu 277benchmark_scripts/cuFFT_scripts/src/sample_3_benchmark_cuFFT_single_3d.cu 278benchmark_scripts/cuFFT_scripts/src/sample_6_benchmark_cuFFT_single_r2c.cu 279benchmark_scripts/cuFFT_scripts/src/sample_7_benchmark_cuFFT_single_Bluestein.cu 280benchmark_scripts/cuFFT_scripts/src/sample_8_benchmark_cuFFT_double_Bluestein.cu 281benchmark_scripts/cuFFT_scripts/src/sample_1000_benchmark_cuFFT_single_2_4096.cu 282benchmark_scripts/cuFFT_scripts/src/sample_1001_benchmark_cuFFT_double_2_4096.cu 283benchmark_scripts/cuFFT_scripts/src/sample_1003_benchmark_cuFFT_single_3d_2_512.cu ) 284endif () 285set_property ( TARGET cuFFT_scripts PROPERTY CUDA_ARCHITECTURES 60 70 75 80 86 ) 286CUDA_ADD_CUFFT_TO_TARGET ( cuFFT_scripts ) 287target_compile_options ( cuFFT_scripts PRIVATE " $ < $ <COMPILE_LANGUAGE:CUDA>:SHELL: 288-std=c++11 289-gencode arch=compute_60,code=compute_60 290-gencode arch=compute_70,code=compute_70 291-gencode arch=compute_75,code=compute_75 292-gencode arch=compute_80,code=compute_80 293-gencode arch=compute_86,code=compute_86>" ) 294target_include_directories ( cuFFT_scripts PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/cuFFT_scripts/include ) 295target_include_directories ( cuFFT_scripts PUBLIC ${ CUDA_INCLUDE_DIRS }) 296set_target_properties ( cuFFT_scripts PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) 297set_target_properties ( cuFFT_scripts PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON ) 298target_link_libraries ( $ { PROJECT_NAME } PUBLIC cuFFT_scripts ) 299endif () 300if ( build_VkFFT_rocFFT_benchmark) 301add_definitions ( -DUSE_rocFFT ) 302list ( APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm ) 303find_package ( hip ) 304find_package ( hipfft ) 305 306if ( build_VkFFT_FFTW_precision) 307add_library ( rocFFT_scripts STATIC 308benchmark_scripts/rocFFT_scripts/src/user_benchmark_rocFFT.cpp 309benchmark_scripts/rocFFT_scripts/src/sample_0_benchmark_rocFFT_single.cpp 310benchmark_scripts/rocFFT_scripts/src/sample_1_benchmark_rocFFT_double.cpp 311benchmark_scripts/rocFFT_scripts/src/sample_3_benchmark_rocFFT_single_3d.cpp 312benchmark_scripts/rocFFT_scripts/src/sample_6_benchmark_rocFFT_single_r2c.cpp 313benchmark_scripts/rocFFT_scripts/src/sample_7_benchmark_rocFFT_single_Bluestein.cpp 314benchmark_scripts/rocFFT_scripts/src/sample_8_benchmark_rocFFT_double_Bluestein.cpp 315benchmark_scripts/rocFFT_scripts/src/sample_1000_benchmark_rocFFT_single_2_4096.cpp 316benchmark_scripts/rocFFT_scripts/src/sample_1001_benchmark_rocFFT_double_2_4096.cpp 317benchmark_scripts/rocFFT_scripts/src/sample_1003_benchmark_rocFFT_single_3d_2_512.cpp 318benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_single.cpp 319benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_r2c.cpp 320benchmark_scripts/rocFFT_scripts/src/precision_rocFFT_double.cpp ) 321else () 322add_library ( rocFFT_scripts STATIC 323benchmark_scripts/rocFFT_scripts/src/user_benchmark_rocFFT.cpp 324benchmark_scripts/rocFFT_scripts/src/sample_0_benchmark_rocFFT_single.cpp 325benchmark_scripts/rocFFT_scripts/src/sample_1_benchmark_rocFFT_double.cpp 326benchmark_scripts/rocFFT_scripts/src/sample_3_benchmark_rocFFT_single_3d.cpp 327benchmark_scripts/rocFFT_scripts/src/sample_6_benchmark_rocFFT_single_r2c.cpp 328benchmark_scripts/rocFFT_scripts/src/sample_7_benchmark_rocFFT_single_Bluestein.cpp 329benchmark_scripts/rocFFT_scripts/src/sample_8_benchmark_rocFFT_double_Bluestein.cpp 330benchmark_scripts/rocFFT_scripts/src/sample_1000_benchmark_rocFFT_single_2_4096.cpp 331benchmark_scripts/rocFFT_scripts/src/sample_1001_benchmark_rocFFT_double_2_4096.cpp 332benchmark_scripts/rocFFT_scripts/src/sample_1003_benchmark_rocFFT_single_3d_2_512.cpp ) 333endif () 334target_include_directories ( rocFFT_scripts PUBLIC ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark_scripts/rocFFT_scripts/include ) 335target_link_libraries ( rocFFT_scripts PRIVATE hip::host hip::hipfft ) 336target_link_libraries ( $ { PROJECT_NAME } PUBLIC rocFFT_scripts ) 337endif () 338install ( DIRECTORY " ${ CMAKE_CURRENT_SOURCE_DIR } /vkFFT/" DESTINATION include ) 339install ( TARGETS ${ PROJECT_NAME } DESTINATION bin )