А теперь немного поговорим о производительности недавно вышедшей версии Hash Calculator 6.0 (а точнее уже 6.0.1) на восстановлении строк из их хэшей. Все таки радикально изменился компилятор (теперь zig вместо gcc или msvc) и интересно насколько все стало лучше или хуже. Сравнение производилось версии 6.0.1 с версией 5.6.1 на 50 алгоритмах хеширования.


Методика

  • Сравниваются средние затраченные времена на нагрузке hash -p --noprobe (по сути это восстановление строки 12345 по ее хэшу).
  • Linux: используется инструмент poop с фиксированной длительностью прогона в 5000 ms.
  • Windows: используется инструмент hyperfine с числом прогонов равным auto.
  • Linux CUDA / Windows CUDA: 5.6.1 CUDA vs 6.0 CUDA; оба прогона на одной машине, поэтому абсолютные времена между этими двумя ОС сопоставимы по железу.
  • Linux OpenCL vs CPU: в 5.6.1 OpenCL не было поэтому сравниваются версия 6.0 с OpenCL (Intel Arc GPU) и версия 5.6.1 с чистым многопоточным CPU.
  • Ускорение > 1 — версия 6.0 быстрее; < 1 — регресс.
  • Геометрическое среднее считается по 50 алгоритмам на каждой платформе отдельно.
  • Абсолютные времена OpenCL-прогона с CUDA-прогонами не сопоставимы напрямую (другой GPU/железо).

Платформы

Платформа5.6.16.0Инструмент
Linux CUDACUDACUDApoop (duration 5000 ms)
Windows CUDACUDACUDAhyperfine (runs: auto)
Linux OpenCL vs CPUCPU (multithread)OpenCL (Intel Arc)poop (duration 5000 ms)

Важно: в 5.6.1 не было поддержки OpenCL. Прогон OpenCL на Linux сравнивает версию 6.0 на OpenCL (Intel Arc GPU) с версией 5.6.1 на чистом многопоточном CPU, а не две версии с использованием OpenCL.

Оборудование

CUDA-машина (Windows / Linux, dual boot — одно и то же железо):

  • CPU: Intel(R) Core(TM) i9-9900K (16) @ 5.00 GHz
  • GPU: NVIDIA GeForce RTX 2070 SUPER
  • Memory: 128 GiB

OpenCL-машина (Linux):

  • CPU: Intel(R) Core(TM) Ultra 7 155H (12+8+2) @ 4.80 GHz
  • GPU: Intel Arc Graphics @ 2.25 GHz
  • Memory: 32 GiB

Метрика: затраченное время (меньше — лучше). Ускорение = t(5.6.1) / t(6.0); значение > 1 значит версия 6.0 быстрее.


Краткий итог

ПлатформаГеом. среднееМедиана6.0 быстрее (>5%)≈ паритет (±5%)регресс (>5%)Лучший приростХудший
Linux CUDA1.91×1.11×28319ntlm 29.83×edonr256 0.65×
Windows CUDA2.50×1.17×37103sha384 30.94×sha1 0.90×
Linux OpenCL vs CPU3.34×5.08×33125md2 26.61×haval-128-3 0.80×

На CUDA-платформах 6.0 в среднем быстрее 5.6.1. На Linux с OpenCL vs CPU выигрыш ещё заметнее (геом. среднее 3.34×), потому что это сравнение GPU OpenCL с CPU multithread. Крупный прирост там, где 6.0 уводит алгоритм на GPU (blake2b/blake2s/blake3, md2, whirlpool и др.).

Небольшое пояснение, почему на процессоре Intel Core i7 9900K (Coffee Lake) для всех алгоритмов работающих только на CPU есть регресс, по сравнению с процессором Intel Core Ultra 155H (Meteor Lake).

Это разница в размере кэша L2, а не в конкретной архитектуре процессора (оба AVX2 и без AVX-512):

  • 9900K (Coffee Lake): 256 KB L2 на ядро, 4-way, unified (код и данные вместе)
  • 155H (Meteor Lake): 2 MB L2 на P-core — в 8 раз больше

