Skip to content

Commit 8aaafe8

Browse files
authored
Update DFT benchmark tool (#655)
This patch adds support for single precision and multi-threaded measurements to the DFT benchmarking tool.
1 parent a9162c4 commit 8aaafe8

File tree

10 files changed

+370
-142
lines changed

10 files changed

+370
-142
lines changed

CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ if(SLEEF_SHOW_CONFIG)
397397
message(STATUS "GMP : " ${LIBGMP})
398398
message(STATUS "RT : " ${LIBRT})
399399
message(STATUS "FFTW3 : " ${LIBFFTW3})
400+
message(STATUS "FFTW3F : " ${LIBFFTW3F})
400401
message(STATUS "OPENSSL : " ${OPENSSL_VERSION})
401402
message(STATUS "SDE : " ${SDE_COMMAND})
402403
if (SLEEF_BUILD_INLINE_HEADERS)

Configure.cmake

+9-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,15 @@ if(SLEEF_BUILD_WITH_LIBM)
5858
endif()
5959
find_library(LIBGMP gmp)
6060
find_library(LIBRT rt)
61+
6162
find_library(LIBFFTW3 fftw3)
63+
find_library(LIBFFTW3F fftw3f)
64+
find_library(LIBFFTW3_OMP fftw3_omp)
65+
find_library(LIBFFTW3F_OMP fftw3f_omp)
66+
67+
if (LIBFFTW3 AND LIBFFTW3F AND LIBFFTW3_OMP AND LIBFFTW3F_OMP)
68+
set(SLEEF_LIBFFTW3_LIBRARIES ${LIBFFTW3} ${LIBFFTW3F} ${LIBFFTW3_OMP} ${LIBFFTW3F_OMP})
69+
endif()
6270

6371
if (LIB_MPFR)
6472
find_path(MPFR_INCLUDE_DIR
@@ -70,7 +78,7 @@ if (LIBFFTW3)
7078
find_path(FFTW3_INCLUDE_DIR
7179
NAMES fftw3.h
7280
ONLY_CMAKE_FIND_ROOT_PATH)
73-
endif(LIBFFTW3)
81+
endif()
7482

7583
if (NOT LIBM)
7684
set(LIBM "")

include/sleefdft.h

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ extern "C"
66
{
77
#endif
88

9+
#include <stdio.h>
910
#include <stdlib.h>
1011
#include <stdint.h>
1112

@@ -46,11 +47,15 @@ IMPORT struct SleefDFT *SleefDFT_float_init1d(uint32_t n, const float *in, float
4647
IMPORT struct SleefDFT *SleefDFT_float_init2d(uint32_t n, uint32_t m, const float *in, float *out, uint64_t mode);
4748
IMPORT void SleefDFT_float_execute(struct SleefDFT *ptr, const float *in, float *out);
4849

50+
IMPORT void SleefDFT_execute(struct SleefDFT *ptr, const void *in, void *out);
51+
4952
IMPORT void SleefDFT_dispose(struct SleefDFT *ptr);
5053

5154
IMPORT void SleefDFT_setPath(struct SleefDFT *ptr, char *pathStr);
5255
IMPORT int SleefDFT_getPath(struct SleefDFT *ptr, char *pathStr, int pathStrSize);
5356

57+
IMPORT void SleefDFT_setDefaultVerboseFP(FILE *fp);
58+
5459
//
5560

5661
IMPORT void SleefDFT_setPlanFilePath(const char *path, const char *arch, uint64_t mode);

src/dft-tester/CMakeLists.txt

+16-30
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,6 @@ if((NOT MSVC) AND NOT SLEEF_CLANG_ON_WINDOWS)
8383
set_target_properties(${TARGET_MEASUREDFT} PROPERTIES ${COMMON_TARGET_PROPERTIES})
8484
endif()
8585

86-
# Target executable bench1dst
87-
set(TARGET_BENCH1DST "bench1dst")
88-
add_executable(${TARGET_BENCH1DST} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
89-
add_dependencies(${TARGET_BENCH1DST} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT})
90-
target_compile_definitions(${TARGET_BENCH1DST} PRIVATE ${COMMON_TARGET_DEFINITIONS})
91-
target_link_libraries(${TARGET_BENCH1DST} ${COMMON_LINK_LIBRARIES})
92-
set_target_properties(${TARGET_BENCH1DST} PROPERTIES ${COMMON_TARGET_PROPERTIES})
93-
94-
# Target executable bench1dmt
95-
set(TARGET_BENCH1DMT "bench1dmt")
96-
add_executable(${TARGET_BENCH1DMT} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
97-
add_dependencies(${TARGET_BENCH1DMT} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT})
98-
target_compile_definitions(${TARGET_BENCH1DMT} PRIVATE ${COMMON_TARGET_DEFINITIONS} MULTITHREAD=1)
99-
target_link_libraries(${TARGET_BENCH1DMT} ${COMMON_LINK_LIBRARIES})
100-
set_target_properties(${TARGET_BENCH1DMT} PROPERTIES ${COMMON_TARGET_PROPERTIES})
101-
10286
# Target executable test_dftplanner
10387
set(TARGET_TEST_DFTPLANNER "test_dftplanner")
10488
add_executable(${TARGET_TEST_DFTPLANNER} test_dftplanner.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
@@ -196,20 +180,22 @@ if (LIBFFTW3 AND NOT SLEEF_DISABLE_FFTW)
196180
add_test_dft(${TARGET_FFTWTEST2DSP}_10_10 $<TARGET_FILE:${TARGET_FFTWTEST2DSP}> 10 10)
197181
add_test_dft(${TARGET_FFTWTEST2DSP}_5_15 $<TARGET_FILE:${TARGET_FFTWTEST2DSP}> 5 15)
198182

199-
# Target executable bench1dfftwst
200-
set(TARGET_BENCH1DFFTWST "bench1dfftwst")
201-
add_executable(${TARGET_BENCH1DFFTWST} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
202-
target_compile_definitions(${TARGET_BENCH1DFFTWST} PRIVATE ${COMMON_TARGET_DEFINITIONS} USEFFTW=1)
203-
target_link_libraries(${TARGET_BENCH1DFFTWST} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3})
204-
set_target_properties(${TARGET_BENCH1DFFTWST} PROPERTIES ${COMMON_TARGET_PROPERTIES})
205-
206-
if (FALSE)
207-
# Target executable bench1dfftwmt
208-
set(TARGET_BENCH1DFFTWMT "bench1dfftwmt")
209-
add_executable(${TARGET_BENCH1DFFTWMT} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
210-
target_compile_definitions(${TARGET_BENCH1DFFTWMT} PRIVATE ${COMMON_TARGET_DEFINITIONS} USEFFTW=1 MULTITHREAD=1)
211-
target_link_libraries(${TARGET_BENCH1DFFTWMT} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3})
212-
set_target_properties(${TARGET_BENCH1DFFTWMT} PROPERTIES ${COMMON_TARGET_PROPERTIES})
183+
if (SLEEF_LIBFFTW3_LIBRARIES)
184+
# Target executable dftbench1ddp
185+
set(TARGET_BENCH1DDP "dftbench1ddp")
186+
add_executable(${TARGET_BENCH1DDP} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
187+
add_dependencies(${TARGET_BENCH1DDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT})
188+
target_compile_definitions(${TARGET_BENCH1DDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1)
189+
target_link_libraries(${TARGET_BENCH1DDP} ${COMMON_LINK_LIBRARIES} ${SLEEF_LIBFFTW3_LIBRARIES})
190+
set_target_properties(${TARGET_BENCH1DDP} PROPERTIES ${COMMON_TARGET_PROPERTIES})
191+
192+
# Target executable dftbench1dsp
193+
set(TARGET_BENCH1DSP "dftbench1dsp")
194+
add_executable(${TARGET_BENCH1DSP} bench1d.cpp ${PROJECT_SOURCE_DIR}/include/sleefdft.h)
195+
add_dependencies(${TARGET_BENCH1DSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT})
196+
target_compile_definitions(${TARGET_BENCH1DSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2)
197+
target_link_libraries(${TARGET_BENCH1DSP} ${COMMON_LINK_LIBRARIES} ${SLEEF_LIBFFTW3_LIBRARIES})
198+
set_target_properties(${TARGET_BENCH1DSP} PROPERTIES ${COMMON_TARGET_PROPERTIES})
213199
endif()
214200
else(LIBFFTW3 AND NOT SLEEF_DISABLE_FFTW)
215201
if(MSVC OR SLEEF_CLANG_ON_WINDOWS)

0 commit comments

Comments
 (0)