-
Notifications
You must be signed in to change notification settings - Fork 2.4k
FFTW2/FFTW3 providers #9384
Description
The FFTW3 API is supported by Intel's MKL and IBM's ESSL (not sure about AMCL). There may be other vendor libraries that support the FFTW3 API. Similar to BLAS, LAPACK, and MPI being providers, I propose that fftw3 also be a provider. I am less sure of support for the FFTW2 interface, since its really old and there are fewer vendor libraries that support it... but there may old FFTW2 wrappers that I am not aware of.
Rationale
Performance critical applications will not want to make use of a plain vanilla FFTW3 install if they can get substantially greater performance from a vendor optimization library.
Description
I think we need to make FFTW3 a provider. Perhaps this is over engineering, since my guess is that over 90% of the use case involve intel-mkl. Probably the same thing can be accomplished by just specifying that intel-mkl as a dependency instead of fftw as a dependency.
Additional information
The impact of providing fftw3 as a provider is mainly to science codes that require FFTW. Right now the main vendor that supports FFTW3 transparently (i.e. without extra build options or jumping through hoops) is Intel.