В версии 6.0 требования к кэшу сильно выросли, и теперь, это уже не влазит в маленький кэш процессора Intel Core i7 9900K (Coffee Lake), поэтому наблюдается такая просадка. И все это только на Linux — на Windows и раньше не влазило, поэтому регресса нет, а есть улучшения, — это видно по цифрам, там для CPU алгоритмов, на одинаковом железе, все заметно медленнее.

Вот сырые результаты замеров на Linux для edonr256 на 9900K (Coffee Lake):

Benchmark 1 (9 runs): new/hc edonr256 hash -p --noprobe
  measurement          mean ± σ            min … max           outliers         delta
  wall_time           609ms ± 26.4ms     582ms …  668ms          0 ( 0%)        0%
  peak_rss           6.86MB ± 42.9KB    6.76MB … 6.89MB          2 (22%)        0%
  cpu_cycles         22.8G  ±  991M     21.7G  … 25.0G           0 ( 0%)        0%
  instructions       44.6G  ± 2.06G     41.9G  … 49.5G           1 (11%)        0%
  cache_references    766M  ± 34.9M      718M  …  831M           0 ( 0%)        0%
  cache_misses       19.8K  ± 1.22K     18.2K  … 21.7K           0 ( 0%)        0%
  branch_misses      5.35M  ±  212K     5.03M  … 5.79M           1 (11%)        0%
Benchmark 2 (13 runs): old/hc edonr256 hash -p --noprobe
  measurement          mean ± σ            min … max           outliers         delta
  wall_time           393ms ± 2.28ms     391ms …  399ms          1 ( 8%)        ⚡- 35.5% ±  2.5%
  peak_rss           6.30MB ±  125KB    6.05MB … 6.51MB          0 ( 0%)        ⚡-  8.2% ±  1.3%
  cpu_cycles         14.7G  ± 76.9M     14.6G  … 14.9G           0 ( 0%)        ⚡- 35.5% ±  2.5%
  instructions       45.5G  ±  560M     43.9G  … 46.2G           1 ( 8%)          +  1.9% ±  2.8%
  cache_references   6.64M  ± 2.82M     3.81M  … 12.6M           0 ( 0%)        ⚡- 99.1% ±  2.6%
  cache_misses       17.1K  ± 4.49K     12.6K  … 29.0K           0 ( 0%)          - 13.6% ± 16.3%
  branch_misses      4.36M  ± 97.5K     4.29M  … 4.62M           0 ( 0%)        ⚡- 18.5% ±  2.6%

Обращаем внимание на разницу в параметре cache_references между старой и новой версией — там практически 2 порядка, и это означает что все не влазит в кэш L2 и идет обращение в кэш L3, который сильно медленнее.

Аналогично для 155H (Meteor Lake):

Benchmark 1 (14 runs): new/hc edonr256 hash -p --noprobe
  measurement          mean ± σ            min … max           outliers         delta
  wall_time           366ms ± 61.2ms     298ms …  556ms         4 (29%)          0%
  peak_rss           7.83MB ± 75.9KB    7.65MB … 7.87MB         3 (21%)          0%
  cpu_cycles         6.21G  ± 1.11G     5.03G  … 9.65G          4 (29%)          0%
  instructions       25.8G  ± 3.91G     21.2G  … 37.3G          1 ( 7%)          0%
  cache_references   2.88M  ± 2.21M      519K  … 7.49M          0 ( 0%)          0%
  cache_misses       5.24K  ± 6.82K      504   … 26.7K          1 ( 7%)          0%
  branch_misses      3.08M  ±  465K     2.54M  … 4.45M          1 ( 7%)          0%
Benchmark 2 (14 runs): old/hc edonr256 hash -p --noprobe
  measurement          mean ± σ            min … max           outliers         delta
  wall_time           363ms ± 28.3ms     303ms …  420ms         3 (21%)          -  1.0% ± 10.1%
  peak_rss           6.29MB ±  134KB    6.06MB … 6.51MB         0 ( 0%)        ⚡- 19.6% ±  1.1%
  cpu_cycles         6.07G  ±  448M     5.10G  … 6.87G          3 (21%)          -  2.3% ± 10.6%
  instructions       27.0G  ± 1.88G     22.9G  … 29.6G          2 (14%)          +  4.6% ±  9.2%
  cache_references    309K  ±  447K     84.7K  … 1.76M          2 (14%)        ⚡- 89.3% ± 43.1%
  cache_misses       4.98K  ± 3.40K     1.01K  … 11.5K          0 ( 0%)          -  4.9% ± 80.0%
  branch_misses      3.25M  ±  230K     2.75M  … 3.58M          3 (21%)          +  5.3% ±  9.2%

Тут нет такой катастрофической разницы при обращении к кэшу. Ну а теперь цифры.


Сводная таблица (все платформы)

АлгоритмLinux CUDA 5.6.1Linux CUDA 6.0×Windows CUDA 5.6.1Windows CUDA 6.0×Linux CPU 5.6.1Linux OpenCL 6.0×
blake2b1.070s254.0ms4.21×1.191s190.4ms6.26×583.0ms144.0ms4.05×
blake2s897.0ms228.0ms3.93×1.000s162.8ms6.14×510.0ms72.9ms7.00×
blake3289.0ms215.0ms1.34×381.5ms154.7ms2.47×216.0ms86.0ms2.51×
crc32292.0ms235.0ms1.24×172.9ms166.8ms1.04×87.7ms26.3ms3.33×
crc32c82.1ms99.0ms1.21× регресс120.4ms115.0ms1.05×108.0ms91.7ms1.18×
edonr256392.0ms607.0ms1.55× регресс573.2ms453.7ms1.26×363.0ms366.0ms1.01× регресс
edonr512456.0ms513.0ms1.12× регресс521.3ms531.2ms1.02× регресс391.0ms395.0ms1.01× регресс
gost4.090s4.250s1.04× регресс4.626s4.543s1.02×3.720s3.660s1.02×
haval-128-3704.0ms823.0ms1.17× регресс1.030s891.7ms1.16×666.0ms835.0ms1.25× регресс
haval-128-4952.0ms1.040s1.09× регресс1.481s1.249s1.19×968.0ms1.180s1.22× регресс
haval-128-51.060s1.140s1.08× регресс1.660s1.642s1.01×1.070s1.330s1.24× регресс
haval-160-3686.0ms775.0ms1.13× регресс1.049s950.2ms1.10×655.0ms641.0ms1.02×
haval-160-4946.0ms1.040s1.10× регресс1.326s1.221s1.09×968.0ms927.0ms1.04×
haval-160-51.050s1.140s1.09× регресс1.545s1.277s1.21×1.110s1.100s1.01×
haval-192-3689.0ms786.0ms1.14× регресс1.034s914.8ms1.13×633.0ms634.0ms~1×
haval-192-4947.0ms1.030s1.09× регресс1.401s1.220s1.15×954.0ms963.0ms1.01× регресс
haval-192-51.070s1.150s1.07× регресс1.572s1.515s1.04×1.070s1.070s~1×
haval-224-3678.0ms853.0ms1.26× регресс974.0ms868.2ms1.12×689.0ms640.0ms1.08×
haval-224-4939.0ms1.080s1.15× регресс1.338s1.247s1.07×964.0ms905.0ms1.07×
haval-224-51.080s1.180s1.09× регресс1.498s1.318s1.14×1.050s1.100s1.05× регресс
haval-256-3676.0ms855.0ms1.26× регресс998.9ms748.9ms1.33×645.0ms602.0ms1.07×
haval-256-4955.0ms1.090s1.14× регресс1.299s1.098s1.18×966.0ms966.0ms~1×
haval-256-51.040s1.200s1.15× регресс1.409s1.284s1.10×1.060s1.050s1.01×
md23.670s342.0ms10.73×3.617s278.0ms13.01×8.170s307.0ms26.61×
md4241.0ms225.0ms1.07×162.3ms179.3ms1.10× регресс341.0ms29.2ms11.68×
md5242.0ms214.0ms1.13×165.5ms164.4ms1.01×338.0ms29.3ms11.54×
ntlm6.920s232.0ms29.83×162.7ms178.6ms1.10× регресс383.0ms36.3ms10.55×
ripemd128812.0ms203.0ms4.00×959.1ms157.8ms6.08×769.0ms79.9ms9.62×
ripemd160678.0ms289.0ms2.35×613.1ms211.8ms2.89×745.0ms74.3ms10.03×
ripemd256549.0ms205.0ms2.68×811.0ms149.9ms5.41×474.0ms75.1ms6.31×
ripemd320785.0ms224.0ms3.50×1.042s159.1ms6.55×792.0ms75.8ms10.45×
sha1230.0ms245.0ms1.07× регресс155.3ms171.7ms1.11× регресс250.0ms28.3ms8.83×
sha224246.0ms225.0ms1.09×173.1ms177.2ms1.02× регресс250.0ms38.1ms6.56×
sha256243.0ms225.0ms1.08×178.3ms182.9ms1.03× регресс249.0ms37.5ms6.64×
sha-3-2241.330s246.0ms5.41×2.510s202.0ms12.43×1.400s121.0ms11.57×
sha-3-2561.320s271.0ms4.87×3.343s200.1ms16.71×1.440s121.0ms11.90×
sha-3-3841.290s274.0ms4.71×2.858s203.6ms14.04×1.400s122.0ms11.48×
sha-3-5121.270s268.0ms4.74×2.798s201.3ms13.90×1.390s125.0ms11.12×
sha3846.700s281.0ms23.84×6.216s200.9ms30.94×797.0ms107.0ms7.45×
sha-3k-2241.340s258.0ms5.19×3.474s201.0ms17.28×1.440s121.0ms11.90×
sha-3k-2561.320s269.0ms4.91×3.678s204.0ms18.03×1.460s121.0ms12.07×
sha-3k-3841.290s272.0ms4.74×3.045s212.8ms14.31×1.420s130.0ms10.92×
sha-3k-5121.280s270.0ms4.74×2.672s204.0ms13.10×1.360s134.0ms10.15×
sha5126.700s274.0ms24.45×6.108s203.7ms29.99×852.0ms119.0ms7.16×
snefru1285.660s5.750s1.02× регресс6.348s5.884s1.08×5.500s5.920s1.08× регресс
snefru2565.640s5.750s1.02× регресс6.478s5.889s1.10×5.250s5.710s1.09× регресс
tiger413.0ms258.0ms1.60×472.2ms197.4ms2.39×386.0ms55.5ms6.95×
tiger2414.0ms274.0ms1.51×464.0ms195.3ms2.38×386.0ms56.2ms6.87×
tth1.790s561.0ms3.19×521.9ms503.2ms1.04×1.150s449.0ms2.56×
whirlpool1.610s1.410s1.14×1.430s1.267s1.13×1.210s198.0ms6.11×

Linux CUDA

  • duration: 5000 ms
  • args: hash -p --noprobe

Геом. среднее: 1.91×, медиана 1.11× (диапазон 0.65× … 29.83×).

Топ-10 приростов (6.0 быстрее)

#Алгоритм5.6.16.0Ускорение
1ntlm6.920s232.0ms29.83×
2sha5126.700s274.0ms24.45×
3sha3846.700s281.0ms23.84×
4md23.670s342.0ms10.73×
5sha-3-2241.330s246.0ms5.41×
6sha-3k-2241.340s258.0ms5.19×
7sha-3k-2561.320s269.0ms4.91×
8sha-3-2561.320s271.0ms4.87×
9sha-3k-3841.290s272.0ms4.74×
10sha-3k-5121.280s270.0ms4.74×

Топ-10 наименьших приростов / регрессий

#Алгоритм5.6.16.0Ускорение
1edonr256392.0ms607.0ms0.65× (регресс)
2haval-256-3676.0ms855.0ms0.79× (регресс)
3haval-224-3678.0ms853.0ms0.79× (регресс)
4crc32c82.1ms99.0ms0.83× (регресс)
5haval-128-3704.0ms823.0ms0.86× (регресс)
6haval-256-51.040s1.200s0.87× (регресс)
7haval-224-4939.0ms1.080s0.87× (регресс)
8haval-256-4955.0ms1.090s0.88× (регресс)
9haval-192-3689.0ms786.0ms0.88× (регресс)
10haval-160-3686.0ms775.0ms0.89× (регресс)

Полная таблица

Алгоритм5.6.1 время6.0 времяУскорение5.6.1 память6.0 память
blake2b1.070s254.0ms4.21×6.29MB111MB
blake2s897.0ms228.0ms3.93×6.27MB111MB
blake3289.0ms215.0ms1.34×6.31MB112MB
crc32292.0ms235.0ms1.24×157MB110MB
crc32c82.1ms99.0ms0.83×6.40MB7.00MB
edonr256392.0ms607.0ms0.65×6.42MB7.13MB
edonr512456.0ms513.0ms0.89×6.41MB7.15MB
gost4.090s4.250s0.96×6.40MB7.04MB
haval-128-3704.0ms823.0ms0.86×6.42MB7.22MB
haval-128-4952.0ms1.040s0.92×6.41MB7.17MB
haval-128-51.060s1.140s0.93×6.47MB7.13MB
haval-160-3686.0ms775.0ms0.89×6.40MB7.15MB
haval-160-4946.0ms1.040s0.91×6.48MB7.16MB
haval-160-51.050s1.140s0.92×6.40MB7.12MB
haval-192-3689.0ms786.0ms0.88×6.47MB7.17MB
haval-192-4947.0ms1.030s0.92×6.55MB7.16MB
haval-192-51.070s1.150s0.93×6.42MB7.14MB
haval-224-3678.0ms853.0ms0.79×6.42MB7.15MB
haval-224-4939.0ms1.080s0.87×6.45MB7.16MB
haval-224-51.080s1.180s0.92×6.52MB7.14MB
haval-256-3676.0ms855.0ms0.79×6.43MB7.13MB
haval-256-4955.0ms1.090s0.88×6.52MB7.15MB
haval-256-51.040s1.200s0.87×6.46MB7.15MB
md23.670s342.0ms10.73×136MB111MB
md4241.0ms225.0ms1.07×157MB111MB
md5242.0ms214.0ms1.13×157MB110MB
ntlm6.920s232.0ms29.83×157MB111MB
ripemd128812.0ms203.0ms4.00×6.46MB110MB
ripemd160678.0ms289.0ms2.35×136MB110MB
ripemd256549.0ms205.0ms2.68×6.46MB111MB
ripemd320785.0ms224.0ms3.50×6.42MB111MB
sha1230.0ms245.0ms0.94×136MB111MB
sha224246.0ms225.0ms1.09×136MB111MB
sha256243.0ms225.0ms1.08×136MB111MB
sha-3-2241.330s246.0ms5.41×6.43MB114MB
sha-3-2561.320s271.0ms4.87×6.43MB114MB
sha-3-3841.290s274.0ms4.71×6.47MB114MB
sha-3-5121.270s268.0ms4.74×6.37MB114MB
sha3846.700s281.0ms23.84×137MB111MB
sha-3k-2241.340s258.0ms5.19×6.51MB114MB
sha-3k-2561.320s269.0ms4.91×6.42MB114MB
sha-3k-3841.290s272.0ms4.74×6.36MB114MB
sha-3k-5121.280s270.0ms4.74×6.40MB114MB
sha5126.700s274.0ms24.45×137MB111MB
snefru1285.660s5.750s0.98×6.32MB7.16MB
snefru2565.640s5.750s0.98×6.43MB7.18MB
tiger413.0ms258.0ms1.60×6.45MB111MB
tiger2414.0ms274.0ms1.51×6.42MB111MB
tth1.790s561.0ms3.19×6.37MB7.03MB
whirlpool1.610s1.410s1.14×136MB111MB

Linux OpenCL (6.0) vs CPU (5.6.1)

В 5.6.1 OpenCL не было, поэтому сравнивались многопоточный CPU с Intel Arc GPU.

  • duration: 5000 ms
  • args: hash -p --noprobe

Геом. среднее: 3.34×, медиана 5.08× (диапазон 0.80× … 26.61×).

Топ-10 приростов (OpenCL быстрее CPU)

#Алгоритм5.6.1 CPU6.0 OpenCLУскорение
1md28.170s307.0ms26.61×
2sha-3k-2561.460s121.0ms12.07×
3sha-3-2561.440s121.0ms11.90×
4sha-3k-2241.440s121.0ms11.90×
5md4341.0ms29.2ms11.68×
6sha-3-2241.400s121.0ms11.57×
7md5338.0ms29.3ms11.54×
8sha-3-3841.400s122.0ms11.48×
9sha-3-5121.390s125.0ms11.12×
10sha-3k-3841.420s130.0ms10.92×

Топ-10 наименьших приростов / регрессий

#Алгоритм5.6.1 CPU6.0 OpenCLУскорение
1haval-128-3666.0ms835.0ms0.80× (регресс)
2haval-128-51.070s1.330s0.80× (регресс)
3haval-128-4968.0ms1.180s0.82× (регресс)
4snefru2565.250s5.710s0.92× (регресс)
5snefru1285.500s5.920s0.93× (регресс)
6haval-224-51.050s1.100s0.95×
7edonr512391.0ms395.0ms0.99×
8haval-192-4954.0ms963.0ms0.99×
9edonr256363.0ms366.0ms0.99×
10haval-192-3633.0ms634.0ms1.00×

Полная таблица

Алгоритм5.6.1 CPU время6.0 OpenCL времяУскорение5.6.1 память6.0 память
blake2b583.0ms144.0ms4.05×6.29MB54.2MB
blake2s510.0ms72.9ms7.00×6.23MB53.7MB
blake3216.0ms86.0ms2.51×6.27MB56.0MB
crc3287.7ms26.3ms3.33×6.39MB53.3MB
crc32c108.0ms91.7ms1.18×6.27MB7.63MB
edonr256363.0ms366.0ms0.99×6.29MB7.83MB
edonr512391.0ms395.0ms0.99×6.27MB7.80MB
gost3.720s3.660s1.02×6.09MB7.59MB
haval-128-3666.0ms835.0ms0.80×6.32MB7.74MB
haval-128-4968.0ms1.180s0.82×6.34MB7.77MB
haval-128-51.070s1.330s0.80×6.28MB7.81MB
haval-160-3655.0ms641.0ms1.02×6.33MB7.76MB
haval-160-4968.0ms927.0ms1.04×6.24MB7.63MB
haval-160-51.110s1.100s1.01×6.34MB7.66MB
haval-192-3633.0ms634.0ms1.00×6.34MB7.84MB
haval-192-4954.0ms963.0ms0.99×6.30MB7.66MB
haval-192-51.070s1.070s1.00×6.35MB7.61MB
haval-224-3689.0ms640.0ms1.08×6.24MB7.82MB
haval-224-4964.0ms905.0ms1.07×6.29MB7.60MB
haval-224-51.050s1.100s0.95×6.32MB7.59MB
haval-256-3645.0ms602.0ms1.07×6.34MB7.82MB
haval-256-4966.0ms966.0ms1.00×6.34MB7.64MB
haval-256-51.060s1.050s1.01×6.35MB7.62MB
md28.170s307.0ms26.61×6.43MB53.7MB
md4341.0ms29.2ms11.68×6.40MB53.4MB
md5338.0ms29.3ms11.54×6.33MB53.3MB
ntlm383.0ms36.3ms10.55×6.46MB53.4MB
ripemd128769.0ms79.9ms9.62×6.28MB53.5MB
ripemd160745.0ms74.3ms10.03×6.38MB53.8MB
ripemd256474.0ms75.1ms6.31×6.27MB53.4MB
ripemd320792.0ms75.8ms10.45×6.30MB53.6MB
sha1250.0ms28.3ms8.83×6.41MB53.5MB
sha224250.0ms38.1ms6.56×6.39MB53.7MB
sha256249.0ms37.5ms6.64×6.44MB53.8MB
sha-3-2241.400s121.0ms11.57×6.21MB54.2MB
sha-3-2561.440s121.0ms11.90×6.29MB54.2MB
sha-3-3841.400s122.0ms11.48×6.30MB54.2MB
sha-3-5121.390s125.0ms11.12×6.27MB54.2MB
sha384797.0ms107.0ms7.45×6.44MB54.1MB
sha-3k-2241.440s121.0ms11.90×6.25MB54.2MB
sha-3k-2561.460s121.0ms12.07×6.31MB54.2MB
sha-3k-3841.420s130.0ms10.92×6.28MB54.2MB
sha-3k-5121.360s134.0ms10.15×6.22MB54.2MB
sha512852.0ms119.0ms7.16×6.37MB54.2MB
snefru1285.500s5.920s0.93×6.22MB7.80MB
snefru2565.250s5.710s0.92×6.24MB7.79MB
tiger386.0ms55.5ms6.95×6.27MB53.7MB
tiger2386.0ms56.2ms6.87×6.20MB53.7MB
tth1.150s449.0ms2.56×6.20MB7.67MB
whirlpool1.210s198.0ms6.11×6.45MB54.3MB

Windows CUDA

  • runs: auto
  • args: hash -p --noprobe

Геом. среднее: 2.50×, медиана 1.17× (диапазон 0.90× … 30.94×).

Топ-10 приростов (6.0 быстрее)

#Алгоритм5.6.16.0Ускорение
1sha3846.216s200.9ms30.94×
2sha5126.108s203.7ms29.99×
3sha-3k-2563.678s204.0ms18.03×
4sha-3k-2243.474s201.0ms17.28×
5sha-3-2563.343s200.1ms16.71×
6sha-3k-3843.045s212.8ms14.31×
7sha-3-3842.858s203.6ms14.04×
8sha-3-5122.798s201.3ms13.90×
9sha-3k-5122.672s204.0ms13.10×
10md23.617s278.0ms13.01×

Топ-10 наименьших приростов / регрессий

#Алгоритм5.6.16.0Ускорение
1sha1155.3ms171.7ms0.90× (регресс)
2md4162.3ms179.3ms0.91× (регресс)
3ntlm162.7ms178.6ms0.91× (регресс)
4sha256178.3ms182.9ms0.97×
5sha224173.1ms177.2ms0.98×
6edonr512521.3ms531.2ms0.98×
7md5165.5ms164.4ms1.01×
8haval-128-51.660s1.642s1.01×
9gost4.626s4.543s1.02×
10crc32172.9ms166.8ms1.04×

Полная таблица

Алгоритм5.6.1 время6.0 времяУскорение
blake2b1.191s190.4ms6.26×
blake2s1.000s162.8ms6.14×
blake3381.5ms154.7ms2.47×
crc32172.9ms166.8ms1.04×
crc32c120.4ms115.0ms1.05×
edonr256573.2ms453.7ms1.26×
edonr512521.3ms531.2ms0.98×
gost4.626s4.543s1.02×
haval-128-31.030s891.7ms1.16×
haval-128-41.481s1.249s1.19×
haval-128-51.660s1.642s1.01×
haval-160-31.049s950.2ms1.10×
haval-160-41.326s1.221s1.09×
haval-160-51.545s1.277s1.21×
haval-192-31.034s914.8ms1.13×
haval-192-41.401s1.220s1.15×
haval-192-51.572s1.515s1.04×
haval-224-3974.0ms868.2ms1.12×
haval-224-41.338s1.247s1.07×
haval-224-51.498s1.318s1.14×
haval-256-3998.9ms748.9ms1.33×
haval-256-41.299s1.098s1.18×
haval-256-51.409s1.284s1.10×
md23.617s278.0ms13.01×
md4162.3ms179.3ms0.91×
md5165.5ms164.4ms1.01×
ntlm162.7ms178.6ms0.91×
ripemd128959.1ms157.8ms6.08×
ripemd160613.1ms211.8ms2.89×
ripemd256811.0ms149.9ms5.41×
ripemd3201.042s159.1ms6.55×
sha1155.3ms171.7ms0.90×
sha224173.1ms177.2ms0.98×
sha256178.3ms182.9ms0.97×
sha-3-2242.510s202.0ms12.43×
sha-3-2563.343s200.1ms16.71×
sha-3-3842.858s203.6ms14.04×
sha-3-5122.798s201.3ms13.90×
sha3846.216s200.9ms30.94×
sha-3k-2243.474s201.0ms17.28×
sha-3k-2563.678s204.0ms18.03×
sha-3k-3843.045s212.8ms14.31×
sha-3k-5122.672s204.0ms13.10×
sha5126.108s203.7ms29.99×
snefru1286.348s5.884s1.08×
snefru2566.478s5.889s1.10×
tiger472.2ms197.4ms2.39×
tiger2464.0ms195.3ms2.38×
tth521.9ms503.2ms1.04×
whirlpool1.430s1.267s1.13×
2026-08-14T11:11:37+00:00 hash noweb opensource performance tool