FFTW, MKL, CUFFT and USE_GPU

I notice there’s quite a few “accelerator” type options for ITK builds, but the documentation regarding what they do/impact is very sparse to non-existent.

Can anyone point me at some docs, or enlighten me as to how much benefit I can actually expect if I go about flipping these switches on?

FFTW, MKL, cuFFT are all helpful if your processing is FFT-based. Here are some benchmarks @dzenanz did with ITKMontage:

Great. I’m a fairly high-level user of the ITK functions, how do I dig down to determine whether what I’m using is FFT-based :slight_smile:

The module a class located in will have ITKFFT as its dependency, and this is displayed in the Doxygen documentation. For example,

https://itk.org/Doxygen/html/group__Montage.html

1 Like

Thanks @matt.mccormick.

I see there’s also the GPU filters, but it looks like those aren’t drop-in in the sense you need to change your code to use them. Are you aware of any benchmarks there?

There is more work required with the GPU infrastructure for modernization, benchmarking, and to allow drop-in replacements.