-rw-r--r-- 2945 libmceliece-20260622/doc/speed.md raw
In the following speed table, smaller numbers are better.
The numbers are interquartile means of single-core cycle counts on various microarchitectures.
Overclocking is disabled.
| μarch | KEM | keypair | enc | dec |
| :---- | :--- | ------: | ---: | ---: |
| Golden Cove (2021) | 348864f | 26702721 | 25877 | 104315
| | 348864 | 47241390 | 25147 | 104299
| | 460896f | 85891861 | 56528 | 225219
| | 460896 | 118239775 | 51638 | 225602
| | 6688128f | 192996034 | 88660 | 257820
| | 6688128 | 264578202 | 90780 | 257435
| | 6960119f | 162596200 | 94413 | 246512
| | 6960119 | 273461119 | 92832 | 246622
| | 8192128f | 203579065 | 95385 | 258386
| | 8192128 | 337716772 | 97097 | 258619
| Zen 3 (2020) | 348864f | 25550915 | 20871 | 106168
| | 348864 | 38014967 | 20868 | 106193
| | 460896f | 80984815 | 51551 | 202858
| | 460896 | 114379521 | 50832 | 202569
| | 6688128f | 170997101 | 85067 | 242624
| | 6688128 | 284171715 | 82481 | 242626
| | 6960119f | 146785133 | 88667 | 224698
| | 6960119 | 238814535 | 85131 | 224710
| | 8192128f | 187085229 | 99484 | 243160
| | 8192128 | 239564508 | 100051 | 243151
| Cortex-A72 (2016) | 348864f | 130909354 | 92767 | 669595
| | 348864 | 220469639 | 90310 | 670412
| | 460896f | 573689089 | 230150 | 1828528
| | 460896 | 1014412985 | 219213 | 1796065
| | 6688128f | 3602145473 | 440274 | 2035241
| | 6688128 | 2714194348 | 446666 | 2023408
| | 6960119f | 3165330320 | 439753 | 1916320
| | 6960119 | 2736709149 | 441183 | 1966159
| | 8192128f | 4717814971 | 522378 | 2015387
| | 8192128 | 4090323266 | 524085 | 2013453
| Skylake (2015) | 348864f | 30202260 | 39083 | 119248
| | 348864 | 51334574 | 38436 | 119346
| | 460896f | 99338536 | 79356 | 243173
| | 460896 | 159315082 | 79933 | 242728
| | 6688128f | 236107379 | 133417 | 288182
| | 6688128 | 317940073 | 133695 | 288141
| | 6960119f | 194706484 | 128107 | 265536
| | 6960119 | 313286440 | 135365 | 265443
| | 8192128f | 250244398 | 139800 | 294447
| | 8192128 | 345668115 | 140313 | 294391
| Haswell (2013) | 348864f | 36182898 | 43226 | 131172
| | 348864 | 54661655 | 41932 | 131201
| | 460896f | 117386581 | 82267 | 263199
| | 460896 | 223576010 | 96023 | 263178
| | 6688128f | 284200048 | 147210 | 317726
| | 6688128 | 424699686 | 148781 | 317442
| | 6960119f | 244918803 | 144722 | 291042
| | 6960119 | 384489053 | 152081 | 291106
| | 8192128f | 311243452 | 159440 | 314944
| | 8192128 | 474381602 | 155255 | 315058
Microarchitectures are listed in reverse chronological order of when they were introduced.
In the libmceliece distribution,
`command/mceliece-speed.c` measures libmceliece;
`benchmarks/*-*` is the output of `mceliece-speed` on various machines;
and `autogen/md-speed` extracts the table from those measurements.
The table reports only interquartile means of cycle counts.
See the full output files
for differences between multiple measurements and the interquartile mean.