Closed Byrth closed 4 years ago
I thought this is the problem https://github.com/JuliaMath/AbstractFFTs.jl was invented to solve. Couldn't the gradients defined here use that instead?
I guess there are also tests...
Extending AbstractFFTs and switching FFTW to be a test dependency would fix this issue, I believe.
I agree it'd be good to get rid of the binary/GPL dependencies (didn't know about MKL, that's even worse). If someone can switch us over to AbstractFFTs in a PR that'd certainly be appreciated.
I would volunteer to produce the PR, but I haven't used the FFT interfaces for Julia and don't want to break something by not understanding their nuances.
I wrote a implementation using AbstractFFTs a while ago when I needed the adjoints of fft plans as well. As far as I can tell it just needs to be merged, though perhaps the tests could be done more cleanly.
Merged and released in 0.4.13
Today I discovered that Zygote.jl lists FFTW.jl as a dependency. FFTW.jl, in turn, depends on FFTW_jll and MKL_jll (the two available backends).
The argument made on the FFTW.jl github page indicates that they believe users are not bound by the GPL license as long as they are using the MKL backend, but the default is FFTW and thus most users of the package and anything that depends on it are getting default upgraded to GPL.
Two questions, then:
If the answer is "convenient method extension" and "no," do you foresee any problems arising if I scrape it out of my fork? I'm only using my fork with Flux right now.