libdspl-2.0/performance/bin/octave/fft_cmplx_performance.m

71 wiersze
890 B
Matlab

clear all; close all; clc;
N = 262144*16;
x = randn(N,1) + 1i * randn(N,1);
k = 4;
s = N;
for j = 1:21
z = x(1:s);
t = tic();
for i = 1:k
y = fft(z);
endfor
dt = toc(t) / k;
mflops(22-j) = 5 * s * log2(s) / dt / 1E6 ;
size(22-j) = s;
fprintf("size = %8d Mflops = %12.3f\n", s, mflops(22-j));
k = k * 1.7;
s = s / 2;
endfor
dspl = [1204.630392
1283.970612
1586.347958
1707.107097
1866.109831
1837.307509
2366.785829
2302.925874
2388.456514
2113.451546
3090.904615
2979.596190
2685.155556
2053.760000
3723.946667
3195.618462
2328.221538
1786.533333
7288.960000
4646.700000
2633.120000];
python = [2390.741
2597.527
2841.191
3066.652
3092.187
3444.710
3633.320
4333.845
5316.897
5201.486
4608.231
4481.357
3876.925
2961.753
2435.427
1344.871
606.953
298.559
120.772
50.369
17.033];
plot(log2(size), mflops,log2(size), dspl, log2(size), python)