Préface
Une tentative de comparer les performances des processeurs sur des architectures hétérogènes x86-64, e2k (Elbrus), mips et arm.
Tous les tests sont écrits en C (extraits de codes sources que je n'ai pas modifiés ou optimisés) et sont compilés pour une architecture spécifique en utilisant un compilateur spécifique pour cette architecture et les tests sont effectués sur différentes distributions de systèmes d'exploitation sur le noyau Linux. Les résultats peuvent être affectés à la fois par le type et la version du compilateur, ainsi que par le mode d'optimisation. Bien que même de cette manière, vous pouvez comparer grossièrement les performances des processeurs sur différentes architectures.
PS: Je sais que la plupart des tests concernent des ordinateurs très anciens, mais ils fonctionnent partout. Ce qui est même très bon.
Types d'architectures de processeurs comparés
CISC
Le CISC (Complex Instruction Set Computing) est une architecture dans laquelle un petit ensemble de registres, des commandes de différentes longueurs, des opérations sont codées par une seule commande.
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 Benchmark, version 2.1 Dhrystone Benchmark, version 2.1](https://habrastorage.org/getpro/habr/post_images/4da/a8c/487/4daa8c48724b5acf4f88eda6b784d94c.svg)
Dhrystone, 1 :
![Dhrystone Benchmark, version 2.1, par 1 MHz Dhrystone Benchmark, version 2.1, par 1 MHz](https://habrastorage.org/getpro/habr/post_images/ec4/227/5e9/ec42275e9ba55c9b76e2f7269d1ff5ce.svg)
Dhrystone, Core i7-2600:
![Dhrystone Benchmark, Version 2.1, Relative Dhrystone Benchmark, Version 2.1, Relative](https://habrastorage.org/getpro/habr/post_images/9a5/269/cce/9a5269cce560bd9a5f22eee76e16b573.svg)
, 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,
![Wheatstone simple précision Wheatstone simple précision](https://habrastorage.org/getpro/habr/post_images/527/7a3/27b/5277a327b61b86aa9ccd02d86d9d4395.svg)
Whetstone Single Precision,
![Filetage multi précision MP Whetstone MP Whetstone Precision Multi Core](https://habrastorage.org/getpro/habr/post_images/a4d/41e/97e/a4d41e97e50256a3595ca9520fff36b2.svg)
Whetstone Single Precision, 1
![Whetstone Single Precision, Per 1 MHz Whetstone Single Precision](https://habrastorage.org/getpro/habr/post_images/ea5/f31/fa8/ea5f31fa85bf7326cb683391900b1ea1.svg)
Whetstone Single Precision, , 1
![MP Whetstone Precision Multi Thread, Per 1 MHz MP Whetstone Precision Multi Core, Per 1 MHz](https://habrastorage.org/getpro/habr/post_images/e1e/c9d/fb0/e1ec9dfb0afc436b2280a36044cdf9af.svg)
Whetstone Single Precision, Core i7-2600
![Whetstone Single Precision Single Thread Relative Whetstone Single Precision](https://habrastorage.org/getpro/habr/post_images/331/4cb/21a/3314cb21a89b41067ac0ae057e0e2117.svg)
Whetstone Single Precision, , Core i7-2600
![MP Whetstone Precision Multi Thread Relative MP Whetstone Precision Multi Core Relative](https://habrastorage.org/getpro/habr/post_images/d81/a75/499/d81a7549907ce59d147e0552447eeb31.svg)
, 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 Linpack 100x100 Double Precision](https://habrastorage.org/getpro/habr/post_images/e4b/f80/b88/e4bf80b8801f984d38f28bac48f3d125.svg)
LINPACK 100x100 Double Precision, 1
![Linpack 100x100 Double Precision, Per 1 MHz Linpack 100x100 Double Precision, Per 1 MHz](https://habrastorage.org/getpro/habr/post_images/197/cbc/365/197cbc365bfe7afc1bcdd9655ece826b.svg)
LINPACK 100x100 Double Precision, Core i7-2600
![Linpack 100x100 Double Precision, Relative to Core i7-2600 Linpack 100x100 Double Precision, Relative to Core i7-2600](https://habrastorage.org/getpro/habr/post_images/6a5/658/407/6a56584077e38c05dbdbb1dba33779cd.svg)
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](https://habrastorage.org/getpro/habr/post_images/f74/44f/0da/f7444f0da7190b3a4c1551501d8d9f25.svg)
Coremark, ,
![Coremark Multi Thread Coremark Multi Thread](https://habrastorage.org/getpro/habr/post_images/20c/00f/e4f/20c00fe4f89674b48acdb4cce770dec9.svg)
Coremark, , 1
![Coremark, Per 1 MHz Coremark, Per 1 MHz](https://habrastorage.org/getpro/habr/post_images/6ad/55e/249/6ad55e249352da7f7b09112db4af95c2.svg)
Coremark, , 1
![Coremark Multi Thread, Per 1 MHz Coremark Multi Thread, Per 1 MHz](https://habrastorage.org/getpro/habr/post_images/156/4f2/7fa/1564f27fa4e3855c65b1cd6cdd4114bb.svg)
Coremark, , Core i7-2600
![Coremark, Relative to Core i7-2600 Coremark, Relative to Core i7-2600](https://habrastorage.org/getpro/habr/post_images/b95/9c0/a65/b959c0a653531696b8838f23cfb53f07.svg)
Coremark, , Core i7-2600
![Coremark Multi Thread, Relative to Core i7-2600 Coremark Multi Thread, Relative to Core i7-2600](https://habrastorage.org/getpro/habr/post_images/72b/975/965/72b975965134d0457cfa26e05fb2d530.svg)
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 Multiply Add Assign Memspeed Multiply Add Assign](https://habrastorage.org/getpro/habr/post_images/e09/b92/05a/e09b9205a194c9459b4404bfb9f12932.svg)
Memspeed, ,
![Memspeed Add Assign Memspeed Add Assign](https://habrastorage.org/getpro/habr/post_images/a96/ab8/eb6/a96ab8eb6047302cc83b721b88598cc6.svg)
Memspeed, ,
![Memspeed Assign Memspeed Assign](https://habrastorage.org/getpro/habr/post_images/b73/b3f/1a2/b73b3f1a2480273f8061bcada769f913.svg)
, , .
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 MP MFLOPS](https://habrastorage.org/getpro/habr/post_images/358/6f7/aa2/3586f7aa268d75d0595920882a4eaf0c.svg)
MP MFLOPS, , 2 ops/w
![MP MFLOPS, 2 ops/w MP MFLOPS, 2 ops/w](https://habrastorage.org/getpro/habr/post_images/c0a/6ff/65e/c0a6ff65e378eaec3048525b85cef456.svg)
MP MFLOPS, , 8 ops/w
![MP MFLOPS, 8 ops/w MP MFLOPS, 8 ops/w](https://habrastorage.org/getpro/habr/post_images/b78/3d1/740/b783d1740bc18d5f0c14214245070b63.svg)
MP MFLOPS, , 32 ops/w
![MP MFLOPS, 32 ops/w MP MFLOPS, 32 ops/w](https://habrastorage.org/getpro/habr/post_images/bbf/c2f/27d/bbfc2f27d1744c14d1e1c8df250dc1dd.svg)
MP MFLOPS, , Core i7-2600
![MP MFLOPS MP MFLOPS](https://habrastorage.org/getpro/habr/post_images/ca0/f47/726/ca0f47726d9627395fba8e4a45b07e97.svg)
: ( 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, ,
![Scimark 2 Scimark 2](https://habrastorage.org/getpro/habr/post_images/905/4d1/6ca/9054d16cad92a9c8f3711fc4fa807a69.svg)
![, Core i7-2600 Performance, Relative to Core i7-2600](https://habrastorage.org/getpro/habr/post_images/0a2/014/8e0/0a20148e0c619bbab844317e001dbd2e.svg)
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 des mnémoniques d'Elbrus