Pull to refresh
62.43
ГК ICL
Цифровые технологии для бизнеса

Первые тесты инженерной версии процессора Эльбрус-16С

Reading time 10 min
Views 62K

Появилась возможность протестировать инженерный процессор Эльбрус-16С и сравнить его с предыдущим процессором Эльбрус-8СВ.

Эта статья является продолжением моих предыдущих статей по бенчмаркам Эльбрусов:

Эльбрус-16С на архитектуре e2k-v6 является развитием процессора Эльбрус-8СВ (e2k-v5), который имеет 16 ядер на частоте 2 ГГц, поддержку аппаратной виртуализации, поддерживает до 4 ТБ оперативной памяти DDR4-3200, 32 линии PCIe 3.0.

Тестируемый процессор работает на материнской плате 1Э16С-mATX c двумя установленными модулями памяти DDR4 на частоте 2400.

Внимание: тестируется инженерный процессор с частично отключенным кешем, у серийного образца результаты должны быть лучше.

 Фото инженерной платы из интернета (на фото плата не моего экземпляра):

К результатам процессоров Эльбрус-16С и Эльбрус-8СВ добавляю процессор Intel Core i7-2600 для относительного сравнения.

Характеристики сравниваемых процессоров:

Эльбрус-16СВ

Эльбрус-8СВ

Core i7-2600

Семейство ISA

VLIW

VLIW

CISC

Архитектура

e2k

e2k

x86-64

Микроархитектура

elbrus-v6

elbrus-v5

Sandy Bridge

Частота (МГц)

2000

1500

3400*

Ядра; Потоки

16

8

4; 8

Техпроцесс (нм)

16

28

32

TDP (Вт)

130

80-90

95

Тип ОЗУ

DDR4-3200 (2400)

DDR4-2400

DDR3-1333

Год

2021

2018

2011

* — У Intel Core i7-2600 частота бустится, ядер 4, но 8 потоков HT.


Список компилируемых тестов (на языках С и C++):

  • Dhrystone, Whetstone, Linpack 100, Scimark 2, SuperPI

  • MP MFLOPS

  • TLB test, STREAM

  • HPL (High Performance Linpack)

  • 7zip встроенный бенчмарк

  • StockFish (встроенный тест шахматного движка)

  • Cpu Miner (minerd)

  • Рендеринг в Blender (Файл для теста)

  • Готовые результаты в SPEC 2006

Кроме того, я запускал тесты на языках программирования Java, C#, Python, PHP, Lua. Результаты: https://github.com/EntityFX/EntityFX-Bench/tree/master/results

Теперь сразу перейдём к сводной таблице с результатами.

Результаты

Компилируемые тесты

ВНИМАНИЕ: Сборка тестов производилась с подбором флагов оптимизации и использования профилировщика и на результаты влияет версия компилятора (я являюсь энтузиастом и собирал код своими силами и, надеюсь, МЦСТ смогут собрать более правильно). Архитектура Эльбруса предполагает, что вы будете оптимизировать производительность не только флагами сборки, но и менять сам код (для бенчмарков это запрещено делать).

Тест

Эльбрус-16C

Эльбрус-8СВ

Core i7-2600

Dhrystone [DMIPS] (1 поток)

8652

9077

22076

Whetstone [MWIPS] (1 поток)

2667

2269

5729

Whetstone MP [MWIPS]

42467

16495

31319

Linpack 100 [MFLOPS]

1831

1723

4302

Scimark 2 [Composite score] (1 поток)

923

908

2427

Coremark (1T;MT)

6162; 96873

5500; 43008 / 61871* (rtc x86-64)

22692; 119670

MP MFLOPS

1010040

381326

81745

HPL [GFLOPS] (1T;MT)

39;       561.6

32.3;    232.6

93.9 (MT)

7zip (Comp; Decomp; Tot) (MT)

19070; 33490; 26280 [v 16.02]

26039; 40040; 33039 [v 21.07]

8461; 13638; 11049

18024; 13363; 18664

STREAM (Copy; Scale; Add; Triad) [MB/s]

70389; 67256; 74444;
77148
(8 modules modules DDR4)

