-rw-r--r-- 2509 libmceliece-20240726/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 | 23853524 | 22048 | 99079
| | 348864 | 41913413 | 21434 | 99144
| | 460896f | 70726205 | 50358 | 202868
| | 460896 | 107960801 | 48711 | 202753
| | 6688128f | 148348774 | 76501 | 240365
| | 6688128 | 217324257 | 82857 | 240240
| | 6960119f | 132711223 | 83019 | 226515
| | 6960119 | 214136371 | 81994 | 226473
| | 8192128f | 169521365 | 90998 | 239484
| | 8192128 | 293275460 | 91071 | 239458
| Cortex-A72 (2016) | 348864f | 196809484 | 187101 | 641657
| | 348864 | 237348274 | 178978 | 641346
| | 460896f | 733235093 | 373112 | 1823173
| | 460896 | 1259026237 | 377413 | 1822539
| | 6688128f | 4133626722 | 791317 | 2037935
| | 6688128 | 2635645618 | 710841 | 2037958
| | 6960119f | 3524667051 | 721779 | 1954935
| | 6960119 | 2314179976 | 697555 | 1955669
| | 8192128f | 5388303739 | 804241 | 2012050
| | 8192128 | 4125436615 | 826439 | 2014243
| Skylake (2015) | 348864f | 30969609 | 30832 | 113526
| | 348864 | 47355747 | 30982 | 113628
| | 460896f | 100359501 | 67049 | 241997
| | 460896 | 136741291 | 67927 | 241932
| | 6688128f | 236094120 | 109611 | 283746
| | 6688128 | 395914021 | 105851 | 284021
| | 6960119f | 192060417 | 112533 | 267271
| | 6960119 | 257717718 | 115340 | 267109
| | 8192128f | 244595111 | 119878 | 284017
| | 8192128 | 315784893 | 120235 | 283563
| Haswell (2013) | 348864f | 36231139 | 35251 | 124074
| | 348864 | 50886035 | 35351 | 122245
| | 460896f | 116816359 | 77217 | 257374
| | 460896 | 195973792 | 76752 | 257494
| | 6688128f | 287254651 | 129799 | 300355
| | 6688128 | 496069556 | 128546 | 300146
| | 6960119f | 247475836 | 134337 | 281215
| | 6960119 | 434966940 | 133948 | 281167
| | 8192128f | 316014203 | 146582 | 303732
| | 8192128 | 507470319 | 146593 | 303564
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.