Followup: setting FFTW.set_num_threads(2) (my machine only has two cores) 
and using rfft closes the gap somewhat, but there's still a substantial 
difference.

julia> R = rand(5000,5000);

julia> @time rfft(R);

  1.736385 seconds (99 allocations: 190.816 MB, 0.95% gc time)


julia> R = rand(512,512);

julia> @time rfft(R);

  0.018692 seconds (93 allocations: 2.012 MB)



On Friday, June 17, 2016 at 11:56:44 AM UTC-7, Logan Williams wrote:
>
> Hi,
>
> I'm finding that a 2D FFT in Julia is an order of magnitude slower than 
> GNU Octave. Does anyone know why this is happening?
>
> Thanks,
> Logan
>
> In Octave:
>
> >> R = rand(512,512);
> >> tic; fft2(R); toc;
> Elapsed time is 0.00377011 seconds.
>
> In Julia:
>
> julia> R = rand(512,512);
>
> julia> @time fft(R);
>
>   0.042149 seconds (76 allocations: 8.003 MB)
>
>
> In Octave with non-power of 2 size:
>
>
> >> R = rand(5000,5000);
>
> >> tic; fft2(R); toc;
>
> Elapsed time is 0.556037 seconds.
>
>
> In Julia with non-power of 2 size:
>
>
> julia> R = rand(5000,5000);
>
> julia> @time fft(R);
>
>   6.212666 seconds (76 allocations: 762.943 MB, 1.17% gc time)
>

Reply via email to