From 33c5a6cf0aee60462fefe58fe72c8c2430eedf40 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 26 Aug 2023 11:58:23 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4?= =?utf8?q?=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20S?= =?utf8?q?HA256=20=D1=81=20SHA=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?utf8?q?=D0=BA=D1=86=D0=B8=D1=8F=D0=BC=D0=B8,=20BLAKE3=20=D1=81=20AVX512?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit В новом Xeon (9412c8cdb0c01875e9bfca8d3efde9695e4d9211) появились SHA инструкции, но только которые SHA1 и SHA256 поддерживают. Проверяю скорость: pv < /dev/zero | cmd NUC, cmd=sha256: 152 MiB/sec Xeon, cmd=sha256: 226 MiB/sec NUC, cmd=openssl sha256: 276 MiB/sec Xeon, cmd=openssl sha256: 933 MiB/sec b3sum (который на Си, github.com/BLAKE3-team/BLAKE3) поддерживает AVX512: NUC: 1.68 GiB/sec Xeon: 3.43 GiB/sec но это всё только одно ядро грузит. Go-шная реализация (lukechampine.com/blake3) выдаёт такие же скорости. Ради интереса остальные хэши на Xeon, никаких открытий: b2sum: 506 MiB/s openssl sha512: 493 MiB/sec skein512: 463 MiB/sec b2sum -a blake2s: 412 MiB/sec skein256: 367 MiB/sec goshake128: 348 MiB/sec sha512: 345 MiB/sec goshake128: 284 MiB/sec nettle-hash --algorithm=streebog*: ~82 MiB/sec То бишь, SHA256 самый медленный (ну не считая Стрибога, в котором никто не заморачивается оптимизациями (они есть в проприетарных решениях или железе)), но с SHA-инструкциями самый быстрый, кроме BLAKE3. -- 2.48.1