-
Notifications
You must be signed in to change notification settings - Fork 79
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
Deal with platforms that don't define single-precision fftw #179
Conversation
Seems the ci breaks for all the systems. |
Yea @lu1and10 -- I just put some more guards into the makefile to skip the single-precision translation units |
It looks like the problem is that the tests use the single-prec code ... If someone wants to put |
Hmm, I didn't know that single-prec FFTW was something that could be missing from a FFTW distribution! I guess libfftw3-single3 could be absent even though usually part of libfftw3. Looks like we'd need a new NOSINGLE makefile build flag which would:
We made an effort to group double vs single tasks in the makefile. So the makefile alone wouldn't be too hard, but would add another layer of messiness - plus it's the language interfaces I worry about. There are 5 language interfaces, each with own examples, and each has to be changed to have a NOSINGLE option. Also, would running a NOSINGLE build become part of the CI test, and/or our own makefile tests too? This is getting tricky, but that's what PRs are for I guess...:) |
@ahbarnett I have picked this up again, as we're running into this from time-to-time. I used the terminology from the FFTW3 docs: https://www.fftw.org/fftw3_doc/Installation-on-Unix.html where they use I have abandoned the automatic detection for single-precision libraries because: i) it would result in some nasty make code; ii) some systems might have multiple installs of FFTW3 (and makefiles that are too smart for their own good are usually a bad idea). In the spirit of point (ii) I am also adding I tested the no-single version and it seems to work fine. The C and Fortran interfaces should be fine. I can work on the python language interface (and the Julia wrappers are defined separately anyway, so we should be able to leave those as-is). That leaves Matlab -- I don't know Matlab all that well (only from my BSc days -- and that was many years ago) -- so I will need some help with that. |
2e637b9
to
0e5f3f3
Compare
to simplify by having makefile options to select single-prec and double-prec |
Hi, when using cmake this should be okay. Otherwise either using ducc0 or FINUFFT_FFTW_LIBRARIES=DOWNLOAD will make the code compile. Could you check? @JBlaschke |
This should be fixable via cmake or using DUCC. Also, we won't be able to maintain the extra makefile because we're about to remove the -DSINGLE compilation in favor of fully templated C++ code (de-macroize), #567 |
Some platforms (eg. Cori GPU at NERSC) don't provide single-precision fftw -- this RP doesn't add
-lfftw3f
if the corresponding*.so
isn't at$FFTW_DIR