[arm-gnu] benchmark: arm-none-linux-gnueabi-2009q3_67 much slower in floating point operation than arm-none-linux-gnueabi-gcc 2009q1_203?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[arm-gnu] benchmark: arm-none-linux-gnueabi-2009q3_67 much slower in floating point operation than arm-none-linux-gnueabi-gcc 2009q1_203?



Hi,

I was trying to benchmark my beagleboard (revC) with emqbit's fft benchmark
tools:

article:
http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Why-ARMs-EABI-matters/
source code here:
http://svn.arhuaco.org/svn/src/emqbit/tools/emqbit-bench/

I modified the Makefile in order to use arm-none-linux-gnueabi-gcc:

=== Makefile ===
CC=arm-none-linux-gnueabi-gcc
CFLAGS:=-std=gnu99 -O3 -mfpu=neon -mfloat-abi=softfp -ffast-math
-mtune=cortex-a8 -mcpu=cortex-a8
LDFLAGS:=-lm

all: bench cfft

bench: distance.o

clean:
        rm -f bench cfft *.o
=============

Then I compiled the code under both version 2009q3_67 and 2009q1_203. The q3
is much more slower than q1 in "Distance with C code" case:

==== q3's output ====
16,     67.890198,      50.516529,
32,     71.079941,      53.051617,
64,     72.442558,      54.495312,
128,    75.101112,      55.325558,
256,    75.859520,      55.550907,
512,    76.034462,      55.922165,
1024,   76.154121,      56.025997,
2048,   76.561729,      55.945801,
4096,   76.310066,      55.834229,
8192,   72.476402,      54.069489,
16384,  71.376457,      53.746601,
32768,  68.838760,      52.336586,
65536,  62.960110,      49.533817,

==== q1's output ====
16,     150.082550,     50.052971,
32,     170.367416,     53.051617,
64,     186.896576,     54.798901,
128,    194.670303,     55.733562,
256,    199.026215,     56.216988,
512,    202.300598,     56.500332,
1024,   203.549530,     56.507896,
2048,   203.688477,     56.621536,
4096,   201.465118,     56.024357,
8192,   173.915771,     54.397377,
16384,  166.298325,     54.183308,
32768,  160.627457,     53.372360,
65536,  126.810081,     50.479710,

Any idea? I think I used wrong compile flags but I'm not sure about it.

Thanks,
Hui