مقدمة
محاولة لمقارنة أداء المعالجات في البنيات غير المتجانسة x86-64 ، e2k (Elbrus) ، mips and arm.
تتم كتابة جميع الاختبارات بلغة C (مأخوذة من رموز المصدر التي لم أقم بتعديلها أو تحسينها) ويتم تجميعها من أجل هندسة محددة باستخدام مترجم محدد لهذه البنية ويتم إجراء الاختبارات على توزيعات مختلفة من أنظمة تشغيل Linux. يمكن أن تتأثر النتائج بكل من نوع وإصدار المترجم ، وكذلك وضع التحسين. على الرغم من أنه حتى بهذه الطريقة ، يمكنك مقارنة أداء المعالجات تقريبًا ببنى مختلفة.
ملاحظة: أعرف أن معظم الاختبارات لأجهزة الكمبيوتر القديمة جدًا ، لكنها تعمل في كل مكان. وهو أمر جيد للغاية.
أنواع معماريات المعالجات المقارنة
CISC
CISC (حوسبة مجموعة التعليمات المعقدة) هي بنية يتم فيها تشفير مجموعة صغيرة من السجلات والأوامر بأطوال مختلفة والعمليات بواسطة أمر واحد.
RISC
RISC (حوسبة مجموعة التعليمات المخفضة) هي بنية معالج يتم فيها تبسيط التعليمات ولها طول ثابت (على سبيل المثال ، 32 بت) ، مما يحسن الأداء. لديها عدد كبير من السجلات.
فليو
VLIW (كلمة تعليمات طويلة جدًا) - بنية المعالج بتعليمات كبيرة جدًا. تحتوي إحدى التعليمات على العديد من الإرشادات البسيطة التي يمكن تنفيذها بواسطة وحدات المعالج المختلفة. كل هذا يبسط بشكل كبير العمارة ، لكنه يعقد المجمع. يمكن أن تؤدي التعليمات البرمجية غير الفعالة إلى إنشاء تعليمات غير مكتملة ، مما يقلل بشكل كبير من أداء البرنامج.
وصف معماريات المعالجات المقارنة
الإصدار 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
قائمة استذكار Elbrus