Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add pocketfft_cxx and duccfft benchees #5

Merged
merged 5 commits into from
Jan 21, 2022
Merged

add pocketfft_cxx and duccfft benchees #5

merged 5 commits into from
Jan 21, 2022

Conversation

mreineck
Copy link
Contributor

These two benchees complement the recent addition of pocketfft, since they have evolved from it.

pocketfft_cxx is a C++11 port of pocketfft with added multi-D transforms, vectorization and multithreading; it is currently used by scipy and jax and will be used by the next release of Eigen.

duccfft is a further evolution of pocketfft_cxx written in C++17 with many incremental improvements. The main goal was to make large, multi-D transforms faster (beyond, roughly, 1024x1024).

For compiling pocketfft, pocketfft_cxx and duccfft the following compiler flags (or their compiler-specific equivalents) should be used:

CFLAGS=-O3 -ffast-math -march=native
CXXFLAGS=-O3 -ffast-math -march=native -std=c++17

Accuracy should be very good (comparable with FFTW).
Performance is OK in general and good for large multi-D transforms.

NOTE: I'm currently disabling AX_CC_MAXOPT in configure.ac since I found no other way to pass my own flags to the benchees; see #4. This probably needs to be addressed before merging.

@stevengj
Copy link
Collaborator

Rebased to fix conflict.

@stevengj stevengj merged commit b2c437a into FFTW:master Jan 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants