Skip to content

Commit d2e0ff7

Browse files
authored
Added GPU spread interp only test (#631)
* Added GPU spread interp only test, cmake call CPU spreadinteronly
1 parent b8cea9d commit d2e0ff7

File tree

4 files changed

+556
-204
lines changed

4 files changed

+556
-204
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ If not stated, FINUFFT is assumed (cuFINUFFT <=1.3 is listed separately).
33

44
Master, using release name V 2.4.0 (2/11/25)
55

6+
* Added GPU spread interp only test. Added CPU spread interp only test to cmake
67
* Make attributes private in Python Plan classes and allow read-only access to
78
them using properties (Andén #608).
89
* Remove possibility to supply real dtypes to Plan interfaces. Now only complex

test/CMakeLists.txt

Lines changed: 88 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@ set(TESTS
88
finufft2dmany_test
99
finufft3d_test
1010
finufft3dmany_test
11-
finufft3dkernel_test)
11+
finufft3dkernel_test
12+
spreadinterp1d_test
13+
)
1214

1315
foreach(TEST ${TESTS})
14-
add_executable(${TEST} ${TEST}.cpp)
15-
target_compile_features(${TEST} PRIVATE cxx_std_17)
16-
finufft_link_test(${TEST})
17-
18-
add_executable(${TEST}f ${TEST}.cpp)
19-
target_compile_definitions(${TEST}f PRIVATE -DSINGLE)
20-
target_compile_features(${TEST}f PRIVATE cxx_std_17)
21-
finufft_link_test(${TEST}f)
16+
add_executable(${TEST} ${TEST}.cpp)
17+
target_compile_features(${TEST} PRIVATE cxx_std_17)
18+
finufft_link_test(${TEST})
19+
20+
add_executable(${TEST}f ${TEST}.cpp)
21+
target_compile_definitions(${TEST}f PRIVATE -DSINGLE)
22+
target_compile_features(${TEST}f PRIVATE cxx_std_17)
23+
finufft_link_test(${TEST}f)
2224
endforeach()
2325

2426
# copy the DLLs to the build directory so that the tests can find them there fix
@@ -28,75 +30,96 @@ copy_dll(finufft basicpassfail)
2830
# Add ctest definitions not for both precisions...
2931
add_executable(testutils testutils.cpp)
3032
if(FINUFFT_USE_DUCC0)
31-
target_compile_definitions(testutils PRIVATE -DFINUFFT_USE_DUCC0)
33+
target_compile_definitions(testutils PRIVATE -DFINUFFT_USE_DUCC0)
3234
endif()
3335
target_compile_features(testutils PRIVATE cxx_std_17)
3436
finufft_link_test(testutils)
3537
add_test(
36-
NAME run_testutils
37-
COMMAND testutils
38-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
38+
NAME run_testutils
39+
COMMAND testutils
40+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
41+
)
3942

4043
if(NOT FINUFFT_USE_DUCC0)
41-
add_executable(fftw_lock_test fftw_lock_test.cpp)
42-
target_compile_features(fftw_lock_test PRIVATE cxx_std_17)
43-
finufft_link_test(fftw_lock_test)
44-
45-
add_test(
46-
NAME run_fftw_lock_test
47-
COMMAND fftw_lock_test
48-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
44+
add_executable(fftw_lock_test fftw_lock_test.cpp)
45+
target_compile_features(fftw_lock_test PRIVATE cxx_std_17)
46+
finufft_link_test(fftw_lock_test)
47+
48+
add_test(
49+
NAME run_fftw_lock_test
50+
COMMAND fftw_lock_test
51+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
52+
)
4953
endif()
5054

5155
# Add ctest definitions that run at both precisions...
5256
function(add_tests_with_prec PREC REQ_TOL CHECK_TOL SUFFIX)
53-
# All of the following should be run at OMP_NUM_THREADS=4 or something small,
54-
# as in makefile. This prevents them taking a huge time on a, say, 128-core
55-
# Rome node. ... but I don't know platform-indep way to do that! Does anyone?
56-
57-
add_test(
58-
NAME run_basic_pass_fail_${PREC}
59-
COMMAND basicpassfail${SUFFIX}
60-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
61-
62-
add_test(
63-
NAME run_finufft1d_test_${PREC}
64-
COMMAND finufft1d_test${SUFFIX} 1e2 2e2 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
65-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
66-
67-
add_test(
68-
NAME run_finufft1dmany_test_${PREC}
69-
COMMAND finufft1dmany_test${SUFFIX} 3 1e2 2e2 ${REQ_TOL} 0 0 0 2 0.0
57+
# All of the following should be run at OMP_NUM_THREADS=4 or something small,
58+
# as in makefile. This prevents them taking a huge time on a, say, 128-core
59+
# Rome node. ... but I don't know platform-indep way to do that! Does anyone?
60+
61+
add_test(
62+
NAME run_basic_pass_fail_${PREC}
63+
COMMAND basicpassfail${SUFFIX}
64+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
65+
)
66+
67+
add_test(
68+
NAME run_finufft1d_test_${PREC}
69+
COMMAND finufft1d_test${SUFFIX} 1e2 2e2 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
70+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
71+
)
72+
73+
add_test(
74+
NAME run_finufft1dmany_test_${PREC}
75+
COMMAND
76+
finufft1dmany_test${SUFFIX} 3 1e2 2e2 ${REQ_TOL} 0 0 0 2 0.0
7077
${CHECK_TOL}
71-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
72-
73-
add_test(
74-
NAME run_finufft2d_test_${PREC}
75-
COMMAND finufft2d_test${SUFFIX} 1e2 1e1 1e3 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
76-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
77-
78-
add_test(
79-
NAME run_finufft2dmany_test_${PREC}
80-
COMMAND finufft2dmany_test${SUFFIX} 3 1e2 1e1 1e3 ${REQ_TOL} 0 0 0 2 0.0
78+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
79+
)
80+
81+
add_test(
82+
NAME run_finufft2d_test_${PREC}
83+
COMMAND
84+
finufft2d_test${SUFFIX} 1e2 1e1 1e3 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
85+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
86+
)
87+
88+
add_test(
89+
NAME run_finufft2dmany_test_${PREC}
90+
COMMAND
91+
finufft2dmany_test${SUFFIX} 3 1e2 1e1 1e3 ${REQ_TOL} 0 0 0 2 0.0
8192
${CHECK_TOL}
82-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
83-
84-
add_test(
85-
NAME run_finufft3d_test_${PREC}
86-
COMMAND finufft3d_test${SUFFIX} 5 10 20 1e2 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
87-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
88-
89-
add_test(
90-
NAME run_finufft3dmany_test_${PREC}
91-
COMMAND finufft3dmany_test${SUFFIX} 2 5 10 20 1e2 ${REQ_TOL} 0 0 0 2 0.0
93+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
94+
)
95+
96+
add_test(
97+
NAME run_finufft3d_test_${PREC}
98+
COMMAND
99+
finufft3d_test${SUFFIX} 5 10 20 1e2 ${REQ_TOL} 0 2 0.0 ${CHECK_TOL}
100+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
101+
)
102+
103+
add_test(
104+
NAME run_finufft3dmany_test_${PREC}
105+
COMMAND
106+
finufft3dmany_test${SUFFIX} 2 5 10 20 1e2 ${REQ_TOL} 0 0 0 2 0.0
92107
${CHECK_TOL}
93-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
94-
95-
add_test(
96-
NAME run_dumbinputs_${PREC}
97-
COMMAND dumbinputs${SUFFIX}
98-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
99-
108+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
109+
)
110+
111+
add_test(
112+
NAME run_dumbinputs_${PREC}
113+
COMMAND dumbinputs${SUFFIX}
114+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
115+
)
116+
117+
add_test(
118+
NAME spreadinterp1d_${PREC}
119+
COMMAND
120+
spreadinterp1d_test${SUFFIX} 1e3 1e3 ${REQ_TOL} 0 2 2.0 ${CHECK_TOL}
121+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
122+
)
100123
endfunction()
101124

102125
# use above function to actually add the tests, with certain requested and check

0 commit comments

Comments
 (0)