[maemo-developers] [maemo-developers] Speed test with vfp (floating point) on N800

From: Klaus Rotter klaus at rotters.de
Date: Sun Feb 11 22:55:52 EET 2007
Hi folks,

I was very interesseted in the floating point copro in the N800 cpu and 
did some tests with a progamm which calculates the mandelbrod set and 
outputs it via SDL. I put this program online on 
bomberman.garage.maemo.org. No installer, you have to run the benchmarks 
on xterm or via ssh (so did I).

// Results of Mandelbrot set on N800 800x480 pixels, 100 interations
// real -1 to 2
// imag	-1.3 to 1.2

// dbl - uses doubles
// flt - uses floats
// vfp - compiled with "-mfpu=vfp -mfloat-abi=softfp"

// All binarys are compiled with -O2

// Results with full PixelDraw and SDL_Update every pixel
./mandel_armel_dbl.bin - Time: 178.284 seconds
./mandel_armel_dbl_vfp.bin - Time: 151.816 seconds
./mandel_armel_flt.bin - Time: 169.486 seconds
./mandel_armel_flt_vfp.bin - Time: 152.148 seconds

// Results with full PixelDraw and _NO_ SDL_Update.
./mandel_armel_dbl.bin - Time: 26.377 seconds
./mandel_armel_dbl_vfp.bin - Time: 1.808 seconds
./mandel_armel_flt.bin - Time: 19.813 seconds
./mandel_armel_flt_vfp.bin - Time: 1.709 seconds

// Results without any Drawing
./mandel_armel_dbl.bin - Time: 26.525 seconds
./mandel_armel_dbl_vfp.bin - Time: 1.672 seconds
./mandel_armel_flt.bin - Time: 19.647 seconds
./mandel_armel_flt_vfp.bin - Time: 1.601 seconds

// Results with full PixelDraw and SDL_Update only every column
./mandel_armel_dbl.bin - Time: 27.512 seconds
./mandel_armel_dbl_vfp.bin - Time: 2.447 seconds
./mandel_armel_flt.bin - Time: 20.689 seconds
./mandel_armel_flt_vfp.bin - Time: 2.451 seconds

What could that mean? First, SDL_Update is _very_ expensive. In the 
first try, I call SDL_Update just for every Pixel 
(SDL_Update(screen,x,y,1,1) and it slows down execution about six times, 
the vfp about 80 times. So I think there must be a kind of sync inside 
the SDL_Update function. If I update only every column, the speed loss 
is only about 80%.

Vfp float can give a speed increase about factor 10 and more. And there 
is not much difference between vfp float and double.


Klaus Rotter * klaus <at> rotters <dot> de * www.rotters.de

More information about the maemo-developers mailing list