Vorwort
Ein Versuch, die Leistung von Prozessoren auf heterogenen Architekturen x86-64, e2k (Elbrus), Mips und Arm zu vergleichen.
Alle Tests sind in C-Sprache geschrieben (aus Quellcodes, die ich nicht geändert oder optimiert habe) und werden für eine bestimmte Architektur unter Verwendung eines bestimmten Compilers für diese Architektur kompiliert. Tests werden auf verschiedenen Distributionen von Linux-Betriebssystemen durchgeführt. Die Ergebnisse können sowohl vom Typ und der Version des Compilers als auch vom Optimierungsmodus beeinflusst werden. Auch auf diese Weise können Sie die Leistung von Prozessoren auf verschiedenen Architekturen grob vergleichen.
PS: Ich weiß, dass die meisten Tests für sehr alte Computer sind, aber sie funktionieren überall. Welches ist sogar sehr gut.
Arten von Architekturen verglichener Prozessoren
CISC
CISC (Complex Instruction Set Computing) ist eine Architektur, bei der ein kleiner Satz von Registern, Befehlen unterschiedlicher Länge und Operationen von einem Befehl codiert wird.
RISC
RISC (Reduced instruction set computing) — , (, 32 ), . .
VLIW
VLIW (very long instruction word) — . , . , . , .
x86-64 (ia32/x86/i386/amd64/EM64T/Intel/AMD)
x86 — CISC , Intel, . 32- Intel 386. : Intel, AMD VIA ( - Zhaoxin).
ARM
ARM — RISC ARM Limited 80 . 32- ARM : armv6 (ARM1136J(F)-S), armv7 (Cortex A9, Cortex A15), armv8 (CortexA53, CortexA57, Cortex A72 ). , , , . .
MIPS
MIPS — RISC , MIPS Computer Systems. ARM , , .. - ARM . MIPS , , Play Station 1. : 32- MIPS32 64- MIPS64.
E2K (Elbrus 2000/)
VLIW
Dhrystone
Dhrystone — , Reinhold P. Weicker 1984 .
, 2.1 , .
VAX Dhrystones , 1 VAX DMIPS = Dhrystones 1757.
Whetstone
Whetstone — , Harold Curnow 1972 Fortran.
C Roy Longbottom. MWIPS,
MOPS ( ) MFLOPS ( ).
: ,
, , , .
Whetstone JS ( NodeJS) C# ( Mono, .Net Framework Dotnet Core), Java.
Whetstone MP — Whetstone.
LINPACK
LINPACK — , Jack Dongarra Fortran 70 , C.
, () ().
Linpack 100x100 float.
.
C. 2009 Shay Gal-On EEMBC
: ( ), ( ), (, ), CRC.
Memspeed
Memspeed — 3 , 64- , 32- and 32- 2 :
- r = r + x [m] * y[m] (Integer + y [m])
- x[m] = x[m] + y[m]
- x[m] = y[m]
Livermore Loops
, 1970, 14 Fortran. 24 1980'. MFLOPS.
. — , 24 3 Do-loop , .
MP MFLOPS
MP MFLOPS — , .
x[i] = (x[i] + a) * b - (x[i] + c) * d + (x[i] + e) * f
2, 8 32 1 . 0.1, 1 10 4 .
.
Scimark 2
SciMark 2 — C . 5 : FFT ( ), Gauss-Seidel relaxation ( — ), Sparse matrix-multiply ( ), Monte Carlo integration ( -), LU factorization (LU-).
x86 (i386) 86-64 (amd64):
armv6 (armel), armv7 (armhf), armv8 (aarch64):
e2k (Elbrus 2000) (v3, v4, v5):
MIPS :
, .
Dhrystone
Dhrystone 1 :
Dhrystone, :

Dhrystone, 1 :

Dhrystone, Core i7-2600:

, Dhrystone x86 arm . 1 8 (E8C) Cortex A72, Dhrystones 1 , 8 Atom Z8350 Dhrystones 1 . Baikal T1 Arm Cortex A9. 8, 8. , , .
Whetstone
Whetstone Single Precision,

Whetstone Single Precision,

Whetstone Single Precision, 1

Whetstone Single Precision, , 1

Whetstone Single Precision, Core i7-2600

Whetstone Single Precision, , Core i7-2600

, ARM v7 Cortex A9 Pentium III, 1 .
, ARM v8 Cortex A72 Core 2 Duo T9400 1 1 ,
Atom Z8350. , Pentium 4 (NetBurst)
, (Pentium III 1 ).
Core 2 Duo T9400 1 1 ARM v7 Cortex A72, .
Whetstone:
LINPACK 100x100 DP ()
LINPACK 1000x1000, High Performance LINPACK, LINPACK 100x100.
LINPACK 100x100 DP, ? : .
:
LINPACK 100x100 Double Precision,

LINPACK 100x100 Double Precision, 1

LINPACK 100x100 Double Precision, Core i7-2600

C Mflops' 1 1 .
ARM v7 Cortex A9 (Odroid X2), ARM v8 Cortex A53 (Raspberry PI 3, Orange Pi Win, Orange Pi PC2 ) , Pentium III, . ARM v8 Cortex A72 (Odroid N2, AWS Graviton [Alpine AL73400]) Core 2 Duo T9400 Atom Z8350 .
E2K ( : E1C+, E4C, E8C1, E8C2 ) ARM , Cortex A72, 1,5 — 2 Intel, AMD A6-3650 Core 2 Duo T9400. , Intel.
Coremark, ,

Coremark, ,

Coremark, , 1

Coremark, , 1

Coremark, , Core i7-2600

Coremark, , Core i7-2600

1 ARM (Cortex A9, Cortex A53) 3 Intel (Core i7-2600 ),
ARM (Cortex A9, Cortex A53) Atom Z8350, Core 2 Duo T9400 AMD A6-3650. Baikal T1 Atom Z8350, Core 2 Duo T9400 AMD A6-3650,
Atom Z8350.
Memspeed ()
(x[i] = x[i] + a * y[i])
(x[i] = x[i] + y[i])
(x[i] = y[i])
Memspeed, - ,

Memspeed, ,

Memspeed, ,

, , .
ARM (Cortex A9, Cortex A53) , AWS Graviton ( , ).
Intel ( 3 ). 8
8 , DDR4-2400.
MP MFLOPS
, :
2
x[i] = (x[i]+a)*b;
8
x[i] = (x[i]+a)*b-(x[i]+c)*d+(x[i]+e)*f;
32
x[i] = (x[i]+a)*b-(x[i]+c)*d+(x[i]+e)*f-(x[i]+g)*h+(x[i]+j)*k-(x[i]+l)*m+(x[i]+o)*p-(x[i]+q)*r+(x[i]+s)*t-(x[i]+u)*v+(x[i]+w)*y;
MP MFLOPS,

MP MFLOPS, , 2 ops/w

MP MFLOPS, , 8 ops/w

MP MFLOPS, , 32 ops/w

MP MFLOPS, , Core i7-2600

: ( VLIW).
8 378 ( 576) 32 . Core i7-2600 — 82.6 .
ARM 23.7 ( Cortex A72, Odroid N2), AWS Graviton — 117 , 16 .
Scimark 2 ()
Scimark 2, ,


ARM Cortex A9, Cortex A53 Intel Atom, Pentium 4.
ARM Cortex A72 Intel Core.
ARM, Intel Core -
, , , lcc .
P.S.
: e2k_chat ixbt, .
, ARM.
, .
ODS
- ,
- ,
- Independent Tests of Baikal-T1
MP MFLOPS
Liste der Elbrus Mnemonics