Nachdem ich mal wieder mit den RPi beschäftigt habe, habe ich einen besseren Performancetest gefunden. [1]
Der RPi macht mit 700 MHz wie hier beschrieben um 43000 KFLOPS mit Rasbian.
Raspian:
Code: Alles auswählen
./linpack
Enter array size (q to quit) [200]:
Memory required: 315K.
LINPACK benchmark, Double precision.
Machine precision: 15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:
Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
16 0.56 89.29% 1.79% 8.93% 43084.967
32 1.11 89.19% 4.50% 6.31% 42256.410
64 2.22 88.74% 4.05% 7.21% 42666.667
128 4.44 89.19% 2.70% 8.11% 43084.967
256 8.87 88.61% 3.83% 7.55% 42874.797
512 17.74 88.67% 2.99% 8.34% 43243.952
Debian Armel:
Code: Alles auswählen
root@debian-armel:~# ./linpack
Enter array size (q to quit) [200]:
Memory required: 315K.
LINPACK benchmark, Double precision.
Machine precision: 15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:
Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
4 0.71 91.55% 2.82% 5.63% 8199.005
8 1.42 91.55% 2.11% 6.34% 8260.652
16 2.84 90.85% 2.82% 6.34% 8260.652
32 5.68 91.20% 2.99% 5.81% 8214.330
64 11.35 90.75% 2.82% 6.43% 8276.208
Man sieht das das ABI sehr deutlich was ausmacht. zwischen 8200 KFLOP und 43000 KFLOP ist schon was. Faktor 5. Wow!
Hier noch etwas Offtopic: Vergleich auf dem i7:
Code: Alles auswählen
cc -O3 -o linpack linpack.c -lm
./linpack
Enter array size (q to quit) [200]:
Memory required: 315K.
LINPACK benchmark, Double precision.
Machine precision: 15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:
Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
1024 0.74 75.68% 4.05% 20.27% 2383548.023
2048 1.48 83.11% 5.41% 11.49% 2147012.723
4096 2.95 86.10% 2.03% 11.86% 2163528.205
8192 5.91 82.06% 2.37% 15.57% 2254578.490
16384 11.79 83.12% 2.63% 14.25% 2225587.867
und nochmal mir -march=native
Code: Alles auswählen
cc -O3 -march=native -o linpack linpack.c -lm
./linpack
Enter array size (q to quit) [200]:
Memory required: 315K.
LINPACK benchmark, Double precision.
Machine precision: 15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:
Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
1024 0.82 75.61% 3.66% 20.73% 2163528.205
2048 1.16 75.00% 3.45% 21.55% 3090754.579
4096 2.33 79.83% 1.72% 18.45% 2960617.544
8192 4.65 75.91% 2.80% 21.29% 3073865.209
16384 9.31 78.09% 2.04% 19.87% 3016178.731
32768 18.63 77.13% 2.42% 20.45% 3036530.814
Das -march=native so viel ausmacht hätte ich nicht erwartet. Auf dem RPi habe ich den Schalter -march=native auch versucht, nur hier akzeptiert der gcc es nicht.
Vielleicht kannst du den linpack Test auf dem Pogoplug auch ausführen. Letztens hatte doch jemand auch ein Beagleboard ...
Gruß
schorsch
[1]
http://elinux.org/RPi_Performance