2026-08-14T11:11:37+00:00
А теперь немного поговорим о производительности недавно вышедшей версии 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.1 | 6.0 | Инструмент |
|---|---|---|---|
| Linux CUDA | CUDA | CUDA | poop (duration 5000 ms) |
| Windows CUDA | CUDA | CUDA | hyperfine (runs: auto) |
| Linux OpenCL vs CPU | CPU (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 CUDA | 1.91× | 1.11× | 28 | 3 | 19 | ntlm 29.83× | edonr256 0.65× |
| Windows CUDA | 2.50× | 1.17× | 37 | 10 | 3 | sha384 30.94× | sha1 0.90× |
| Linux OpenCL vs CPU | 3.34× | 5.08× | 33 | 12 | 5 | md2 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.1 | Linux CUDA 6.0 | × | Windows CUDA 5.6.1 | Windows CUDA 6.0 | × | Linux CPU 5.6.1 | Linux OpenCL 6.0 | × |
|---|---|---|---|---|---|---|---|---|---|
blake2b | 1.070s | 254.0ms | 4.21× | 1.191s | 190.4ms | 6.26× | 583.0ms | 144.0ms | 4.05× |
blake2s | 897.0ms | 228.0ms | 3.93× | 1.000s | 162.8ms | 6.14× | 510.0ms | 72.9ms | 7.00× |
blake3 | 289.0ms | 215.0ms | 1.34× | 381.5ms | 154.7ms | 2.47× | 216.0ms | 86.0ms | 2.51× |
crc32 | 292.0ms | 235.0ms | 1.24× | 172.9ms | 166.8ms | 1.04× | 87.7ms | 26.3ms | 3.33× |
crc32c | 82.1ms | 99.0ms | 1.21× регресс | 120.4ms | 115.0ms | 1.05× | 108.0ms | 91.7ms | 1.18× |
edonr256 | 392.0ms | 607.0ms | 1.55× регресс | 573.2ms | 453.7ms | 1.26× | 363.0ms | 366.0ms | 1.01× регресс |
edonr512 | 456.0ms | 513.0ms | 1.12× регресс | 521.3ms | 531.2ms | 1.02× регресс | 391.0ms | 395.0ms | 1.01× регресс |
gost | 4.090s | 4.250s | 1.04× регресс | 4.626s | 4.543s | 1.02× | 3.720s | 3.660s | 1.02× |
haval-128-3 | 704.0ms | 823.0ms | 1.17× регресс | 1.030s | 891.7ms | 1.16× | 666.0ms | 835.0ms | 1.25× регресс |
haval-128-4 | 952.0ms | 1.040s | 1.09× регресс | 1.481s | 1.249s | 1.19× | 968.0ms | 1.180s | 1.22× регресс |
haval-128-5 | 1.060s | 1.140s | 1.08× регресс | 1.660s | 1.642s | 1.01× | 1.070s | 1.330s | 1.24× регресс |
haval-160-3 | 686.0ms | 775.0ms | 1.13× регресс | 1.049s | 950.2ms | 1.10× | 655.0ms | 641.0ms | 1.02× |
haval-160-4 | 946.0ms | 1.040s | 1.10× регресс | 1.326s | 1.221s | 1.09× | 968.0ms | 927.0ms | 1.04× |
haval-160-5 | 1.050s | 1.140s | 1.09× регресс | 1.545s | 1.277s | 1.21× | 1.110s | 1.100s | 1.01× |
haval-192-3 | 689.0ms | 786.0ms | 1.14× регресс | 1.034s | 914.8ms | 1.13× | 633.0ms | 634.0ms | ~1× |
haval-192-4 | 947.0ms | 1.030s | 1.09× регресс | 1.401s | 1.220s | 1.15× | 954.0ms | 963.0ms | 1.01× регресс |
haval-192-5 | 1.070s | 1.150s | 1.07× регресс | 1.572s | 1.515s | 1.04× | 1.070s | 1.070s | ~1× |
haval-224-3 | 678.0ms | 853.0ms | 1.26× регресс | 974.0ms | 868.2ms | 1.12× | 689.0ms | 640.0ms | 1.08× |
haval-224-4 | 939.0ms | 1.080s | 1.15× регресс | 1.338s | 1.247s | 1.07× | 964.0ms | 905.0ms | 1.07× |
haval-224-5 | 1.080s | 1.180s | 1.09× регресс | 1.498s | 1.318s | 1.14× | 1.050s | 1.100s | 1.05× регресс |
haval-256-3 | 676.0ms | 855.0ms | 1.26× регресс | 998.9ms | 748.9ms | 1.33× | 645.0ms | 602.0ms | 1.07× |
haval-256-4 | 955.0ms | 1.090s | 1.14× регресс | 1.299s | 1.098s | 1.18× | 966.0ms | 966.0ms | ~1× |
haval-256-5 | 1.040s | 1.200s | 1.15× регресс | 1.409s | 1.284s | 1.10× | 1.060s | 1.050s | 1.01× |
md2 | 3.670s | 342.0ms | 10.73× | 3.617s | 278.0ms | 13.01× | 8.170s | 307.0ms | 26.61× |
md4 | 241.0ms | 225.0ms | 1.07× | 162.3ms | 179.3ms | 1.10× регресс | 341.0ms | 29.2ms | 11.68× |
md5 | 242.0ms | 214.0ms | 1.13× | 165.5ms | 164.4ms | 1.01× | 338.0ms | 29.3ms | 11.54× |
ntlm | 6.920s | 232.0ms | 29.83× | 162.7ms | 178.6ms | 1.10× регресс | 383.0ms | 36.3ms | 10.55× |
ripemd128 | 812.0ms | 203.0ms | 4.00× | 959.1ms | 157.8ms | 6.08× | 769.0ms | 79.9ms | 9.62× |
ripemd160 | 678.0ms | 289.0ms | 2.35× | 613.1ms | 211.8ms | 2.89× | 745.0ms | 74.3ms | 10.03× |
ripemd256 | 549.0ms | 205.0ms | 2.68× | 811.0ms | 149.9ms | 5.41× | 474.0ms | 75.1ms | 6.31× |
ripemd320 | 785.0ms | 224.0ms | 3.50× | 1.042s | 159.1ms | 6.55× | 792.0ms | 75.8ms | 10.45× |
sha1 | 230.0ms | 245.0ms | 1.07× регресс | 155.3ms | 171.7ms | 1.11× регресс | 250.0ms | 28.3ms | 8.83× |
sha224 | 246.0ms | 225.0ms | 1.09× | 173.1ms | 177.2ms | 1.02× регресс | 250.0ms | 38.1ms | 6.56× |
sha256 | 243.0ms | 225.0ms | 1.08× | 178.3ms | 182.9ms | 1.03× регресс | 249.0ms | 37.5ms | 6.64× |
sha-3-224 | 1.330s | 246.0ms | 5.41× | 2.510s | 202.0ms | 12.43× | 1.400s | 121.0ms | 11.57× |
sha-3-256 | 1.320s | 271.0ms | 4.87× | 3.343s | 200.1ms | 16.71× | 1.440s | 121.0ms | 11.90× |
sha-3-384 | 1.290s | 274.0ms | 4.71× | 2.858s | 203.6ms | 14.04× | 1.400s | 122.0ms | 11.48× |
sha-3-512 | 1.270s | 268.0ms | 4.74× | 2.798s | 201.3ms | 13.90× | 1.390s | 125.0ms | 11.12× |
sha384 | 6.700s | 281.0ms | 23.84× | 6.216s | 200.9ms | 30.94× | 797.0ms | 107.0ms | 7.45× |
sha-3k-224 | 1.340s | 258.0ms | 5.19× | 3.474s | 201.0ms | 17.28× | 1.440s | 121.0ms | 11.90× |
sha-3k-256 | 1.320s | 269.0ms | 4.91× | 3.678s | 204.0ms | 18.03× | 1.460s | 121.0ms | 12.07× |
sha-3k-384 | 1.290s | 272.0ms | 4.74× | 3.045s | 212.8ms | 14.31× | 1.420s | 130.0ms | 10.92× |
sha-3k-512 | 1.280s | 270.0ms | 4.74× | 2.672s | 204.0ms | 13.10× | 1.360s | 134.0ms | 10.15× |
sha512 | 6.700s | 274.0ms | 24.45× | 6.108s | 203.7ms | 29.99× | 852.0ms | 119.0ms | 7.16× |
snefru128 | 5.660s | 5.750s | 1.02× регресс | 6.348s | 5.884s | 1.08× | 5.500s | 5.920s | 1.08× регресс |
snefru256 | 5.640s | 5.750s | 1.02× регресс | 6.478s | 5.889s | 1.10× | 5.250s | 5.710s | 1.09× регресс |
tiger | 413.0ms | 258.0ms | 1.60× | 472.2ms | 197.4ms | 2.39× | 386.0ms | 55.5ms | 6.95× |
tiger2 | 414.0ms | 274.0ms | 1.51× | 464.0ms | 195.3ms | 2.38× | 386.0ms | 56.2ms | 6.87× |
tth | 1.790s | 561.0ms | 3.19× | 521.9ms | 503.2ms | 1.04× | 1.150s | 449.0ms | 2.56× |
whirlpool | 1.610s | 1.410s | 1.14× | 1.430s | 1.267s | 1.13× | 1.210s | 198.0ms | 6.11× |
Linux CUDA
- duration: 5000 ms
- args:
hash -p --noprobe
Геом. среднее: 1.91×, медиана 1.11× (диапазон 0.65× … 29.83×).
Топ-10 приростов (6.0 быстрее)
| # | Алгоритм | 5.6.1 | 6.0 | Ускорение |
|---|---|---|---|---|
| 1 | ntlm | 6.920s | 232.0ms | 29.83× |
| 2 | sha512 | 6.700s | 274.0ms | 24.45× |
| 3 | sha384 | 6.700s | 281.0ms | 23.84× |
| 4 | md2 | 3.670s | 342.0ms | 10.73× |
| 5 | sha-3-224 | 1.330s | 246.0ms | 5.41× |
| 6 | sha-3k-224 | 1.340s | 258.0ms | 5.19× |
| 7 | sha-3k-256 | 1.320s | 269.0ms | 4.91× |
| 8 | sha-3-256 | 1.320s | 271.0ms | 4.87× |
| 9 | sha-3k-384 | 1.290s | 272.0ms | 4.74× |
| 10 | sha-3k-512 | 1.280s | 270.0ms | 4.74× |
Топ-10 наименьших приростов / регрессий
| # | Алгоритм | 5.6.1 | 6.0 | Ускорение |
|---|---|---|---|---|
| 1 | edonr256 | 392.0ms | 607.0ms | 0.65× (регресс) |
| 2 | haval-256-3 | 676.0ms | 855.0ms | 0.79× (регресс) |
| 3 | haval-224-3 | 678.0ms | 853.0ms | 0.79× (регресс) |
| 4 | crc32c | 82.1ms | 99.0ms | 0.83× (регресс) |
| 5 | haval-128-3 | 704.0ms | 823.0ms | 0.86× (регресс) |
| 6 | haval-256-5 | 1.040s | 1.200s | 0.87× (регресс) |
| 7 | haval-224-4 | 939.0ms | 1.080s | 0.87× (регресс) |
| 8 | haval-256-4 | 955.0ms | 1.090s | 0.88× (регресс) |
| 9 | haval-192-3 | 689.0ms | 786.0ms | 0.88× (регресс) |
| 10 | haval-160-3 | 686.0ms | 775.0ms | 0.89× (регресс) |
Полная таблица
| Алгоритм | 5.6.1 время | 6.0 время | Ускорение | 5.6.1 память | 6.0 память |
|---|---|---|---|---|---|
blake2b | 1.070s | 254.0ms | 4.21× | 6.29MB | 111MB |
blake2s | 897.0ms | 228.0ms | 3.93× | 6.27MB | 111MB |
blake3 | 289.0ms | 215.0ms | 1.34× | 6.31MB | 112MB |
crc32 | 292.0ms | 235.0ms | 1.24× | 157MB | 110MB |
crc32c | 82.1ms | 99.0ms | 0.83× | 6.40MB | 7.00MB |
edonr256 | 392.0ms | 607.0ms | 0.65× | 6.42MB | 7.13MB |
edonr512 | 456.0ms | 513.0ms | 0.89× | 6.41MB | 7.15MB |
gost | 4.090s | 4.250s | 0.96× | 6.40MB | 7.04MB |
haval-128-3 | 704.0ms | 823.0ms | 0.86× | 6.42MB | 7.22MB |
haval-128-4 | 952.0ms | 1.040s | 0.92× | 6.41MB | 7.17MB |
haval-128-5 | 1.060s | 1.140s | 0.93× | 6.47MB | 7.13MB |
haval-160-3 | 686.0ms | 775.0ms | 0.89× | 6.40MB | 7.15MB |
haval-160-4 | 946.0ms | 1.040s | 0.91× | 6.48MB | 7.16MB |
haval-160-5 | 1.050s | 1.140s | 0.92× | 6.40MB | 7.12MB |
haval-192-3 | 689.0ms | 786.0ms | 0.88× | 6.47MB | 7.17MB |
haval-192-4 | 947.0ms | 1.030s | 0.92× | 6.55MB | 7.16MB |
haval-192-5 | 1.070s | 1.150s | 0.93× | 6.42MB | 7.14MB |
haval-224-3 | 678.0ms | 853.0ms | 0.79× | 6.42MB | 7.15MB |
haval-224-4 | 939.0ms | 1.080s | 0.87× | 6.45MB | 7.16MB |
haval-224-5 | 1.080s | 1.180s | 0.92× | 6.52MB | 7.14MB |
haval-256-3 | 676.0ms | 855.0ms | 0.79× | 6.43MB | 7.13MB |
haval-256-4 | 955.0ms | 1.090s | 0.88× | 6.52MB | 7.15MB |
haval-256-5 | 1.040s | 1.200s | 0.87× | 6.46MB | 7.15MB |
md2 | 3.670s | 342.0ms | 10.73× | 136MB | 111MB |
md4 | 241.0ms | 225.0ms | 1.07× | 157MB | 111MB |
md5 | 242.0ms | 214.0ms | 1.13× | 157MB | 110MB |
ntlm | 6.920s | 232.0ms | 29.83× | 157MB | 111MB |
ripemd128 | 812.0ms | 203.0ms | 4.00× | 6.46MB | 110MB |
ripemd160 | 678.0ms | 289.0ms | 2.35× | 136MB | 110MB |
ripemd256 | 549.0ms | 205.0ms | 2.68× | 6.46MB | 111MB |
ripemd320 | 785.0ms | 224.0ms | 3.50× | 6.42MB | 111MB |
sha1 | 230.0ms | 245.0ms | 0.94× | 136MB | 111MB |
sha224 | 246.0ms | 225.0ms | 1.09× | 136MB | 111MB |
sha256 | 243.0ms | 225.0ms | 1.08× | 136MB | 111MB |
sha-3-224 | 1.330s | 246.0ms | 5.41× | 6.43MB | 114MB |
sha-3-256 | 1.320s | 271.0ms | 4.87× | 6.43MB | 114MB |
sha-3-384 | 1.290s | 274.0ms | 4.71× | 6.47MB | 114MB |
sha-3-512 | 1.270s | 268.0ms | 4.74× | 6.37MB | 114MB |
sha384 | 6.700s | 281.0ms | 23.84× | 137MB | 111MB |
sha-3k-224 | 1.340s | 258.0ms | 5.19× | 6.51MB | 114MB |
sha-3k-256 | 1.320s | 269.0ms | 4.91× | 6.42MB | 114MB |
sha-3k-384 | 1.290s | 272.0ms | 4.74× | 6.36MB | 114MB |
sha-3k-512 | 1.280s | 270.0ms | 4.74× | 6.40MB | 114MB |
sha512 | 6.700s | 274.0ms | 24.45× | 137MB | 111MB |
snefru128 | 5.660s | 5.750s | 0.98× | 6.32MB | 7.16MB |
snefru256 | 5.640s | 5.750s | 0.98× | 6.43MB | 7.18MB |
tiger | 413.0ms | 258.0ms | 1.60× | 6.45MB | 111MB |
tiger2 | 414.0ms | 274.0ms | 1.51× | 6.42MB | 111MB |
tth | 1.790s | 561.0ms | 3.19× | 6.37MB | 7.03MB |
whirlpool | 1.610s | 1.410s | 1.14× | 136MB | 111MB |
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 CPU | 6.0 OpenCL | Ускорение |
|---|---|---|---|---|
| 1 | md2 | 8.170s | 307.0ms | 26.61× |
| 2 | sha-3k-256 | 1.460s | 121.0ms | 12.07× |
| 3 | sha-3-256 | 1.440s | 121.0ms | 11.90× |
| 4 | sha-3k-224 | 1.440s | 121.0ms | 11.90× |
| 5 | md4 | 341.0ms | 29.2ms | 11.68× |
| 6 | sha-3-224 | 1.400s | 121.0ms | 11.57× |
| 7 | md5 | 338.0ms | 29.3ms | 11.54× |
| 8 | sha-3-384 | 1.400s | 122.0ms | 11.48× |
| 9 | sha-3-512 | 1.390s | 125.0ms | 11.12× |
| 10 | sha-3k-384 | 1.420s | 130.0ms | 10.92× |
Топ-10 наименьших приростов / регрессий
| # | Алгоритм | 5.6.1 CPU | 6.0 OpenCL | Ускорение |
|---|---|---|---|---|
| 1 | haval-128-3 | 666.0ms | 835.0ms | 0.80× (регресс) |
| 2 | haval-128-5 | 1.070s | 1.330s | 0.80× (регресс) |
| 3 | haval-128-4 | 968.0ms | 1.180s | 0.82× (регресс) |
| 4 | snefru256 | 5.250s | 5.710s | 0.92× (регресс) |
| 5 | snefru128 | 5.500s | 5.920s | 0.93× (регресс) |
| 6 | haval-224-5 | 1.050s | 1.100s | 0.95× |
| 7 | edonr512 | 391.0ms | 395.0ms | 0.99× |
| 8 | haval-192-4 | 954.0ms | 963.0ms | 0.99× |
| 9 | edonr256 | 363.0ms | 366.0ms | 0.99× |
| 10 | haval-192-3 | 633.0ms | 634.0ms | 1.00× |
Полная таблица
| Алгоритм | 5.6.1 CPU время | 6.0 OpenCL время | Ускорение | 5.6.1 память | 6.0 память |
|---|---|---|---|---|---|
blake2b | 583.0ms | 144.0ms | 4.05× | 6.29MB | 54.2MB |
blake2s | 510.0ms | 72.9ms | 7.00× | 6.23MB | 53.7MB |
blake3 | 216.0ms | 86.0ms | 2.51× | 6.27MB | 56.0MB |
crc32 | 87.7ms | 26.3ms | 3.33× | 6.39MB | 53.3MB |
crc32c | 108.0ms | 91.7ms | 1.18× | 6.27MB | 7.63MB |
edonr256 | 363.0ms | 366.0ms | 0.99× | 6.29MB | 7.83MB |
edonr512 | 391.0ms | 395.0ms | 0.99× | 6.27MB | 7.80MB |
gost | 3.720s | 3.660s | 1.02× | 6.09MB | 7.59MB |
haval-128-3 | 666.0ms | 835.0ms | 0.80× | 6.32MB | 7.74MB |
haval-128-4 | 968.0ms | 1.180s | 0.82× | 6.34MB | 7.77MB |
haval-128-5 | 1.070s | 1.330s | 0.80× | 6.28MB | 7.81MB |
haval-160-3 | 655.0ms | 641.0ms | 1.02× | 6.33MB | 7.76MB |
haval-160-4 | 968.0ms | 927.0ms | 1.04× | 6.24MB | 7.63MB |
haval-160-5 | 1.110s | 1.100s | 1.01× | 6.34MB | 7.66MB |
haval-192-3 | 633.0ms | 634.0ms | 1.00× | 6.34MB | 7.84MB |
haval-192-4 | 954.0ms | 963.0ms | 0.99× | 6.30MB | 7.66MB |
haval-192-5 | 1.070s | 1.070s | 1.00× | 6.35MB | 7.61MB |
haval-224-3 | 689.0ms | 640.0ms | 1.08× | 6.24MB | 7.82MB |
haval-224-4 | 964.0ms | 905.0ms | 1.07× | 6.29MB | 7.60MB |
haval-224-5 | 1.050s | 1.100s | 0.95× | 6.32MB | 7.59MB |
haval-256-3 | 645.0ms | 602.0ms | 1.07× | 6.34MB | 7.82MB |
haval-256-4 | 966.0ms | 966.0ms | 1.00× | 6.34MB | 7.64MB |
haval-256-5 | 1.060s | 1.050s | 1.01× | 6.35MB | 7.62MB |
md2 | 8.170s | 307.0ms | 26.61× | 6.43MB | 53.7MB |
md4 | 341.0ms | 29.2ms | 11.68× | 6.40MB | 53.4MB |
md5 | 338.0ms | 29.3ms | 11.54× | 6.33MB | 53.3MB |
ntlm | 383.0ms | 36.3ms | 10.55× | 6.46MB | 53.4MB |
ripemd128 | 769.0ms | 79.9ms | 9.62× | 6.28MB | 53.5MB |
ripemd160 | 745.0ms | 74.3ms | 10.03× | 6.38MB | 53.8MB |
ripemd256 | 474.0ms | 75.1ms | 6.31× | 6.27MB | 53.4MB |
ripemd320 | 792.0ms | 75.8ms | 10.45× | 6.30MB | 53.6MB |
sha1 | 250.0ms | 28.3ms | 8.83× | 6.41MB | 53.5MB |
sha224 | 250.0ms | 38.1ms | 6.56× | 6.39MB | 53.7MB |
sha256 | 249.0ms | 37.5ms | 6.64× | 6.44MB | 53.8MB |
sha-3-224 | 1.400s | 121.0ms | 11.57× | 6.21MB | 54.2MB |
sha-3-256 | 1.440s | 121.0ms | 11.90× | 6.29MB | 54.2MB |
sha-3-384 | 1.400s | 122.0ms | 11.48× | 6.30MB | 54.2MB |
sha-3-512 | 1.390s | 125.0ms | 11.12× | 6.27MB | 54.2MB |
sha384 | 797.0ms | 107.0ms | 7.45× | 6.44MB | 54.1MB |
sha-3k-224 | 1.440s | 121.0ms | 11.90× | 6.25MB | 54.2MB |
sha-3k-256 | 1.460s | 121.0ms | 12.07× | 6.31MB | 54.2MB |
sha-3k-384 | 1.420s | 130.0ms | 10.92× | 6.28MB | 54.2MB |
sha-3k-512 | 1.360s | 134.0ms | 10.15× | 6.22MB | 54.2MB |
sha512 | 852.0ms | 119.0ms | 7.16× | 6.37MB | 54.2MB |
snefru128 | 5.500s | 5.920s | 0.93× | 6.22MB | 7.80MB |
snefru256 | 5.250s | 5.710s | 0.92× | 6.24MB | 7.79MB |
tiger | 386.0ms | 55.5ms | 6.95× | 6.27MB | 53.7MB |
tiger2 | 386.0ms | 56.2ms | 6.87× | 6.20MB | 53.7MB |
tth | 1.150s | 449.0ms | 2.56× | 6.20MB | 7.67MB |
whirlpool | 1.210s | 198.0ms | 6.11× | 6.45MB | 54.3MB |
Windows CUDA
- runs: auto
- args:
hash -p --noprobe
Геом. среднее: 2.50×, медиана 1.17× (диапазон 0.90× … 30.94×).
Топ-10 приростов (6.0 быстрее)
| # | Алгоритм | 5.6.1 | 6.0 | Ускорение |
|---|---|---|---|---|
| 1 | sha384 | 6.216s | 200.9ms | 30.94× |
| 2 | sha512 | 6.108s | 203.7ms | 29.99× |
| 3 | sha-3k-256 | 3.678s | 204.0ms | 18.03× |
| 4 | sha-3k-224 | 3.474s | 201.0ms | 17.28× |
| 5 | sha-3-256 | 3.343s | 200.1ms | 16.71× |
| 6 | sha-3k-384 | 3.045s | 212.8ms | 14.31× |
| 7 | sha-3-384 | 2.858s | 203.6ms | 14.04× |
| 8 | sha-3-512 | 2.798s | 201.3ms | 13.90× |
| 9 | sha-3k-512 | 2.672s | 204.0ms | 13.10× |
| 10 | md2 | 3.617s | 278.0ms | 13.01× |
Топ-10 наименьших приростов / регрессий
| # | Алгоритм | 5.6.1 | 6.0 | Ускорение |
|---|---|---|---|---|
| 1 | sha1 | 155.3ms | 171.7ms | 0.90× (регресс) |
| 2 | md4 | 162.3ms | 179.3ms | 0.91× (регресс) |
| 3 | ntlm | 162.7ms | 178.6ms | 0.91× (регресс) |
| 4 | sha256 | 178.3ms | 182.9ms | 0.97× |
| 5 | sha224 | 173.1ms | 177.2ms | 0.98× |
| 6 | edonr512 | 521.3ms | 531.2ms | 0.98× |
| 7 | md5 | 165.5ms | 164.4ms | 1.01× |
| 8 | haval-128-5 | 1.660s | 1.642s | 1.01× |
| 9 | gost | 4.626s | 4.543s | 1.02× |
| 10 | crc32 | 172.9ms | 166.8ms | 1.04× |
Полная таблица
| Алгоритм | 5.6.1 время | 6.0 время | Ускорение |
|---|---|---|---|
blake2b | 1.191s | 190.4ms | 6.26× |
blake2s | 1.000s | 162.8ms | 6.14× |
blake3 | 381.5ms | 154.7ms | 2.47× |
crc32 | 172.9ms | 166.8ms | 1.04× |
crc32c | 120.4ms | 115.0ms | 1.05× |
edonr256 | 573.2ms | 453.7ms | 1.26× |
edonr512 | 521.3ms | 531.2ms | 0.98× |
gost | 4.626s | 4.543s | 1.02× |
haval-128-3 | 1.030s | 891.7ms | 1.16× |
haval-128-4 | 1.481s | 1.249s | 1.19× |
haval-128-5 | 1.660s | 1.642s | 1.01× |
haval-160-3 | 1.049s | 950.2ms | 1.10× |
haval-160-4 | 1.326s | 1.221s | 1.09× |
haval-160-5 | 1.545s | 1.277s | 1.21× |
haval-192-3 | 1.034s | 914.8ms | 1.13× |
haval-192-4 | 1.401s | 1.220s | 1.15× |
haval-192-5 | 1.572s | 1.515s | 1.04× |
haval-224-3 | 974.0ms | 868.2ms | 1.12× |
haval-224-4 | 1.338s | 1.247s | 1.07× |
haval-224-5 | 1.498s | 1.318s | 1.14× |
haval-256-3 | 998.9ms | 748.9ms | 1.33× |
haval-256-4 | 1.299s | 1.098s | 1.18× |
haval-256-5 | 1.409s | 1.284s | 1.10× |
md2 | 3.617s | 278.0ms | 13.01× |
md4 | 162.3ms | 179.3ms | 0.91× |
md5 | 165.5ms | 164.4ms | 1.01× |
ntlm | 162.7ms | 178.6ms | 0.91× |
ripemd128 | 959.1ms | 157.8ms | 6.08× |
ripemd160 | 613.1ms | 211.8ms | 2.89× |
ripemd256 | 811.0ms | 149.9ms | 5.41× |
ripemd320 | 1.042s | 159.1ms | 6.55× |
sha1 | 155.3ms | 171.7ms | 0.90× |
sha224 | 173.1ms | 177.2ms | 0.98× |
sha256 | 178.3ms | 182.9ms | 0.97× |
sha-3-224 | 2.510s | 202.0ms | 12.43× |
sha-3-256 | 3.343s | 200.1ms | 16.71× |
sha-3-384 | 2.858s | 203.6ms | 14.04× |
sha-3-512 | 2.798s | 201.3ms | 13.90× |
sha384 | 6.216s | 200.9ms | 30.94× |
sha-3k-224 | 3.474s | 201.0ms | 17.28× |
sha-3k-256 | 3.678s | 204.0ms | 18.03× |
sha-3k-384 | 3.045s | 212.8ms | 14.31× |
sha-3k-512 | 2.672s | 204.0ms | 13.10× |
sha512 | 6.108s | 203.7ms | 29.99× |
snefru128 | 6.348s | 5.884s | 1.08× |
snefru256 | 6.478s | 5.889s | 1.10× |
tiger | 472.2ms | 197.4ms | 2.39× |
tiger2 | 464.0ms | 195.3ms | 2.38× |
tth | 521.9ms | 503.2ms | 1.04× |
whirlpool | 1.430s | 1.267s | 1.13× |