Энтузиаст состоит в различных чатах в Telegram и как-то недавно наткнулся на канал по процессорам Loongson и ему удалось провести различные тесты данного процессора.
Сперва рассмотрим характеристики процессора Loongson 3A5000 и его предыдущую модель Loongson 3A4000.
Характеристики процессоров Loongson 3A5000 и Loongson 3A4000:
Loongson 3A4000 | Loongson 3A5000 | |
---|---|---|
Семейство ISA | RISC | RISC |
Архитектура | mips64r2 + extensions | loongarch64 |
Микроархитектура | GS464v | GS464V |
Частота (МГц) | 2000 | 2500 |
Ядра; Потоки | 4 | 4 |
Тех процесс (нм) | 28 | 12 |
TDP (Вт) | 30-50 | ? |
Тип ОЗУ | DDR4-2133 | DDR4-3200 |
Год | 2019 | 2021 |
Были проведены следующие тесты:
- 7zip встроенный бенчмарк
- Dhrystone, Whetsone
- Coremark
- Scimark 2
- Mp MFLOPS
- Stream
- Готовые результаты в SPEC 2006 (1 поток)
Сразу переходим к результатам, но детали тестов смотрите далее.
Результаты
Тест | Loongson 3A5000 | Core i7-2600 |
---|---|---|
Dhrystone [DMIPS] | 17962 | 22076 |
Whetstone [MWIPS] | 3990 | 5729 |
Whetstone MP [MWIPS] | 15939 | 31319 |
Linpack 100 [MFLOPS] | 2915 | 4302 |
Scimark 2 [Composite score] | 1554 | 2427 |
Coremark (1T; MT) | 13790; 54826 | 22692; 119670 |
MP MFLOPS | 106946 | 81745 |
7zip (Comp; Decomp; Tot) (MT) | 11360; 11638; 11081 | 18024; 13363; 18664 |
STREAM (Copy; Scale; Add; Triad) [MB/s] | 12315; 12061; 11064; 11529 | 20860; 21838; 18512; 20452 |
SPEC 2006 INT | 25 | 44.6 |
По результатам можно сделать вывод, что процессор примерно сравним с процессором Core i7 4700 HQ и немного не дотягивает (~30%, но 4 потока против 8 HT потоков и частота 2.5 ГГц против 3.4 ГГц) до Core i7-2600, хотя обгоняет его по GFLops'ам.
Немного об архитектуре LoongArch
Loongson 3A5000 — процессор на основе сильно переработанной RISC архитектуре MIPS64, часть ненужных команд MIPS64 была удалена и добавлено большое число расширений (SIMD, шифрование, бинарная трансляция, виртуализация), всего порядка 2000+ инструкций.
Loongson 3A5000 (LS3A5000)
Loongson 3A5000 — процессор на основе 64 разрядной RISC сильно переработанной архитектуре MIPS64 (loongarch64), имеет 4 ядра, которые работают на частоте 2.5 ГГц.
Architecture: loongarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Model name: Loongson-3A5000
CPU max MHz: 2500.0000
CPU min MHz: 225.0000
BogoMIPS: 4992.00
L1d cache: 64K
L1i cache: 64K
L2 cache: 256K
L3 cache: 16384K
NUMA node0 CPU(s): 0-3
Особенности процессора Loongson 3A5000:
- 64 битная архитектура loongarch64
- 128 битные SIMD расширения Loongson SIMD EXtension (LSX)
- 256 битные SIMD расширения Loongson Advanced SIMD EXtension (LASX)
- Внеочередное исполнение
- Предсказание ветвлений
- Поддержка виртуализации (LVZ)
- Поддержка бинарной трансляции (LBT) архитектур MIPS, ARM, x86
- 4 АЛУ
- 2 SIMD блока
- Кеши
- 64 КБ L1 кэш команд на ядро
- 64 КБ L1 кэш данных на ядро
- 256 КБ L2 кэш на ядро
- 16 МБ L3 кэш
Разбираем результаты
Dhrystone
Dhrystone достаточно древний тест 80х годов, написан на C. Тестирует целочисленную арифметику и работу со строками. Результаты измеряются в Dhrystone/s и DMIPS. (DMIPS = Dhrystone/s делить на 1757).
##########################################
Dhrystone Benchmark, Version 2.1 (Language: C or C++)
Optimisation loongarch64 loongarch64 optimized
Register option not selected
10000 runs 0.00 seconds
100000 runs 0.00 seconds
1000000 runs 0.03 seconds
10000000 runs 0.32 seconds
20000000 runs 0.63 seconds
40000000 runs 1.27 seconds
80000000 runs 2.53 seconds
Final values (* implementation-dependent):
Int_Glob: O.K. 5 Bool_Glob: O.K. 1
Ch_1_Glob: O.K. A Ch_2_Glob: O.K. B
Arr_1_Glob[8]: O.K. 7 Arr_2_Glob8/7: O.K. 80000010
Ptr_Glob-> Ptr_Comp: * 753386704
Discr: O.K. 0 Enum_Comp: O.K. 2
Int_Comp: O.K. 17 Str_Comp: O.K. DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob-> Ptr_Comp: * 753386704 same as above
Discr: O.K. 0 Enum_Comp: O.K. 1
Int_Comp: O.K. 18 Str_Comp: O.K. DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc: O.K. 5 Int_2_Loc: O.K. 13
Int_3_Loc: O.K. 7 Enum_Loc: O.K. 1
Str_1_Loc: O.K. DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc: O.K. DHRYSTONE PROGRAM, 2'ND STRING
Nanoseconds one Dhrystone run: 31.68
Dhrystones per Second: 31560942
VAX MIPS rating = 17962.97
Whetstone
Тестирует арифметику с плавающей/фиксированной запятой, математические функции, ветвления, вызовов функций, присваиваний, работы с числами с фиксированной запятой, ветвлений. Результаты измеряются в MMIPS.
##########################################
Single Precision C Whetstone Benchmark loongarch64 loongarch64 optimized, Sat Jul 24 21:37:34 2021
Calibrate
0.00 Seconds 1 Passes (x 100)
0.01 Seconds 5 Passes (x 100)
0.06 Seconds 25 Passes (x 100)
0.31 Seconds 125 Passes (x 100)
1.57 Seconds 625 Passes (x 100)
7.83 Seconds 3125 Passes (x 100)
Use 3989 passes (x 100)
Single Precision C/C++ Whetstone Benchmark
Loop content Result MFLOPS MOPS Seconds
N1 floating point -1.12367534637451172 929.727 0.082
N2 floating point -1.12167274951934814 1370.698 0.391
N3 if then else 1.00000000000000000 0.000 0.000
N4 fixed point 12.00000000000000000 32371.396 0.039
N5 sin,cos etc. 0.49911010265350342 99.825 3.325
N6 floating point 0.99999982118606567 599.758 3.588
N7 assignments 3.00000000000000000 3747.925 0.197
N8 exp,sqrt etc. 0.75110864639282227 62.452 2.376
MWIPS 3990.075 9.997
Coremark
Современный тест, который должен заменить Dhrystone и Whetstone. Написан на C. Считает различные массивы, матрицы, сортировка массивов и т. д. Предназначался для запуска на всём: от микроконтроллеров до мощных процессоров.
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 14503
Total time (secs): 14.503000
Iterations/Sec : 13790.250293
Iterations : 200000
Compiler version : GCC8.3.0
Compiler flags : -Ofast -DPERFORMANCE_RUN=1 -DUSE_FORK=1 -lrt
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x4983
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 13790.250293 / GCC8.3.0 -Ofast -DPERFORMANCE_RUN=1 -DUSE_FORK=1 -lrt / Heap
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 14623
Total time (secs): 14.623000
Iterations/Sec : 54708.336183
Iterations : 800000
Compiler version : GCC8.3.0
Compiler flags : -Ofast -march=native -DPERFORMANCE_RUN=1 -DUSE_FORK=1 -lrt
Parallel Fork : 4
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[1]crclist : 0xe714
[2]crclist : 0xe714
[3]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[1]crcmatrix : 0x1fd7
[2]crcmatrix : 0x1fd7
[3]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[1]crcstate : 0x8e3a
[2]crcstate : 0x8e3a
[3]crcstate : 0x8e3a
[0]crcfinal : 0x4983
[1]crcfinal : 0x4983
[2]crcfinal : 0x4983
[3]crcfinal : 0x4983
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 54708.336183 / GCC8.3.0 -Ofast -march=native -DPERFORMANCE_RUN=1 -DUSE_FORK=1 -lrt / Heap / 4:Fork
MP MFLOPS
Выполняет операции с плавающей запятой на векторах.
MP-MFLOPS Compiled for loongarch64 Sat Jul 24 20:52:23 2021
FPU Add & Multiply using 1, 2, 4 and 8 Threads
2 Ops/Word 32 Ops/Word
KB 12.8 128 12800 12.8 128 12800
MFLOPS
1T 18882 12721 10789 26652 26031 25988
2T 32784 37675 21228 51444 54126 51909
4T 51385 70939 40023 94571 107173 102566
8T 41463 66280 42473 84137 105576 103068
Results x 100000, 0 indicates ERRORS
1T 76406 97075 99969 0 0 99951
2T 76406 97075 99969 0 0 99951
4T 76406 97075 99969 0 0 99951
8T 76406 97075 99969 0 0 99951
End of test Sat Jul 24 20:52:23 2021
7zip
Встроенный тест архиватора 7z.
Запускается так:
7z b
7-Zip (a) 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
LE
CPU Freq: 64000000 - - - - - - - -
RAM size: 16165 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 11279 327 3352 10973 | 130124 396 2803 11102
23: 10681 325 3346 10883 | 127682 393 2810 11048
24: 11183 353 3406 12025 | 126626 395 2815 11116
25: 11099 360 3525 12673 | 124248 394 2805 11058
---------------------------------- | ------------------------------
Avr: 341 3407 11638 | 395 2808 11081
Tot: 368 3108 11360
STREAM
Тест производительности ОЗУ.
Function Best Rate MB/s Avg time Min time Max time
Copy: 16748.3 0.009969 0.009553 0.010576
Scale: 18735.0 0.009437 0.008540 0.010660
Add: 16333.2 0.015492 0.014694 0.016449
Triad: 17796.0 0.014789 0.013486 0.015294
Версия компилятора, ядра Linux
Ядро Linux:
Linux 4.19.167-rc5.lnd.1-loongson-3 #1 SMP Sat Apr 17 07:32:32 UTC 2021 loongarch64 loongarch64 loongarch64 GNU/Linux
Версия компилятора: gcc version 8.3.0 (Debian 8.3.0-6.lnd.vec.20)
.
Выводы
Loongson 3A5000 вышел достаточно неплохим процессором, который уже сейчас может применяться в различных десктопных решениях, а процессоры с низкими частотами могут применяться в ноутбуках (с TDP порядка 30 Вт.)
Очень хотелось бы попробовать в работе такие компьютеры, а учитывая то, что они поддерживают видеокарты от AMD, то можно запускать и игры с открытым исходным кодом. Будем надеяться, что такие процессоры получат широкое применение.
Другие результаты для сравнения: