Van egy C progim, amely egy home projektem része, és most hozzájutottam egy RPi 2-höz, gondoltam lemérem mennyivel gyorsabb. A táblázatban idő van másodpercekben.
ASM:
Threads | RPi | RPi 2 | speedup
---------------------------------
1 | 29.24 | 7.65 | 3.82
2 | 28.87 | 3.91 | 7.38
3 | 28.91 | 2.66 | 10.87
4 | 28.92 | 2.03 | 14.24
=================================
PLAIN:
Threads | RPi | RPi 2 | speedup
---------------------------------
1 | 46.43 | 20.80 | 2.23
2 | 46.01 | 10.55 | 4.36
3 | 45.96 | 7.08 | 6.49
4 | 45.83 | 5.36 | 8.55
=================================
A felső kézi ASM /USADA8/ kódot tartalmaz, az alsó meg ugyanaz a funkcionalitás, csak C-ben. Most jön a WTF: 4 szálon a gyorsulás 14-szeres, és egy szálon relatíve a 3,82 még durvább. Többször lemértem, nem hiba. A GCC ugyan más verziójú, de ez nem számít, mert a Pi 1 által fordított kód ugyanolyan gyorsan fut le, mintha a Pi 2-őn fordítottam volna. Valakinek van ötlete?