Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В одном из наших проектов используется Edge-модуль, работающий на широком наборе оборудования c процессором ARM, типа Raspberry Pi. Данное устройство используется для того, чтобы пересылать медиа-данные посредством зашифрованного канала на сервер.
Основная часть нагрузки, которую создает ПО, обрабатывающее эти медиа-данные, генерируется криптографическими функциями TLS, поскольку в прочем отношении это просто релей. В этой связи появился интерес оценить производительность процессоров перечисленных ниже платформ для того, чтобы понять их потенциальную емкость в количестве обрабатываемых источников медиа-данных.
На тесте были:
Nvidia Jetson Nano - 4 core ARM A57 @ 1.43 GHz
Raspberry Pi 4, Model B - Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
Raspberry Pi 3, Model B+ - Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz
Orange Pi Zero LTS - AllWinner H2 Quad-core Cortex-A7
и, чтобы им не скучно было, к тестированию подключил Intel Xeon E-2224, дабы возникло понимание в сравнительных возможностях ARM vs Intel.
На Jetson Nano установлено активное охлаждение с помощью вентилятора, на других платформах просто радиатор.
Все процессоры 4х-ядерные, SMT нигде нет. Сравнение производилось в рамках однопоточного теста с помощью стандартных возможностей OpenSSL (OpenSSL 1.1.1 11 Sep 2018).
Тест алгоритмов семейства SHA
openssl speed sha
Победителем теста среди ARM оказался Nvidia Jetson Nano, причем для sha-256/16KB он обогнал даже Xeon E-2224 - я повторно провел данный бенчмарк для Xeon E-2224, результат остался тем же.
Сравнительные данные в таблицах ниже ранжированы по месту в рейтинге производительности.
Nvidia Jetson Nano
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha1 73350.09k 200777.04k 416181.08k 573274.72k 645373.43k 653034.35k
sha256 68908.76k 188685.90k 412290.48k 568202.87k 644962.46k 651681.85k
sha512 19732.45k 78505.91k 122326.65k 175421.47k 201366.51k 202794.47k
Raspberry Pi 4
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha1 40358.89k 103684.42k 199123.37k 258472.96k 283866.45k 285665.96k
sha256 27360.34k 65673.69k 120294.66k 151455.74k 164413.44k 165281.79k
sha512 10255.33k 40882.35k 60587.95k 83416.41k 94066.01k 94874.28k
Raspberry Pi 3
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha1 19338.74k 52534.42k 105558.02k 140777.13k 156311.55k 157537.62k
sha256 12821.65k 31949.78k 59951.62k 77581.99k 84858.20k 85415.25k
sha512 7444.83k 29450.71k 47035.65k 66549.76k 75893.42k 76660.74k
Orange Pi Zero
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha1 9313.16k 23691.09k 45304.83k 58655.40k 64249.86k 64684.03k
sha256 6051.17k 14204.69k 25856.60k 32542.38k 35198.29k 35400.36k
sha512 3319.25k 13320.17k 19863.55k 27670.87k 31290.71k 31582.89k
Вне конкурса: Intel Xeon E-2224
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha1 171568.52k 420538.79k 843694.68k 1124105.90k 1259615.57k 1257401.00k
sha256 101953.18k 231621.03k 427492.44k 534554.28k 575944.02k 582303.74k
sha512 69861.21k 279030.78k 493514.41k 732609.88k 855792.76k 864578.22k
Тест алгоритмов семейства AES
openssl speed aes
Победителем теста среди ARM оказался Raspberry Pi 4, отставание от Xeon E-2224 более чем в 2 раза, следом расположился Nvidia Jetson Nano.
Raspberry Pi 4
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 74232.10k 80724.61k 84387.02k 85057.54k 85314.22k 85196.80k
aes-192 cbc 66069.32k 70589.59k 72967.00k 73584.64k 73766.23k 73667.93k
aes-256 cbc 58926.68k 62458.30k 64351.40k 64619.16k 64976.21k 64913.41k
Nvidia Jetson Nano
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 64590.62k 68711.06k 71231.36k 71509.33k 71963.57k 71401.47k
aes-192 cbc 55971.60k 59210.12k 60951.72k 61140.65k 61300.74k 61289.31k
aes-256 cbc 49413.88k 51999.08k 53115.39k 53581.57k 53518.34k 53513.76k
Raspberry Pi 3
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 37401.48k 45102.98k 47455.83k 48064.51k 48130.73k 48119.81k
aes-192 cbc 33444.87k 38794.88k 40544.51k 40930.30k 41047.38k 41036.46k
aes-256 cbc 30299.70k 34635.65k 36142.58k 36331.52k 36424.36k 36427.09k
Orange Pi Zero
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 22108.15k 24956.95k 25791.06k 26007.89k 26069.67k 26072.41k
aes-192 cbc 19264.22k 21327.66k 21971.29k 22138.88k 22186.67k 22189.40k
aes-256 cbc 17211.09k 18887.40k 19399.34k 19532.12k 19570.69k 19573.42k
Вне конкурса: Intel Xeon E-2224
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 173352.23k 196197.33k 201970.86k 203862.70k 204595.20k 203975.34k
aes-192 cbc 149237.38k 164843.65k 167562.58k 168944.98k 169667.24k 169056.58k
aes-256 cbc 130430.20k 141325.91k 143808.17k 144901.46k 145601.88k 145424.38k
Выводы
Делать выводы о том, насколько хорошо будет работать тот или иной CPU на реальной задаче, конечно, затруднительно. Однако, с точки зрения производительности в рамках задач, завязанных на TLS, можно сказать, что чипы, использованные в Raspberry Pi 4 и Jetson Nano, обладая малой стоимостью, позволяют обеспечить достойную производительность: в расчете на 1 рубль, вероятно, непринужденно побеждают Xeon E-2224.
Надеюсь, что было полезно.