20090; 19408;21848;22284
(2 modules modules DDR4)

23097; 23137; 25578; 25643 (4 modules DDR4)

20860; 21838; 18512; 20452

SPEC 2006 INT

24

18

44.6

SPEC 2006 FP (1T)

30

22.5

Blender (RyzenGraphic_27) [min:sec]

1:08

2:32

1:18

StockFish [nodes/sec]

6193924

3123190

10860720

SuperPI [sec] (1 поток) (меньше – лучше)

2.77

3.76

1.81

Minerd [sha256d khash/s] (1T;MT)

8820; 141104

6840; 54714

5307; 21226

(Core i5-2500K)

Minerd [scrypt khash/s] (1T;MT)

11.52; 183.01

8.50; 68.24

19.54; 78.26

(Core i5-6500)

* — В нативном режиме Эльбрус-8СВ в тесте Coremark показывает в 1,5 раза хуже результаты чем в режиме бинарной трансляции x86-64 кода (этот бинарный транслятор называется RTC). На Эльбрус-16С такой проблемы больше нет.

Результаты всех тестов здесь: https://github.com/EntityFX/anybench/tree/master/results

Geekbench 5 в бинарной трансляции RTC

ID

Name

Platform

Architecture

Single-core Score

Multi-core Score

9622424

MCST Elbrus 4C (х86 compatibility mode) 4 CPUs Intel Pentium II/III 750 MHz (1 cores)

Linux 64

x86_64

74

374

3110803

MCST Elbrus 8C (х86 compatibility mode) Intel Pentium II/III 1299 MHz (1 cores)

Linux 64

x86_64

140

937

5537127

MCST Elbrus 8CB (х86 compatibility mode) Intel Pentium II/III 1549 MHz (1 cores)

Linux 64

x86_64

159

1100

12407301

MCST Elbrus 16C (х86 compatibility mode) Intel Pentium II/III 2000 MHz (1 cores)

Linux 64

x86_64

203

2821

3462610

Core i7-2600Intel Core i7-2600 3401 MHz (4 cores)

Windows 64

x86_64

720

2845

Подробнее

Разбираем результаты

Логи результатов можете смотреть здесь

Dhrystone

Dhrystone достаточно древний тест 80х годов, написан на C. Тестирует целочисленную арифметику и работу со строками. Результаты измеряются в Dhrystone/s и DMIPS. (DMIPS = Dhrystone/s делить на 1757).

Эльбрус-16С немного показал хуже результаты чем Эльбрус-8СВ. Скорее всего, проблема с оптимизациями компилятором LCC, с новой версией будет перепроверяться.

Whetstone

Тестирует арифметику с плавающей/фиксированной запятой, математические функции, ветвления, вызовов функций, присваиваний, работы с числами с фиксированной запятой, ветвлений. Результаты измеряются в MMIPS.

Эльбрус-16С показывает результаты кратные частоте (2000 / 1500).

Coremark

Современный тест, который должен заменить Dhrystone и Whetstone. Написан на C. Считает различные массивы, матрицы, сортировка и т. д. Предназначался для запуска на всём: от микроконтроллеров до мощных процессоров.

Эльбрус-16С показывает гораздо лучшие результаты чем Эльбрус-8СВ. На 8СВ результаты в бинарной трансляции выходили лучше, чем нативные.

MP MFLOPS

Эльбрус-16С значительно обгоняет 8СВ, набирая более 1 ТFlops в числах с плавующей запятой одинарной точности.

HPL

HPL – переносимый высокопроизводительный тест, который используется для суперкомпьютеров. Решает системы линейных уравнений, использует библиотеки BLAS и MPI . Результаты выдаёт в GFLOPS.

Cpu

Year

Freq

Cores

1 thread (GFLOPS)

Multithread  (GFLOPS)

Elbrus 2C+

2011

500

2

3.8

6.8

Elbrus 4C

2014

800

4

6

21.6

Elbrus 1C+

2015

1000

1

10

10.0

Elbrus 8C

2016

1300

8

13

96.00

Elbrus 8C

2016

1200

8

12

82.5

Elbrus 8CB

2018

1550

8

32.3

232.6

Elbrus 16C

