Julia bindings for VkFFT.
using Pkg
Pkg.add("VkFFTCUDA")
Pkg.build("VkFFTCUDA")
For now, note that you must build VkFFTCUDA. You will also need to install the CUDA toolkit.
This package allows you to do FFTs on CuArrays using VkFFT instead of cuFFT. This can result in significant speed-ups:
using CUDA, AbstractFFTs, VkFFTCUDA
x = CuArray(ComplexF32.(collect(reshape(1:60, 3, 4, 5))))
ifft(fft(x)) ≈ x # Should return true
For further documentation, refer to the documentation for AbstractFFTs.jl as VkFFTCUDA.jl uses this API.
For arrays with more than 4 dimensions, doing FFTs on more than one of the axes will lead to erroneous results. This is not a problem with VkFFT, but rather with the bindings that will be fixed soon™.