-r--r--r-- 15806 libmceliece-20250507/doc/html/speed.html raw
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type="text/css"> html{overflow-y:scroll;background-color:#196069} body{font-family:"Noto Sans","Droid Sans","DejaVu Sans","Arial",sans-serif;line-height:1.5} tt,code{background-color:#f0f0f0;font-family:"Noto Sans Mono","Droid Sans Mono","DejaVu Sans Mono","Courier New",monospace,sans-serif;font-size:1em;} pre{margin-left:3em} p,ul,ol,blockquote,pre{font-size:1.0em;line-height:1.6} li p{font-size:1.0em} blockquote p{font-size:1.0em} h1{font-size:1.5em} h2{font-size:1.3em} h3{font-size:1.0em} h1 a{text-decoration:none} table{border-collapse:collapse} th,td{border:1px solid black} table a{text-decoration:none} table tr{font-size:1.0em;line-height:1.6em} table tr{font-size:1.0em;line-height:1.5} tbody tr:nth-child(20n+1){background-color:#f0ffff} tbody tr:nth-child(20n+2){background-color:#f0ffff} tbody tr:nth-child(20n+3){background-color:#f0ffff} tbody tr:nth-child(20n+4){background-color:#f0ffff} tbody tr:nth-child(20n+5){background-color:#f0ffff} tbody tr:nth-child(20n+6){background-color:#f0ffff} tbody tr:nth-child(20n+7){background-color:#f0ffff} tbody tr:nth-child(20n+8){background-color:#f0ffff} tbody tr:nth-child(20n+9){background-color:#f0ffff} tbody tr:nth-child(20n+10){background-color:#f0ffff} tbody tr:nth-child(20n+11){background-color:#fffff0} tbody tr:nth-child(20n+12){background-color:#fffff0} tbody tr:nth-child(20n+13){background-color:#fffff0} tbody tr:nth-child(20n+14){background-color:#fffff0} tbody tr:nth-child(20n+15){background-color:#fffff0} tbody tr:nth-child(20n+16){background-color:#fffff0} tbody tr:nth-child(20n+17){background-color:#fffff0} tbody tr:nth-child(20n+18){background-color:#fffff0} tbody tr:nth-child(20n+19){background-color:#fffff0} tbody tr:nth-child(20n+20){background-color:#fffff0} .headline{padding:0;font-weight:bold;font-size:1.0em;vertical-align:top;padding-bottom:0.5em;color:#ffffff;background-color:#196069} .navt{display:block;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;padding:0;vertical-align:center;font-size:1.0em} .here{background-color:#196069} .here{color:#ffffff} .away{background-color:#196069} .away a{text-decoration:none;display:block;color:#ffffff} .away a:hover,.away a:active{text-decoration:underline} .main{padding:5px} .main{background-color:#ffffff} .pagetitle{font-size:1.4em;font-weight:bold} @media only screen and (min-width:512px) { .fixed{margin:0;padding:0;width:160px;height:100%;position:fixed;overflow:auto} .main{margin-left:170px} } </style> <title> libmceliece: Speed</title> </head> <body> <div class=fixed> <div class=headline> libmceliece</div> <div class="navt away"><a href=index.html>Intro</a> </div><div class="navt away"><a href=download.html>Download</a> </div><div class="navt away"><a href=install.html>Install</a> </div><div class="navt away"><a href=test.html>Test</a> </div><div class="navt away"><a href=api.html>API</a> </div><div class="navt away"><a href=cli.html>CLI</a> </div><div class="navt away"><a href=security.html>Security</a> </div><div class="navt away"><a href=verification.html>Verification</a> </div><div class="navt here">Speed </div><div class="navt away"><a href=internals.html>Internals</a> </div><div class="navt away"><a href=people.html>People</a> </div><div class="navt away"><a href=license.html>License</a> </div></div> <div class=main> <div class=pagetitle>libmceliece: Speed</div> <p>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.</p> <table> <thead> <tr> <th style="text-align: left;">μarch</th> <th style="text-align: left;">KEM</th> <th style="text-align: right;">keypair</th> <th style="text-align: right;">enc</th> <th style="text-align: right;">dec</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">Golden Cove (2021)</td> <td style="text-align: left;">348864f</td> <td style="text-align: right;">27694220</td> <td style="text-align: right;">25823</td> <td style="text-align: right;">103989</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">348864</td> <td style="text-align: right;">48943141</td> <td style="text-align: right;">25093</td> <td style="text-align: right;">104315</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896f</td> <td style="text-align: right;">88008381</td> <td style="text-align: right;">55177</td> <td style="text-align: right;">226496</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896</td> <td style="text-align: right;">120871460</td> <td style="text-align: right;">55208</td> <td style="text-align: right;">225544</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128f</td> <td style="text-align: right;">195664357</td> <td style="text-align: right;">95101</td> <td style="text-align: right;">257129</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128</td> <td style="text-align: right;">364760420</td> <td style="text-align: right;">89189</td> <td style="text-align: right;">257521</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119f</td> <td style="text-align: right;">164759310</td> <td style="text-align: right;">100613</td> <td style="text-align: right;">246989</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119</td> <td style="text-align: right;">261971020</td> <td style="text-align: right;">96220</td> <td style="text-align: right;">246768</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128f</td> <td style="text-align: right;">207108881</td> <td style="text-align: right;">97602</td> <td style="text-align: right;">258056</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128</td> <td style="text-align: right;">291216421</td> <td style="text-align: right;">99108</td> <td style="text-align: right;">258742</td> </tr> <tr> <td style="text-align: left;">Zen 3 (2020)</td> <td style="text-align: left;">348864f</td> <td style="text-align: right;">24141615</td> <td style="text-align: right;">20981</td> <td style="text-align: right;">106818</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">348864</td> <td style="text-align: right;">42116225</td> <td style="text-align: right;">20340</td> <td style="text-align: right;">106771</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896f</td> <td style="text-align: right;">71699954</td> <td style="text-align: right;">47778</td> <td style="text-align: right;">203743</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896</td> <td style="text-align: right;">139413616</td> <td style="text-align: right;">51145</td> <td style="text-align: right;">203810</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128f</td> <td style="text-align: right;">147663581</td> <td style="text-align: right;">84200</td> <td style="text-align: right;">243390</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128</td> <td style="text-align: right;">225773276</td> <td style="text-align: right;">83372</td> <td style="text-align: right;">243577</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119f</td> <td style="text-align: right;">134720196</td> <td style="text-align: right;">85562</td> <td style="text-align: right;">227344</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119</td> <td style="text-align: right;">191481147</td> <td style="text-align: right;">85129</td> <td style="text-align: right;">227166</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128f</td> <td style="text-align: right;">169707190</td> <td style="text-align: right;">95731</td> <td style="text-align: right;">243108</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128</td> <td style="text-align: right;">289001419</td> <td style="text-align: right;">91763</td> <td style="text-align: right;">243131</td> </tr> <tr> <td style="text-align: left;">Cortex-A72 (2016)</td> <td style="text-align: left;">348864f</td> <td style="text-align: right;">199749025</td> <td style="text-align: right;">127316</td> <td style="text-align: right;">692168</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">348864</td> <td style="text-align: right;">300280712</td> <td style="text-align: right;">128532</td> <td style="text-align: right;">693836</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896f</td> <td style="text-align: right;">693822150</td> <td style="text-align: right;">271175</td> <td style="text-align: right;">1819163</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896</td> <td style="text-align: right;">1051700002</td> <td style="text-align: right;">295548</td> <td style="text-align: right;">1824810</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128f</td> <td style="text-align: right;">1993990544</td> <td style="text-align: right;">527289</td> <td style="text-align: right;">2007011</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128</td> <td style="text-align: right;">2858748964</td> <td style="text-align: right;">547673</td> <td style="text-align: right;">2011676</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119f</td> <td style="text-align: right;">1757890446</td> <td style="text-align: right;">524092</td> <td style="text-align: right;">1954778</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119</td> <td style="text-align: right;">2265737644</td> <td style="text-align: right;">523214</td> <td style="text-align: right;">1946872</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128f</td> <td style="text-align: right;">2386213745</td> <td style="text-align: right;">569531</td> <td style="text-align: right;">1998927</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128</td> <td style="text-align: right;">2859809191</td> <td style="text-align: right;">569209</td> <td style="text-align: right;">1994426</td> </tr> <tr> <td style="text-align: left;">Skylake (2015)</td> <td style="text-align: left;">348864f</td> <td style="text-align: right;">31572882</td> <td style="text-align: right;">30489</td> <td style="text-align: right;">124538</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">348864</td> <td style="text-align: right;">45252625</td> <td style="text-align: right;">30526</td> <td style="text-align: right;">124585</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896f</td> <td style="text-align: right;">102408752</td> <td style="text-align: right;">66588</td> <td style="text-align: right;">250506</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896</td> <td style="text-align: right;">157767641</td> <td style="text-align: right;">65736</td> <td style="text-align: right;">250240</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128f</td> <td style="text-align: right;">239418569</td> <td style="text-align: right;">107819</td> <td style="text-align: right;">298223</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128</td> <td style="text-align: right;">298891515</td> <td style="text-align: right;">105567</td> <td style="text-align: right;">298061</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119f</td> <td style="text-align: right;">195512627</td> <td style="text-align: right;">114520</td> <td style="text-align: right;">271401</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119</td> <td style="text-align: right;">268948732</td> <td style="text-align: right;">113223</td> <td style="text-align: right;">271619</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128f</td> <td style="text-align: right;">247207962</td> <td style="text-align: right;">120654</td> <td style="text-align: right;">298976</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128</td> <td style="text-align: right;">358839657</td> <td style="text-align: right;">120029</td> <td style="text-align: right;">299054</td> </tr> <tr> <td style="text-align: left;">Haswell (2013)</td> <td style="text-align: left;">348864f</td> <td style="text-align: right;">36790422</td> <td style="text-align: right;">37030</td> <td style="text-align: right;">132635</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">348864</td> <td style="text-align: right;">46180202</td> <td style="text-align: right;">35974</td> <td style="text-align: right;">132544</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896f</td> <td style="text-align: right;">118828852</td> <td style="text-align: right;">79929</td> <td style="text-align: right;">264260</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">460896</td> <td style="text-align: right;">193624440</td> <td style="text-align: right;">75924</td> <td style="text-align: right;">264249</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128f</td> <td style="text-align: right;">287655524</td> <td style="text-align: right;">131042</td> <td style="text-align: right;">314493</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6688128</td> <td style="text-align: right;">405568950</td> <td style="text-align: right;">124427</td> <td style="text-align: right;">314295</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119f</td> <td style="text-align: right;">245666814</td> <td style="text-align: right;">135088</td> <td style="text-align: right;">288775</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">6960119</td> <td style="text-align: right;">467626606</td> <td style="text-align: right;">134673</td> <td style="text-align: right;">288820</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128f</td> <td style="text-align: right;">316859602</td> <td style="text-align: right;">147687</td> <td style="text-align: right;">316395</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">8192128</td> <td style="text-align: right;">484192317</td> <td style="text-align: right;">147602</td> <td style="text-align: right;">316524</td> </tr> </tbody> </table> <p>Microarchitectures are listed in reverse chronological order of when they were introduced.</p> <p>In the libmceliece distribution, <code>command/mceliece-speed.c</code> measures libmceliece; <code>benchmarks/*-*</code> is the output of <code>mceliece-speed</code> on various machines; and <code>autogen/md-speed</code> extracts the table from those measurements.</p> <p>The table reports only interquartile means of cycle counts. See the full output files for differences between multiple measurements and the interquartile mean.</p><hr><font size=1><b>Version:</b> This is version 2025.05.06 of the "Speed" web page. </font> </div> </body> </html>