2021

2000

16

39

561.6

Elbrus 2C3

2021

2000

2

39

70.2

Результаты HPL

7zip

Встроенный тест архиватора. Тест особо не параллелится, результаты примерно равные на этих процессорах (частота одинаковая).

Cpu

Year

Freq

Cores

Total MT

Comp Avr MT

Dec Avr MT

Total ST

Elbrus 8CB

2018

1500

8

12164

9975

14353

1894

Elbrus 8CB

2018

1550

8

11049

8461

13638

1651

Elbrus 8C

2016

1300

8

10865

8736

12994

1697

Elbrus 8C

2016

1200

8

9031

6619

11442

1391

Elbrus 16C

2021

2000

16

26280

19070

33490

1813

Elbrus 16C [7z 21.07]

2021

2000

16

33039

26039

44040

2556

Elbrus 2C3

2021

2000

2

3448

2499

4396

1894

Elbrus 1C+

2015

1000

1

1277.5

1301

1254

1277.5

Elbrus 4C

2014

800

4

2793

2065

3520

849

Elbrus 2C+

2011

500

2

1077

878

1276

645

Elbrus R2000

2018

2000

8

8728

5896

11560

1246

Elbrus R1000

2011

1000

4

2514

1959

3069

692

Baikal M1000

2019

1500

8

9868

8483

11252

1513

Baikal S

2022

2000

48

90039

75097

1295732

2378

Huawei Kunpeng 920

2019

2600

48

126143

112386

139899

3177

Huawei Kunpeng 920

2019

2600

96

204155

153863

254447

3177

Apple M1

2020

3100

8

33034

38166

27903

4458

 

 

 

 

 

 

Celeron N3350 *

2016

1100

2

3966

3568

4364

1961

Core i7 2600

2011

3400

8

16601

16179

17024

3773

Core(TM) i7-7820X **

2017

3600

16

47733

48501

46965

4982

Результаты 7zip

Больше результатов

Blender

Рендеринг сцены

Cpu

Freq

Cores

Year

Time (seconds)

Time

Core i7 2600

3400

8

2011

80

0:01:20

Elbrus 4C

750

4

2014

811

0:13:31

Elbrus 4C x4

750

16

2014

223

0:03:43

Elbrus 4C

800

4

2014

600

0:10:00

Elbrus 1C+

1000

1

2015

1916

0:31:56

Elbrus 8C

1300

8

2016

172

0:02:52

Elbrus 8C

1200

8

2016

216

0:03:36

Elbrus 8C x4

1200

32

2016

57

0:00:57

Baikal M1000

1500

8

2016

161

0:02:41

Elbrus 8CB

1550

8

2018

152

0:02:32

Kunpeng 920 x2

2600

96

2019

8

0:00:08

Elbrus 16C

2000

16

2021

68

0:01:08

Elbrus 2C3

2000

2

2021

544

0:09:04

Результаты Blender

SuperPI (1 млн)

1 поток:

Core(TM)2 Duo CPU     T9400  @ 2.53GHz:  2.58 sec

Core i7 2600 3.4 GHz:  1.81 sec

Elbrus 2C+ 0.47 GHz: 18.05 sec

Elbrus 4C 0.75 GHz:  10.18 sec

Elbrus 8C 1.2 GHz: 5.20 sec

Elbrus 8CB 1.55 GHz: 3.76 sec

Elbrus 16C 2.0 GHz: 2.77 sec

Stockfish

Cpu

Freq

Cores

Year

Time (seconds)

Core i7 2600

3400

4 (8)

2011

10860720

Core(TM)2 Duo CPU     T9400

2530

2

2007

1254341

Elbrus 4C

750

4

2014

541039

Elbrus 8C

1200

8

2016

1753143

Elbrus 8CB

1550

8

2018

3123190

Elbrus 16C

2000

16

2021

6193924

Baikal M1000

1500

8

2016

2750526

Результаты Stockfish

Minerd (Cpu miner)

./minerd --benchmark -a sha256d

Core i5-2500K:

thread 0: 26798032 hashes, 5307 khash/s

Total: 21226 khash/s

Эльбрус 8С (не оптимизирован):

