57 lines
933 B
Matlab
Executable File
57 lines
933 B
Matlab
Executable File
#!/usr/bin/octave --silent
|
|
|
|
nfrom = 128 ;
|
|
nto = 2048;
|
|
nstep = 128;
|
|
loops = 1;
|
|
|
|
|
|
arg_list = argv();
|
|
for i = 1:nargin
|
|
|
|
switch(i)
|
|
case 1
|
|
nfrom = str2num(arg_list{i});
|
|
case 2
|
|
nto = str2num(arg_list{i});
|
|
case 3
|
|
nstep = str2num(arg_list{i});
|
|
case 4
|
|
loops = str2num(arg_list{i});
|
|
|
|
endswitch
|
|
|
|
endfor
|
|
|
|
p = getenv("OPENBLAS_LOOPS");
|
|
if p
|
|
loops = str2num(p);
|
|
endif
|
|
|
|
printf("From %d To %d Step=%d Loops=%d\n",nfrom, nto, nstep, loops);
|
|
printf(" SIZE FLOPS TIME\n");
|
|
|
|
n = nfrom;
|
|
while n <= nto
|
|
|
|
A = single(rand(n,n)) + single(rand(n,n)) * 1i;
|
|
B = single(rand(n,1)) + single(rand(n,1)) * 1i;
|
|
start = clock();
|
|
|
|
l=0;
|
|
while l < loops
|
|
|
|
C = A * B;
|
|
l = l + 1;
|
|
|
|
endwhile
|
|
|
|
timeg = etime(clock(), start);
|
|
mflops = ( 4.0 * 2.0*n*n *loops ) / ( timeg * 1.0e6 );
|
|
|
|
st1 = sprintf("%dx%d : ", n,n);
|
|
printf("%20s %10.2f MFlops %10.6f sec\n", st1, mflops, timeg);
|
|
n = n + nstep;
|
|
|
|
endwhile
|