Iot Solutions Developer
gcc -g -Wall -O3 test-tlb.c -o test-tlb -lm -D FREQ="1.5" for i in 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 6M 8M 16M 32M 64M 128M 256M ; do echo "$i:"; ./test-tlb -H $i 64; ./test-tlb $i 64 ; ./test-tlb -Hr $i 64; ./test-tlb -r $i 64; done 4k: 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 8k: 3.37ns (~5.1 cycles) 3.37ns (~5.1 cycles) 3.37ns (~5.1 cycles) 3.38ns (~5.1 cycles) 16k: 3.37ns (~5.1 cycles) 5.65ns (~8.5 cycles) 3.37ns (~5.1 cycles) 12.84ns (~19.3 cycles) 32k: 3.43ns (~5.1 cycles) 4.60ns (~6.9 cycles) 3.45ns (~5.2 cycles) 11.42ns (~17.1 cycles) 64k: 5.94ns (~8.9 cycles) 6.02ns (~9.0 cycles) 16.24ns (~24.4 cycles) 16.22ns (~24.3 cycles) 128k: 5.96ns (~8.9 cycles) 6.59ns (~9.9 cycles) 16.24ns (~24.4 cycles) 16.38ns (~24.6 cycles) 256k: 5.95ns (~8.9 cycles) 6.66ns (~10.0 cycles) 16.24ns (~24.4 cycles) 18.65ns (~28.0 cycles) 512k: 5.96ns (~8.9 cycles) 6.65ns (~10.0 cycles) 16.48ns (~24.7 cycles) 19.81ns (~29.7 cycles) 1M: 9.91ns (~14.9 cycles) 11.20ns (~16.8 cycles) 22.74ns (~34.1 cycles) 33.13ns (~49.7 cycles) 2M: 10.14ns (~15.2 cycles) 11.88ns (~17.8 cycles) 60.86ns (~91.3 cycles) 64.48ns (~96.7 cycles) 4M: 10.84ns (~16.3 cycles) 12.67ns (~19.0 cycles) 71.07ns (~106.6 cycles) 78.54ns (~117.8 cycles) 6M: 13.06ns (~19.6 cycles) 16.53ns (~24.8 cycles) 99.53ns (~149.3 cycles) 112.87ns (~169.3 cycles) 8M: 17.26ns (~25.9 cycles) 19.99ns (~30.0 cycles) 144.49ns (~216.7 cycles) 182.61ns (~273.9 cycles) 16M: 21.79ns (~32.7 cycles) 25.37ns (~38.1 cycles) 212.50ns (~318.7 cycles) 228.44ns (~342.7 cycles) 32M: 22.04ns (~33.1 cycles) 26.04ns (~39.1 cycles) 216.38ns (~324.6 cycles) 244.64ns (~367.0 cycles) 64M: 22.06ns (~33.1 cycles) 25.75ns (~38.6 cycles) 219.83ns (~329.7 cycles) 255.81ns (~383.7 cycles) 128M: 21.97ns (~33.0 cycles) 25.89ns (~38.8 cycles) 218.52ns (~327.8 cycles) 265.81ns (~398.7 cycles) 265.81ns (~398.7 cycles) 256M: 21.95ns (~32.9 cycles) 25.88ns (~38.8 cycles) 218.85ns (~328.3 cycles) 218.85ns (~328.3 cycles)
$ make run freq=1.5 gcc -g -Wall -O3 test-tlb.c -o test-tlb -lm -D FREQ="1.5" for i in 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 6M 8M 16M 32M 64M 128M 256M ; do echo "$i:"; ./test-tlb -H $i 64; ./test-tlb $i 64 ; ./test-tlb -Hr $i 64; ./test-tlb -r $i 64; done 4k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 8k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 16k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 32k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 64k: 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 128k: 7.40ns (~11.1 cycles) 7.43ns (~11.1 cycles) 7.39ns (~11.1 cycles) 7.45ns (~11.2 cycles) 256k: 7.41ns (~11.1 cycles) 10.98ns (~16.5 cycles) 7.41ns (~11.1 cycles) 10.00ns (~15.0 cycles) 512k: 7.89ns (~11.8 cycles) 16.36ns (~24.5 cycles) 7.78ns (~11.7 cycles) 16.29ns (~24.4 cycles) 1M: 22.19ns (~33.3 cycles) 21.36ns (~32.0 cycles) 22.18ns (~33.3 cycles) 21.46ns (~32.2 cycles) 2M: 22.18ns (~33.3 cycles) 22.19ns (~33.3 cycles) 22.18ns (~33.3 cycles) 22.20ns (~33.3 cycles) 4M: 22.19ns (~33.3 cycles) 24.19ns (~36.3 cycles) 22.18ns (~33.3 cycles) 27.09ns (~40.6 cycles) 6M: 22.21ns (~33.3 cycles) 28.77ns (~43.2 cycles) 22.18ns (~33.3 cycles) 35.63ns (~53.4 cycles) 8M: 22.18ns (~33.3 cycles) 31.61ns (~47.4 cycles) 22.19ns (~33.3 cycles) 39.64ns (~59.5 cycles) 16M: 29.33ns (~44.0 cycles) 69.35ns (~104.0 cycles) 28.78ns (~43.2 cycles) 86.74ns (~130.1 cycles) 32M: 108.36ns (~162.5 cycles) 97.97ns (~147.0 cycles) 124.15ns (~186.2 cycles) 122.47ns (~183.7 cycles) 64M: 108.33ns (~162.5 cycles) 106.03ns (~159.0 cycles) 124.32ns (~186.5 cycles) 136.67ns (~205.0 cycles) 128M: 108.45ns (~162.7 cycles) 108.53ns (~162.8 cycles) 124.69ns (~187.0 cycles) 141.88ns (~212.8 cycles) 256M: 108.42ns (~162.6 cycles) 108.57ns (~162.9 cycles) 125.08ns (~187.6 cycles) 146.06ns (~219.1 cycles)
Это не HPL, а древний Linpack, но раз он есть, то почему бы не побенчить с ним.
Да, вы правы. На самом деле я советовался с людьми из МЦСТ чтобы правильно собрать бенчи. Эльбрусы любит параллельные программы, но он всё-равно процессор общего назначения.
Тесты собирались под Эльбрусы с разными флагами и запускались с профилем, выбирались лучшие результаты.
8С тоже 28 нм.
Это как раз числодробильный бенчмарк. Там умножения, сложения, работа с массивами. С Этим Эльбрус очень быстро справляется.
В других случаях он на уровне с Байкалом (не числодробильные задачи). Где много переходов, ветвлений и т. д.
Php, Python я бенчил в прошлой статье.
Про цены сложно, серии малые, значит пока дорого.
Детали ядра e2k
Ядро Cortex A57
Ядро Эльбруса
Делал с Atom Z8350 1.44 GHz 4 core. Есть в большой картинке в конце статьи.
На сколько мне известно, ее довольно глубоко меняли и она лучше других языков/сред показывает себя (С конечно же лучше).
Сделаю как-нибудь. Apple M1? А так Байкал М как две малины 4.
Да, на Хромиуме куча всего, ждем... Говорят, там немного сложно из-за зависимостей и JS движка. Вот для Firefox пришлось Rust запиливать.
Test-Tlb
Более подробные детали ядра Эльбруса.
Это не HPL, а древний Linpack, но раз он есть, то почему бы не побенчить с ним.
Да, вы правы. На самом деле я советовался с людьми из МЦСТ чтобы правильно собрать бенчи. Эльбрусы любит параллельные программы, но он всё-равно процессор общего назначения.
Тесты собирались под Эльбрусы с разными флагами и запускались с профилем, выбирались лучшие результаты.
8С тоже 28 нм.
Это как раз числодробильный бенчмарк. Там умножения, сложения, работа с массивами. С Этим Эльбрус очень быстро справляется.
В других случаях он на уровне с Байкалом (не числодробильные задачи). Где много переходов, ветвлений и т. д.
Php, Python я бенчил в прошлой статье.
Про цены сложно, серии малые, значит пока дорого.
Детали ядра e2k
Ядро Cortex A57
Ядро Эльбруса
Делал с Atom Z8350 1.44 GHz 4 core. Есть в большой картинке в конце статьи.
На сколько мне известно, ее довольно глубоко меняли и она лучше других языков/сред показывает себя (С конечно же лучше).
Сделаю как-нибудь. Apple M1? А так Байкал М как две малины 4.
Да, на Хромиуме куча всего, ждем... Говорят, там немного сложно из-за зависимостей и JS движка. Вот для Firefox пришлось Rust запиливать.