thread 7: 2900420 hashes, 966.98 khash/s

Total: 7736 khash/s

Эльбрус 8СВ (оптимизирован):

thread 7: 34198012 hashes, 6840 khash/s

Total: 54714 khash/s

Эльбрус 16C (оптимизирован):

thread 7: 44098544 hashes, 8820 khash/s

Total: 141104 khash/s

Байкал-М 8 core 1.5 GHz, Cortex-A57:

thread 7: 4443436 hashes, 888.20 khash/s

Total: 7023 khash/s

Intel(R) Celeron(R) CPU N3350 @ 1.10GHz

thread 0: 2097152 hashes, 2403 khash/s

Total: 4808 khash/s

./minerd --benchmark -a scrypt

Core i5-6500 3.20GHz:

thread: 19.54 khash/s

total 78.26 khash/s

Core i7-9700K:

thread 7: 131280 hashes, 26.26 khash/s

Total: 211.68 khash/s

Эльбрус 8С (не оптимизирован +профиль):

thread 7: 6777 hashes, 2.26 khash/s

Total: 18.08 khash/s

Эльбрус 8СВ (оптимизирован):

thread 0: 4096 hashes, 8.50 khash/s

Total: 68.24 khash/s

Эльбрус 16C (оптимизирован под e2k-v5):

thread 0: 4096 hashes, 11.52 khash/s

Total: 183.01 khash/s

Байкал-М 8 core 1.5 GHz, Cortex-A57:

thread 7: 8875 hashes, 1.77 khash/s

Total: 14.03 khash/s

Intel(R) Celeron(R) CPU N3350 @ 1.10GHz

thread 0: 4104 hashes, 4.63 khash/s

Total: 9.25 khash/s

SPEC 2006 INT/FP

SPEC CPU2006 инструмент исследования производительности систем, который основан на коде реальных приложений, поставляются в виде исходного кода. Тест оценивает не только производительность процессора и памяти, но и показывает то, насколько компиляторы могут оптимизировать код.

Имеется 2 группы тестов:

  • SPEC INT 2006, измеряющий производительность целочисленных вычислительных задач (integer);

  • SPEC FP 2006, измеряющий производительность вычислительных задач с вещественными числами (числами с плавающей точкой, floating point).

Результаты производительности языков программирования

Логи результатов смотрите тут:

Java

1 поток:

  • Эльбрус 1С+ в 11 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 4С в 10 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 8С в 5,5 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 8СВ в 4,5 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 16С в 2,5 раз медленнее на 1 поток чем Core i7 2600

На всех потоках:

  • Эльбрус 1С+ в 18 раз медленнее чем Core i7 2600 на всех потоках

  • Эльбрус 4С в 12,5 раз медленнее чем Core i7 2600 на всех потоках

  • Эльбрус 8С в 3 раз медленнее чем Core i7 2600 на всех потоках

  • Эльбрус 8СВ в 2,5 раз медленнее чем Core i7 2600 на всех потоках

  • Эльбрус 16С равен Core i7 2600 на всех потоках

PHP

1 поток:

  • Эльбрус 2С+ в 15,5 раз медленнее чем Core i7 2600

  • Эльбрус 1С+ в 8 раз медленнее чем Core i7 2600

  • Эльбрус 4С в 4,5 раза медленнее чем Core i7 2600

  • Эльбрус 8С в 3 раза медленнее чем Core i7 2600

  • Эльбрус 8СВ в 2,5 раза медленнее чем Core i7 2600

  • Эльбрус 16С в 2 раза медленнее чем Core i7 2600

Python

1 поток:

  • Эльбрус R1000 в 12,5 раз медленнее чем Core i7 2600

  • Эльбрус 2С+ в 30 раз медленнее поток чем Core i7 2600 на 1 поток

  • Эльбрус 1С+ в 12,5 раз медленнее поток чем Core i7 2600 на 1 поток

  • Эльбрус 4С в 15,5 раз медленнее поток чем Core i7 2600 на 1 поток

  • Эльбрус 8С в 9 раз медленнее поток чем Core i7 2600 на 1 поток

  • Эльбрус 8СВ в 7,8 раз медленнее поток чем Core i7 2600 на 1 поток

  • Эльбрус 16С в 7 раз медленнее поток чем Core i7 2600 на 1 поток

На всех потоках:

  • Эльбрус 2С+ в 58 раз медленнее поток чем Core i7 2600 на всех потоках

  • Эльбрус 1С+ в 25 раз медленнее поток чем Core i7 2600 на всех потоках

  • Эльбрус 4С в 13,5 раз медленнее поток чем Core i7 2600 на всех потоках

  • Эльбрус 8С в 4,2 раза медленнее поток чем Core i7 2600 на всех потоках

  • Эльбрус 8СВ в 3,8 раза медленнее поток чем Core i7 2600 на всех потоках

  • Эльбрус 16С в 1,7 раза медленнее поток чем Core i7 2600 на всех потоках

Lua

1 поток:

  • Эльбрус 2С+ в 16 раз медленнее чем Core i7 2600

  • Эльбрус 1С+ в 6 раз медленнее чем Core i7 2600

  • Эльбрус 4С в 10 раз медленнее чем Core i7 2600

  • Эльбрус 8С в 6 раз медленнее чем Core i7 2600

  • Эльбрус 8СВ в 5 раз медленнее чем Core i7 2600

  • Эльбрус 16С в 4 раз медленнее чем Core i7 2600

  • Эльбрус R1000 в 9 раз медленнее чем Core i7 2600

C# NetCore (В режиме трансляции RTC)

1 поток:

  • Эльбрус 8С в 3,5 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 8СВ в 3 раз медленнее на 1 поток чем Core i7 2600

  • Эльбрус 16С в 2 раза медленнее на 1 поток чем Core i7 2600

На всех потоках:

  • Эльбрус 8С в 2 раза медленнее чем Core i7 2600

  • Эльбрус 8СВ в 1,5 раз медленнее чем Core i7 2600

  • Эльбрус 16С в 1,25 раза быстрее Core i7 2600

Выводы

Эльбрус-16С на 33% быстрее Эльбрус-8СВ на 1 поток и имеет в 2 раза больше ядер. Есть задачи, где он очень эффективен, где-то не очень, думаю найдёт свою нишу.

Жду ваши предложения, какие ещё бенчмарки можно прогнать на этих компьютерах (желательно с простой сборкой).

P. S. Принимаю ваши предложения и правки, статья пополняется.

Стикеры Телеграм с Эльбрусами: https://telegram.me/addstickers/Elbrus2000 :-)

UPD 1. Тест подсистемы памяти STREAM на 8ми планках DDR4-2400 по 8 Гб (77 ГБ/с вместо 19 ГБ/с)

Стало ~ 77 Гб/с (на 8 х 8 Гб)
-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 10000000 (elements), Offset = 0 (elements)
Memory per array = 76.3 MiB (= 0.1 GiB).
Total memory required = 228.9 MiB (= 0.2 GiB).
Each kernel will be executed 10 times.
 The *best* time for each kernel (excluding the first iteration)
 will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 16
Number of Threads counted = 16
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 1688 microseconds.
   (= 1688 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           70389.0     0.002306     0.002273     0.002349
Scale:          67256.8     0.002406     0.002379     0.002446
Add:            74444.1     0.003237     0.003224     0.003256
Triad:          77148.4     0.003144     0.003111     0.003185
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------
Было ~ 19 Гб/с (на 2 х 32 Гб)
-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 200000000 (elements), Offset = 0 (elements)
Memory per array = 1525.9 MiB (= 1.5 GiB).
Total memory required = 4577.6 MiB (= 4.5 GiB).
Each kernel will be executed 10 times.
 The *best* time for each kernel (excluding the first iteration)
 will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 16
Number of Threads counted = 16
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 121592 microseconds.
   (= 60796 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           16827.5     0.190366     0.190165     0.190579
Scale:          16961.5     0.189098     0.188663     0.189866
Add:            18717.8     0.257251     0.256440     0.257978
Triad:          18653.6     0.257563     0.257323     0.258054
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
------------------------------------------------------------
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+85
Comments 291
Comments Comments 291

Articles

Information

Website
icl.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия