Skip to content

Commit 3110b60

Browse files
committed
add kerevalmeth=0 vs 1 acc check to CI via test/finufft_check.sh; doc in CHANGELOG
1 parent ad654f3 commit 3110b60

File tree

4 files changed

+20
-18
lines changed

4 files changed

+20
-18
lines changed

CHANGELOG

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ V 2.3.0beta (6/21/24)
77
kernel evaluation, templating by ns with AVX-width-dependent decisions.
88
Up to 80% faster, dep on compiler. (Marco Barbone with help from Libin Lu).
99
NOTE: introduces new dependency (XSIMD), added to cMake and makefile.
10+
* new test/finufft3dkernel_test checks kerevalmeth=0,1 same to tol (M Barbone).
1011
* new perftest/compare_spreads.jl compares two spreadinterp libs (A Barnett).
1112
* new benchmarker perftest/spreadtestndall sweeps all kernel widths (M Barbone).
1213
* cufinufft now supports modeord(type 1,2 only): 0 CMCL-style increasing mode
@@ -26,15 +27,15 @@ V 2.3.0beta (6/21/24)
2627
* improved GPU python docs: migration guide; usage from cupy, numba, torch,
2728
pycuda. PyPI pkg still at 2.2.0beta.
2829
* Added a clang-format pre-commit hook to ensure consistent code style.
29-
Created a .clang-format file to define the style similar to the existing style.
30+
Created a .clang-format file to define a style similar to the existing style.
3031
Applied clang-format to all cmake, C, C++, and CUDA code. Ignored the blame
3132
using .git-blame-ignore-revs. Added a contributing.md for developers.
32-
* cuFINUFFT interface update: number of nonuniform points M is now a 64-bit integer
33-
as opposed to 32-bit. While this does modify the ABI, most code will just need to
34-
recompile against the new library as compilers will silently upcast any 32-bit
35-
integers to 64-bit when calling cufinufft(f)_setpts. Note that internally, 32-bit
36-
integers are still used, so calling cufinufft with more than 2e9 points will fail.
37-
This restriction may be lifted in the future.
33+
* cuFINUFFT interface update: number of nonuniform points M is now a 64-bit int
34+
as opposed to 32-bit. While this does modify the ABI, most code will just
35+
need to recompile against the new library as compilers will silently upcast
36+
any 32-bit integers to 64-bit when calling cufinufft(f)_setpts. Note that
37+
internally, 32-bit integers are still used, so calling cufinufft with more
38+
than 2e9 points will fail. This restriction may be lifted in the future.
3839

3940
V 2.2.0 (12/12/23)
4041

@@ -52,7 +53,7 @@ V 2.2.0 (12/12/23)
5253
* CMake build structure (thanks: Wenda Zhou, Marco Barbone, Libin Lu)
5354
- Note: the plan is to continue to support GNU makefile and make.inc.* but
5455
to transition to CMake as the main build system.
55-
- CI workflow using CMake on 3 OSes, 2 compilers each, PR #382 (Libin Lu)
56+
- CI workflow using CMake on 3 OSes, 2 compilers each, PR #382 (Libin Lu)
5657
* Docs: new tutorial content on iterative inverse NUFFTs; troubleshooting.
5758
* GitHub-facing badges
5859
* include/finufft/finufft_eitherprec.h moved up directory to be public (bea316c)

test/README

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ OpenMP static scheduling for rand-# generation means that the test data should
99
be reproducible (non-stochastic). Reordering of thread ops in FINUFFT itself
1010
leads to machine-rounding sized variations only.
1111

12-
These CPU test executables have suffix "f" fior single precision, else double.
12+
These CPU test executables have suffix "f" for single precision, else double.
1313
The source codes do not have the suffix:
1414

1515
basicpassfail{f} : basic double and single-prec smoke tests of the math.
@@ -22,13 +22,8 @@ finufft{1,2,3}dmany_test{f}: accuracy/speed tests for vectorized transforms,
2222
in a given dimension. Types 1, 2, and 3 are tested.
2323
(exit code 0 is a pass).
2424
Call with no arguments for argument documentation.
25-
finufft3dkernel_test{f} : test of the kernel evaluation methods.
26-
Only 3D NUFFT are tested.
27-
Types 1, 2, and 3 are tested.
28-
It requires Nmodes1 Nmodes2 Nmodes3 Nsrc
29-
sizes of the 3d grid and the number of sources.
30-
Optional arguments are the tolerance, debug flags,
31-
sort flag and upsampfac.
25+
finufft3dkernel_test{f} : test kerevalmeth=0,1 give same answer within tol.
26+
Types 1, 2, and 3 are tested, in d=3 only.
3227
(exit code 0 is a pass).
3328
dumbinputs{f} : test of edge cases, invalid inputs, and plan interface.
3429
No arguments needed (exit code 0 is a pass).

test/check_finufft.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
# Barnett 3/14/17. numdiff-free option 3/16/17. simpler, dual-prec 7/3/20,
1616
# execs now have exit codes, removed any numdiff dep 8/18/20
17-
# removed diff 6/16/23.
17+
# removed diff 6/16/23. Added kerevalmeth=0 vs 1 test 7/8/24.
1818

1919
# precision-specific settings
2020
if [[ $1 == "SINGLE" ]]; then
@@ -93,6 +93,12 @@ T=finufft3dmany_test$PRECSUF
9393
E=${PIPESTATUS[0]}
9494
if [[ $E -eq 0 ]]; then echo passed; elif [[ $E -eq $SIGSEGV ]]; then echo crashed; ((CRASHES++)); else echo failed; ((FAILS++)); fi
9595

96+
((N++))
97+
T=finufft3dkernel_test$PRECSUF
98+
./$T$FEX 20 50 30 1e3 $FINUFFT_REQ_TOL 2>$DIR/$T.err.out | tee $DIR/$T.out
99+
E=${PIPESTATUS[0]}
100+
if [[ $E -eq 0 ]]; then echo passed; elif [[ $E -eq $SIGSEGV ]]; then echo crashed; ((CRASHES++)); else echo failed; ((FAILS++)); fi
101+
96102
((N++))
97103
T=dumbinputs$PRECSUF
98104
./$T$FEX 2>$DIR/$T.err.out | tee $DIR/$T.out

test/finufft3dkernel_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using namespace std;
55
using namespace finufft::utils;
66

77
const char *help[] = {
8-
"Tester for FINUFFT in 3d, all 3 types, either precision.",
8+
"Test spread_kerevalmeth=0 & 1 match, for 3 types of 3D transf, either prec.",
99
"Usage: finufft3dkernel_test Nmodes1 Nmodes2 Nmodes3 Nsrc",
1010
"\t[tol] error tolerance (default 1e-6)",
1111
"\t[debug] (default 0) 0: silent, 1: text, 2: as 1 but also spreader",

0 commit comments

Comments
 (0)