The 2D FFT / IFFT are taken from the altera opencl examples page and is treated as a black box.
The link to the example is here:
https://www.altera.com/support/support-resources/design-examples/design-software/opencl/fft-2d.html I'm not too familiar with the inner workings of the example but it uses 3 kernels fetch, fft2d, and transpose and repeats these operations a total of two times on a 1D FFT, one along the rows and again along the columns.
I believe it implement the Cooley–Tukey FFT algorithm using butterflys and twiddle factors for the 1D FFT.
For the IFFT since it is along the rows first and along the columns, I suppose I can try and transpose the data before sending it back into the IFFT and give that a try.
As for the scale, it is determined by the LOGN define which is defaulted to 10 so it would be performing on a 1024x1024 matrix.
EDIT:
Transposing before sending it into the IFFT doesn't seem to yield the expected result