-
Notifications
You must be signed in to change notification settings - Fork 90
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
Allow setting FFTW_EXHAUSTIVE #2131
Conversation
May sometimes make FFTs faster than the previously available FFTW_MEASURE setting.
The new option needs documenting in the manual. I'll do that before we merge. |
Do we want to deprecate the The issue with putting a namespace bout {
enum class FFT_FLAG;
FFT_FLAG BOUT_MAKE_FROMSTRING_NAME(FFT_FLAG)(const std::string& s);
}
BOUT_ENUM_CLASS(bout::FFT_FLAG, estimate, measure); but I can't see how to make it work in the macro without knowing the namespace name, i.e. |
BTW, the reason I worked out why the namespace wasn't working was I tried compiling with clang, which gave me this error:
whereas gcc gave me
Not quite as helpful as clang! |
There are other FFTW flags, so make naming more specific in case we ever want to use them.
Only keep fft_measurement_flag.
189de26
to
82c3607
Compare
ea3b323
to
05f8eb9
Compare
May sometimes make FFTs faster than the previously available FFTW_MEASURE setting.
Also uses a
BOUT_ENUM_CLASS()
for the option, which should help ensure that that doesn't get broken in future :-)Unfortunately the macros don't work inside the
bout::fft
namespace, I think due toFFT_FLAG
needing to be passed as a template parameter in various places. I don't understand why that didn't work though.Performance - FFTs seemed to be faster with the exhaustive flag on Marconi, but I haven't checked with BOUT++ yet. Having the option for the exhaustive flag can't hurt anyway.
Todo: