In the following speed table, the "bytes" column is the number of message bytes being authenticated. Numbers in columns after that are single-core cycles/byte on various microarchitectures (with overclocking disabled), so smaller numbers are better.
The "auth q1", "iqm", and "q3" columns are first quartile, interquartile mean, and third quartile
of many cycle-count measurements for message authentication divided by the number of message bytes.
The "verify q1", "iqm", and "q3" columns are for verifying an authenticator.
The "exp auth" and "exp verify" columns
show separate measurements of lib1305
after an experimental pre-configuration mv skipcompilers/* compilers
step
(which is unsupported: it uses instructions not supported by valgrind
).
Each cycle count includes cycle-counting overhead. This overhead is typically around 40 cycles on Intel/AMD CPUs, accounting for about 4 cycles/byte for 11-byte messages, or about 0.3 cycles/byte for 139-byte messages.
μarch | bytes | auth q1 | iqm | q3 | verify q1 | iqm | q3 | exp auth q1 | iqm | q3 | exp verify q1 | iqm | q3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Zen 2 (2019) | 11 | 9.545 | 9.545 | 9.545 | 11.455 | 11.597 | 11.727 | 9.545 | 9.545 | 9.545 | 11.273 | 11.585 | 11.818 |
26 | 5.538 | 5.538 | 5.538 | 5.808 | 5.808 | 5.808 | 5.615 | 5.615 | 5.615 | 5.808 | 5.808 | 5.808 | |
61 | 3.656 | 3.656 | 3.656 | 3.754 | 3.819 | 3.869 | 3.656 | 3.656 | 3.656 | 3.787 | 3.787 | 3.787 | |
139 | 2.871 | 2.871 | 2.871 | 2.978 | 2.978 | 2.978 | 2.906 | 2.906 | 2.906 | 2.986 | 2.986 | 2.986 | |
314 | 2.420 | 2.420 | 2.420 | 2.411 | 2.411 | 2.411 | 2.424 | 2.424 | 2.424 | 2.424 | 2.433 | 2.439 | |
709 | 1.477 | 1.477 | 1.477 | 1.482 | 1.482 | 1.482 | 1.450 | 1.450 | 1.450 | 1.474 | 1.474 | 1.474 | |
1597 | 1.021 | 1.021 | 1.021 | 1.039 | 1.039 | 1.039 | 1.036 | 1.036 | 1.036 | 1.056 | 1.056 | 1.056 | |
3595 | 0.843 | 0.843 | 0.843 | 0.860 | 0.860 | 0.860 | 0.845 | 0.845 | 0.845 | 0.855 | 0.855 | 0.855 | |
8090 | 0.765 | 0.765 | 0.765 | 0.765 | 0.765 | 0.765 | 0.766 | 0.766 | 0.766 | 0.767 | 0.767 | 0.767 | |
18205 | 0.729 | 0.729 | 0.729 | 0.729 | 0.729 | 0.729 | 0.728 | 0.728 | 0.728 | 0.728 | 0.728 | 0.728 | |
Skylake (2015) | 11 | 11.273 | 11.375 | 11.455 | 14.091 | 14.159 | 14.182 | 11.364 | 11.494 | 11.545 | 14.273 | 14.278 | 14.364 |
26 | 5.615 | 5.627 | 5.654 | 6.731 | 6.769 | 6.846 | 5.615 | 5.627 | 5.654 | 6.731 | 6.800 | 6.846 | |
61 | 3.574 | 3.701 | 3.836 | 4.148 | 4.202 | 4.254 | 3.500 | 3.621 | 3.893 | 4.115 | 4.192 | 4.246 | |
139 | 2.878 | 2.920 | 2.957 | 3.147 | 3.167 | 3.205 | 2.820 | 2.874 | 2.924 | 3.122 | 3.140 | 3.169 | |
314 | 1.718 | 1.738 | 1.753 | 1.828 | 1.837 | 1.849 | 1.670 | 1.683 | 1.691 | 1.814 | 1.827 | 1.834 | |
709 | 1.195 | 1.210 | 1.227 | 1.244 | 1.254 | 1.262 | 1.193 | 1.206 | 1.216 | 1.244 | 1.250 | 1.259 | |
1597 | 0.961 | 0.965 | 0.970 | 0.983 | 0.988 | 0.993 | 0.959 | 0.965 | 0.972 | 0.982 | 0.986 | 0.990 | |
3595 | 0.862 | 0.865 | 0.868 | 0.872 | 0.875 | 0.877 | 0.862 | 0.865 | 0.871 | 0.871 | 0.874 | 0.877 | |
8090 | 0.819 | 0.820 | 0.823 | 0.821 | 0.824 | 0.827 | 0.816 | 0.820 | 0.822 | 0.821 | 0.822 | 0.824 | |
18205 | 0.798 | 0.799 | 0.801 | 0.798 | 0.800 | 0.802 | 0.799 | 0.801 | 0.803 | 0.797 | 0.799 | 0.800 | |
Core 2 (2006) | 11 | 16.545 | 16.545 | 16.545 | 19.182 | 19.261 | 19.364 | 16.545 | 16.545 | 16.545 | 19.273 | 19.273 | 19.273 |
26 | 9.500 | 9.500 | 9.500 | 10.654 | 10.654 | 10.654 | 9.769 | 9.769 | 9.769 | 10.808 | 10.808 | 10.808 | |
61 | 7.902 | 7.902 | 7.902 | 8.525 | 8.590 | 8.656 | 7.902 | 7.902 | 7.902 | 8.525 | 8.598 | 8.656 | |
139 | 6.763 | 6.790 | 6.813 | 7.122 | 7.128 | 7.144 | 6.813 | 6.849 | 6.878 | 7.086 | 7.128 | 7.173 | |
314 | 6.156 | 6.169 | 6.178 | 6.194 | 6.198 | 6.201 | 6.121 | 6.146 | 6.178 | 6.191 | 6.195 | 6.197 | |
709 | 4.276 | 4.300 | 4.323 | 4.360 | 4.362 | 4.362 | 4.289 | 4.304 | 4.323 | 4.358 | 4.360 | 4.361 | |
1597 | 3.401 | 3.413 | 3.425 | 3.425 | 3.425 | 3.425 | 3.410 | 3.410 | 3.411 | 3.439 | 3.439 | 3.439 | |
3595 | 3.000 | 3.003 | 3.007 | 3.019 | 3.019 | 3.019 | 3.010 | 3.017 | 3.021 | 3.022 | 3.022 | 3.022 | |
8090 | 2.833 | 2.835 | 2.836 | 2.836 | 2.839 | 2.841 | 2.838 | 2.841 | 2.842 | 2.848 | 2.848 | 2.848 | |
18205 | 2.768 | 2.770 | 2.771 | 2.764 | 2.764 | 2.764 | 2.763 | 2.766 | 2.773 | 2.775 | 2.775 | 2.775 |
Microarchitectures are listed in reverse chronological order of when they were introduced.
In the lib1305 distribution,
command/lib1305-speed.c
measures lib1305;
benchmarks/*-*
is the output of lib1305-speed
on various machines;
and autogen/md-speed
extracts the table from those measurements.
See the full output files
for differences between multiple measurements and the interquartile mean.
Version: This is version 2025.04.06 of the "Speed" web page.