]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Производительность SHA256 с SHA инструкциями, BLAKE3 с AVX512
authorSergey Matveev <stargrave@stargrave.org>
Sat, 26 Aug 2023 08:58:23 +0000 (11:58 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 26 Aug 2023 08:58:23 +0000 (11:58 +0300)
В новом 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.


No differences found