-rw-r--r-- 2509 libmceliece-20240513/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 |
| :---- | :--- | ------: | ---: | ---: |
| Zen 3 (2020) | 348864f | 25589845 | 22897 | 99684
| | 348864 | 38602285 | 22115 | 99666
| | 460896f | 75556358 | 47868 | 203905
| | 460896 | 121695897 | 52717 | 203937
| | 6688128f | 152383521 | 81905 | 237919
| | 6688128 | 271203794 | 82804 | 237688
| | 6960119f | 138846132 | 84506 | 228152
| | 6960119 | 227806627 | 85902 | 228176
| | 8192128f | 173855341 | 100794 | 238135
| | 8192128 | 278479878 | 95158 | 238170
| Cortex-A72 (2016) | 348864f | 254263118 | 196237 | 659793
| | 348864 | 334123845 | 188766 | 659063
| | 460896f | 970889805 | 406786 | 1777314
| | 460896 | 1383194061 | 392769 | 1775714
| | 6688128f | 4386761616 | 780561 | 2021442
| | 6688128 | 2901802792 | 745340 | 2022452
| | 6960119f | 3806418876 | 709333 | 1953096
| | 6960119 | 2555564451 | 742344 | 1953928
| | 8192128f | 5494655765 | 841953 | 1950167
| | 8192128 | 4971332265 | 830206 | 1950921
| Skylake (2015) | 348864f | 29929407 | 30238 | 113936
| | 348864 | 46346406 | 30507 | 114007
| | 460896f | 95273707 | 63254 | 243032
| | 460896 | 160086273 | 65589 | 243016
| | 6688128f | 229181676 | 108836 | 287129
| | 6688128 | 370844067 | 107019 | 287821
| | 6960119f | 185368263 | 115282 | 266069
| | 6960119 | 301755341 | 115170 | 265945
| | 8192128f | 235835488 | 121788 | 287784
| | 8192128 | 288402336 | 122017 | 287953
| Haswell (2013) | 348864f | 36358371 | 36473 | 121798
| | 348864 | 56547209 | 36670 | 121915
| | 460896f | 113750151 | 77705 | 256292
| | 460896 | 191557721 | 76139 | 256214
| | 6688128f | 273037997 | 125670 | 304945
| | 6688128 | 353468181 | 128118 | 304658
| | 6960119f | 241661662 | 134877 | 282401
| | 6960119 | 345605381 | 133572 | 282327
| | 8192128f | 308065654 | 148219 | 304642
| | 8192128 | 417334872 | 148947 | 304135
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.