Skip to content

Conversation

@keks
Copy link
Member

@keks keks commented Aug 20, 2025

No description provided.

@github-actions
Copy link

github-actions bot commented Aug 20, 2025

beep boop, I am the benchmark bot

Comparing PR commit 3f7caaf against baseline 10f196c.

Benchmark Report

Performance Report:

Visualized Results

os: ubuntu-latest_32, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random ubuntu-latest_32 55,496 ns 55,475 ns +0.04%
Key Generation ML-KEM 512 portable unpacked (external random) ubuntu-latest_32 55,165 ns 55,164 ns +0.00%
Encapsulation ML-KEM 512 portable external random ubuntu-latest_32 59,492 ns 59,465 ns +0.05%
Encapsulation ML-KEM 512 portable unpacked (external random) ubuntu-latest_32 27,357 ns 27,299 ns +0.21%
Decapsulation ML-KEM 512 portable N/A ubuntu-latest_32 66,109 ns 65,989 ns +0.18%
Decapsulation ML-KEM 512 portable unpacked ubuntu-latest_32 43,165 ns 43,288 ns -0.28%
PK Validation ML-KEM 512 portable N/A ubuntu-latest_32 939 ns 931 ns +0.85%

os: ubuntu-latest_32, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random ubuntu-latest_32 90,680 ns 90,715 ns -0.04%
Key Generation ML-KEM 768 portable unpacked (external random) ubuntu-latest_32 90,210 ns 90,182 ns +0.03%
Encapsulation ML-KEM 768 portable external random ubuntu-latest_32 99,029 ns 99,007 ns +0.02%
Encapsulation ML-KEM 768 portable unpacked (external random) ubuntu-latest_32 35,500 ns 36,150 ns -1.83%
Decapsulation ML-KEM 768 portable N/A ubuntu-latest_32 108,163 ns 108,141 ns +0.02%
Decapsulation ML-KEM 768 portable unpacked ubuntu-latest_32 58,495 ns 58,565 ns -0.12%
PK Validation ML-KEM 768 portable N/A ubuntu-latest_32 1,380 ns 1,378 ns +0.14%

os: ubuntu-latest_32, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random ubuntu-latest_32 144,166 ns 144,586 ns -0.29%
Key Generation ML-KEM 1024 portable unpacked (external random) ubuntu-latest_32 143,506 ns 143,500 ns +0.00%
Encapsulation ML-KEM 1024 portable external random ubuntu-latest_32 154,854 ns 154,428 ns +0.28%
Encapsulation ML-KEM 1024 portable unpacked (external random) ubuntu-latest_32 49,291 ns 50,084 ns -1.61%
Decapsulation ML-KEM 1024 portable N/A ubuntu-latest_32 166,990 ns 166,696 ns +0.18%
Decapsulation ML-KEM 1024 portable unpacked ubuntu-latest_32 79,098 ns 79,180 ns -0.10%
PK Validation ML-KEM 1024 portable N/A ubuntu-latest_32 1,830 ns 1,824 ns +0.33%

os: windows-latest_32, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random windows-latest_32 56,856 ns 57,189 ns -0.59%
Key Generation ML-KEM 512 portable unpacked (external random) windows-latest_32 56,480 ns 56,298 ns +0.32%
Encapsulation ML-KEM 512 portable external random windows-latest_32 60,580 ns 60,987 ns -0.67%
Encapsulation ML-KEM 512 portable unpacked (external random) windows-latest_32 27,768 ns 27,838 ns -0.25%
Decapsulation ML-KEM 512 portable N/A windows-latest_32 67,061 ns 67,159 ns -0.15%
Decapsulation ML-KEM 512 portable unpacked windows-latest_32 44,023 ns 44,050 ns -0.06%
PK Validation ML-KEM 512 portable N/A windows-latest_32 1,271 ns 1,264 ns +0.55%

os: windows-latest_32, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random windows-latest_32 93,399 ns 94,059 ns -0.71%
Key Generation ML-KEM 768 portable unpacked (external random) windows-latest_32 93,366 ns 93,014 ns +0.38%
Encapsulation ML-KEM 768 portable external random windows-latest_32 102,050 ns 102,855 ns -0.79%
Encapsulation ML-KEM 768 portable unpacked (external random) windows-latest_32 36,293 ns 36,176 ns +0.32%
Decapsulation ML-KEM 768 portable N/A windows-latest_32 110,732 ns 110,648 ns +0.08%
Decapsulation ML-KEM 768 portable unpacked windows-latest_32 59,549 ns 59,531 ns +0.03%
PK Validation ML-KEM 768 portable N/A windows-latest_32 1,811 ns 1,789 ns +1.21%

os: windows-latest_32, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random windows-latest_32 148,406 ns 149,042 ns -0.43%
Key Generation ML-KEM 1024 portable unpacked (external random) windows-latest_32 147,888 ns 147,742 ns +0.10%
Encapsulation ML-KEM 1024 portable external random windows-latest_32 157,864 ns 159,496 ns -1.03%
Encapsulation ML-KEM 1024 portable unpacked (external random) windows-latest_32 50,119 ns 50,351 ns -0.46%
Decapsulation ML-KEM 1024 portable N/A windows-latest_32 170,601 ns 169,043 ns +0.91%
Decapsulation ML-KEM 1024 portable unpacked windows-latest_32 80,616 ns 79,993 ns +0.77%
PK Validation ML-KEM 1024 portable N/A windows-latest_32 2,358 ns 2,344 ns +0.59%

os: ubuntu-latest_64, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random ubuntu-latest_64 20,242 ns 20,253 ns -0.05%
Key Generation ML-KEM 512 portable unpacked (external random) ubuntu-latest_64 19,883 ns 19,840 ns +0.22%
Key Generation ML-KEM 512 avx2 external random ubuntu-latest_64 157,772 ns 157,850 ns -0.05%
Key Generation ML-KEM 512 avx2 unpacked (external random) ubuntu-latest_64 157,551 ns 157,580 ns -0.02%
Encapsulation ML-KEM 512 portable external random ubuntu-latest_64 23,424 ns 23,492 ns -0.29%
Encapsulation ML-KEM 512 portable unpacked (external random) ubuntu-latest_64 14,814 ns 14,811 ns +0.02%
Encapsulation ML-KEM 512 avx2 external random ubuntu-latest_64 122,285 ns 122,367 ns -0.07%
Encapsulation ML-KEM 512 avx2 unpacked (external random) ubuntu-latest_64 116,092 ns 116,024 ns +0.06%
Decapsulation ML-KEM 512 portable N/A ubuntu-latest_64 28,849 ns 28,790 ns +0.20%
Decapsulation ML-KEM 512 portable unpacked ubuntu-latest_64 22,008 ns 21,975 ns +0.15%
Decapsulation ML-KEM 512 avx2 N/A ubuntu-latest_64 123,516 ns 123,528 ns -0.01%
Decapsulation ML-KEM 512 avx2 unpacked ubuntu-latest_64 119,669 ns 119,671 ns -0.00%
PK Validation ML-KEM 512 portable N/A ubuntu-latest_64 857 ns 884 ns -3.15%
PK Validation ML-KEM 512 avx2 N/A ubuntu-latest_64 392 ns 395 ns -0.77%

os: ubuntu-latest_64, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random ubuntu-latest_64 34,644 ns 34,644 ns 0.00%
Key Generation ML-KEM 768 portable unpacked (external random) ubuntu-latest_64 34,174 ns 34,258 ns -0.25%
Key Generation ML-KEM 768 avx2 external random ubuntu-latest_64 89,486 ns 89,454 ns +0.04%
Key Generation ML-KEM 768 avx2 unpacked (external random) ubuntu-latest_64 89,195 ns 89,156 ns +0.04%
Encapsulation ML-KEM 768 portable external random ubuntu-latest_64 39,538 ns 39,361 ns +0.45%
Encapsulation ML-KEM 768 portable unpacked (external random) ubuntu-latest_64 22,095 ns 22,038 ns +0.26%
Encapsulation ML-KEM 768 avx2 external random ubuntu-latest_64 90,652 ns 90,416 ns +0.26%
Encapsulation ML-KEM 768 avx2 unpacked (external random) ubuntu-latest_64 81,046 ns 81,037 ns +0.01%
Decapsulation ML-KEM 768 portable N/A ubuntu-latest_64 46,992 ns 46,901 ns +0.19%
Decapsulation ML-KEM 768 portable unpacked ubuntu-latest_64 32,157 ns 32,187 ns -0.09%
Decapsulation ML-KEM 768 avx2 N/A ubuntu-latest_64 92,110 ns 92,071 ns +0.04%
Decapsulation ML-KEM 768 avx2 unpacked ubuntu-latest_64 86,030 ns 86,063 ns -0.04%
PK Validation ML-KEM 768 portable N/A ubuntu-latest_64 1,271 ns 1,265 ns +0.47%
PK Validation ML-KEM 768 avx2 N/A ubuntu-latest_64 529 ns 529 ns 0.00%

os: ubuntu-latest_64, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random ubuntu-latest_64 53,781 ns 53,710 ns +0.13%
Key Generation ML-KEM 1024 portable unpacked (external random) ubuntu-latest_64 53,692 ns 53,930 ns -0.44%
Key Generation ML-KEM 1024 avx2 external random ubuntu-latest_64 95,362 ns 95,478 ns -0.12%
Key Generation ML-KEM 1024 avx2 unpacked (external random) ubuntu-latest_64 95,109 ns 95,143 ns -0.04%
Encapsulation ML-KEM 1024 portable external random ubuntu-latest_64 59,934 ns 59,972 ns -0.06%
Encapsulation ML-KEM 1024 portable unpacked (external random) ubuntu-latest_64 31,554 ns 31,513 ns +0.13%
Encapsulation ML-KEM 1024 avx2 external random ubuntu-latest_64 97,407 ns 97,371 ns +0.04%
Encapsulation ML-KEM 1024 avx2 unpacked (external random) ubuntu-latest_64 83,851 ns 83,801 ns +0.06%
Decapsulation ML-KEM 1024 portable N/A ubuntu-latest_64 69,501 ns 69,583 ns -0.12%
Decapsulation ML-KEM 1024 portable unpacked ubuntu-latest_64 45,138 ns 45,213 ns -0.17%
Decapsulation ML-KEM 1024 avx2 N/A ubuntu-latest_64 100,105 ns 100,037 ns +0.07%
Decapsulation ML-KEM 1024 avx2 unpacked ubuntu-latest_64 90,920 ns 91,007 ns -0.10%
PK Validation ML-KEM 1024 portable N/A ubuntu-latest_64 1,686 ns 1,725 ns -2.31%
PK Validation ML-KEM 1024 avx2 N/A ubuntu-latest_64 741 ns 746 ns -0.67%

os: macos-latest_64, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random macos-latest_64 9,730 ns 10,438 ns -7.28%
Key Generation ML-KEM 512 portable unpacked (external random) macos-latest_64 9,424 ns 10,111 ns -7.29%
Key Generation ML-KEM 512 neon external random macos-latest_64 5,120 ns 5,148 ns -0.55%
Key Generation ML-KEM 512 neon unpacked (external random) macos-latest_64 4,741 ns 5,064 ns -6.81%
Encapsulation ML-KEM 512 portable external random macos-latest_64 10,908 ns 10,966 ns -0.53%
Encapsulation ML-KEM 512 portable unpacked (external random) macos-latest_64 6,072 ns 6,085 ns -0.21%
Encapsulation ML-KEM 512 neon external random macos-latest_64 5,466 ns 5,456 ns +0.18%
Encapsulation ML-KEM 512 neon unpacked (external random) macos-latest_64 2,863 ns 3,028 ns -5.76%
Decapsulation ML-KEM 512 portable N/A macos-latest_64 12,867 ns 13,445 ns -4.49%
Decapsulation ML-KEM 512 portable unpacked macos-latest_64 9,442 ns 9,455 ns -0.14%
Decapsulation ML-KEM 512 neon N/A macos-latest_64 6,423 ns 6,377 ns +0.72%
Decapsulation ML-KEM 512 neon unpacked macos-latest_64 5,007 ns 4,975 ns +0.64%
PK Validation ML-KEM 512 portable N/A macos-latest_64 477 ns 447 ns +6.29%
PK Validation ML-KEM 512 neon N/A macos-latest_64 426 ns 407 ns +4.46%

os: macos-latest_64, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random macos-latest_64 16,907 ns 16,975 ns -0.40%
Key Generation ML-KEM 768 portable unpacked (external random) macos-latest_64 16,662 ns 16,771 ns -0.65%
Key Generation ML-KEM 768 neon external random macos-latest_64 9,630 ns 9,800 ns -1.77%
Key Generation ML-KEM 768 neon unpacked (external random) macos-latest_64 8,901 ns 9,840 ns -10.55%
Encapsulation ML-KEM 768 portable external random macos-latest_64 18,876 ns 18,550 ns +1.73%
Encapsulation ML-KEM 768 portable unpacked (external random) macos-latest_64 8,745 ns 8,418 ns +3.74%
Encapsulation ML-KEM 768 neon external random macos-latest_64 10,418 ns 10,205 ns +2.04%
Encapsulation ML-KEM 768 neon unpacked (external random) macos-latest_64 4,338 ns 4,179 ns +3.67%
Decapsulation ML-KEM 768 portable N/A macos-latest_64 22,986 ns 22,942 ns +0.19%
Decapsulation ML-KEM 768 portable unpacked macos-latest_64 13,715 ns 14,265 ns -4.01%
Decapsulation ML-KEM 768 neon N/A macos-latest_64 11,953 ns 12,326 ns -3.12%
Decapsulation ML-KEM 768 neon unpacked macos-latest_64 7,289 ns 7,421 ns -1.81%
PK Validation ML-KEM 768 portable N/A macos-latest_64 724 ns 666 ns +8.01%
PK Validation ML-KEM 768 neon N/A macos-latest_64 660 ns 618 ns +6.36%

os: macos-latest_64, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random macos-latest_64 25,139 ns 26,675 ns -6.11%
Key Generation ML-KEM 1024 portable unpacked (external random) macos-latest_64 24,939 ns 25,512 ns -2.30%
Key Generation ML-KEM 1024 neon external random macos-latest_64 13,423 ns 13,608 ns -1.38%
Key Generation ML-KEM 1024 neon unpacked (external random) macos-latest_64 13,683 ns 13,313 ns +2.70%
Encapsulation ML-KEM 1024 portable external random macos-latest_64 28,716 ns 28,241 ns +1.65%
Encapsulation ML-KEM 1024 portable unpacked (external random) macos-latest_64 11,633 ns 11,633 ns 0.00%
Encapsulation ML-KEM 1024 neon external random macos-latest_64 14,693 ns 14,570 ns +0.84%
Encapsulation ML-KEM 1024 neon unpacked (external random) macos-latest_64 5,217 ns 5,245 ns -0.54%
Decapsulation ML-KEM 1024 portable N/A macos-latest_64 34,235 ns 34,235 ns 0.00%
Decapsulation ML-KEM 1024 portable unpacked macos-latest_64 18,730 ns 18,889 ns -0.85%
Decapsulation ML-KEM 1024 neon N/A macos-latest_64 17,599 ns 17,602 ns -0.02%
Decapsulation ML-KEM 1024 neon unpacked macos-latest_64 9,657 ns 9,460 ns +2.04%
PK Validation ML-KEM 1024 portable N/A macos-latest_64 1,003 ns 972 ns +3.09%
PK Validation ML-KEM 1024 neon N/A macos-latest_64 908 ns 836 ns +7.93%

os: macos-13_64, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random macos-13_64 27,505 ns 29,828 ns -8.45%
Key Generation ML-KEM 512 portable unpacked (external random) macos-13_64 26,250 ns 28,956 ns -10.31%
Key Generation ML-KEM 512 avx2 external random macos-13_64 115,708 ns 130,430 ns -12.72%
Key Generation ML-KEM 512 avx2 unpacked (external random) macos-13_64 139,939 ns 134,354 ns +3.99%
Encapsulation ML-KEM 512 portable external random macos-13_64 43,315 ns 40,318 ns +6.92%
Encapsulation ML-KEM 512 portable unpacked (external random) macos-13_64 19,166 ns 19,167 ns -0.01%
Encapsulation ML-KEM 512 avx2 external random macos-13_64 121,002 ns 115,675 ns +4.40%
Encapsulation ML-KEM 512 avx2 unpacked (external random) macos-13_64 105,291 ns 100,367 ns +4.68%
Decapsulation ML-KEM 512 portable N/A macos-13_64 55,259 ns 60,028 ns -8.63%
Decapsulation ML-KEM 512 portable unpacked macos-13_64 38,448 ns 46,295 ns -20.41%
Decapsulation ML-KEM 512 avx2 N/A macos-13_64 115,555 ns 140,718 ns -21.78%
Decapsulation ML-KEM 512 avx2 unpacked macos-13_64 115,652 ns 137,277 ns -18.70%
PK Validation ML-KEM 512 portable N/A macos-13_64 1,555 ns 1,546 ns +0.58%
PK Validation ML-KEM 512 avx2 N/A macos-13_64 565 ns 658 ns -16.46%

os: macos-13_64, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random macos-13_64 43,922 ns 55,835 ns -27.12%
Key Generation ML-KEM 768 portable unpacked (external random) macos-13_64 48,634 ns 57,046 ns -17.30%
Key Generation ML-KEM 768 avx2 external random macos-13_64 83,160 ns 101,948 ns -22.59%
Key Generation ML-KEM 768 avx2 unpacked (external random) macos-13_64 79,522 ns 98,997 ns -24.49%
Encapsulation ML-KEM 768 portable external random macos-13_64 67,781 ns 63,571 ns +6.21%
Encapsulation ML-KEM 768 portable unpacked (external random) macos-13_64 28,158 ns 26,561 ns +5.67%
Encapsulation ML-KEM 768 avx2 external random macos-13_64 93,177 ns 88,513 ns +5.01%
Encapsulation ML-KEM 768 avx2 unpacked (external random) macos-13_64 77,577 ns 75,331 ns +2.90%
Decapsulation ML-KEM 768 portable N/A macos-13_64 79,132 ns 92,246 ns -16.57%
Decapsulation ML-KEM 768 portable unpacked macos-13_64 56,233 ns 80,763 ns -43.62%
Decapsulation ML-KEM 768 avx2 N/A macos-13_64 91,394 ns 126,829 ns -38.77%
Decapsulation ML-KEM 768 avx2 unpacked macos-13_64 81,229 ns 109,769 ns -35.14%
PK Validation ML-KEM 768 portable N/A macos-13_64 2,303 ns 2,702 ns -17.33%
PK Validation ML-KEM 768 avx2 N/A macos-13_64 829 ns 642 ns +22.56%

os: macos-13_64, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random macos-13_64 81,710 ns 84,485 ns -3.40%
Key Generation ML-KEM 1024 portable unpacked (external random) macos-13_64 76,187 ns 83,930 ns -10.16%
Key Generation ML-KEM 1024 avx2 external random macos-13_64 102,322 ns 94,874 ns +7.28%
Key Generation ML-KEM 1024 avx2 unpacked (external random) macos-13_64 92,290 ns 96,222 ns -4.26%
Encapsulation ML-KEM 1024 portable external random macos-13_64 103,413 ns 98,558 ns +4.69%
Encapsulation ML-KEM 1024 portable unpacked (external random) macos-13_64 37,152 ns 35,368 ns +4.80%
Encapsulation ML-KEM 1024 avx2 external random macos-13_64 100,034 ns 98,178 ns +1.86%
Encapsulation ML-KEM 1024 avx2 unpacked (external random) macos-13_64 82,715 ns 94,587 ns -14.35%
Decapsulation ML-KEM 1024 portable N/A macos-13_64 112,788 ns 155,161 ns -37.57%
Decapsulation ML-KEM 1024 portable unpacked macos-13_64 70,034 ns 76,632 ns -9.42%
Decapsulation ML-KEM 1024 avx2 N/A macos-13_64 104,754 ns 104,564 ns +0.18%
Decapsulation ML-KEM 1024 avx2 unpacked macos-13_64 85,152 ns 101,008 ns -18.62%
PK Validation ML-KEM 1024 portable N/A macos-13_64 2,862 ns 3,025 ns -5.70%
PK Validation ML-KEM 1024 avx2 N/A macos-13_64 1,027 ns 1,076 ns -4.77%

os: windows-latest_64, keySize: 512

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 512 portable external random windows-latest_64 20,208 ns 20,209 ns -0.00%
Key Generation ML-KEM 512 portable unpacked (external random) windows-latest_64 20,032 ns 19,796 ns +1.18%
Key Generation ML-KEM 512 avx2 external random windows-latest_64 153,110 ns 153,337 ns -0.15%
Key Generation ML-KEM 512 avx2 unpacked (external random) windows-latest_64 153,034 ns 153,097 ns -0.04%
Encapsulation ML-KEM 512 portable external random windows-latest_64 23,457 ns 23,429 ns +0.12%
Encapsulation ML-KEM 512 portable unpacked (external random) windows-latest_64 14,977 ns 14,898 ns +0.53%
Encapsulation ML-KEM 512 avx2 external random windows-latest_64 118,694 ns 119,442 ns -0.63%
Encapsulation ML-KEM 512 avx2 unpacked (external random) windows-latest_64 112,673 ns 112,558 ns +0.10%
Decapsulation ML-KEM 512 portable N/A windows-latest_64 28,773 ns 28,898 ns -0.43%
Decapsulation ML-KEM 512 portable unpacked windows-latest_64 22,042 ns 22,070 ns -0.13%
Decapsulation ML-KEM 512 avx2 N/A windows-latest_64 119,883 ns 119,863 ns +0.02%
Decapsulation ML-KEM 512 avx2 unpacked windows-latest_64 116,129 ns 116,066 ns +0.05%
PK Validation ML-KEM 512 portable N/A windows-latest_64 906 ns 909 ns -0.33%
PK Validation ML-KEM 512 avx2 N/A windows-latest_64 362 ns 368 ns -1.66%

os: windows-latest_64, keySize: 768

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 768 portable external random windows-latest_64 33,821 ns 33,877 ns -0.17%
Key Generation ML-KEM 768 portable unpacked (external random) windows-latest_64 33,286 ns 33,266 ns +0.06%
Key Generation ML-KEM 768 avx2 external random windows-latest_64 87,207 ns 86,979 ns +0.26%
Key Generation ML-KEM 768 avx2 unpacked (external random) windows-latest_64 86,599 ns 86,571 ns +0.03%
Encapsulation ML-KEM 768 portable external random windows-latest_64 39,035 ns 38,843 ns +0.49%
Encapsulation ML-KEM 768 portable unpacked (external random) windows-latest_64 22,118 ns 22,172 ns -0.24%
Encapsulation ML-KEM 768 avx2 external random windows-latest_64 88,200 ns 88,710 ns -0.58%
Encapsulation ML-KEM 768 avx2 unpacked (external random) windows-latest_64 79,011 ns 78,648 ns +0.46%
Decapsulation ML-KEM 768 portable N/A windows-latest_64 46,916 ns 46,914 ns +0.00%
Decapsulation ML-KEM 768 portable unpacked windows-latest_64 32,297 ns 32,272 ns +0.08%
Decapsulation ML-KEM 768 avx2 N/A windows-latest_64 89,873 ns 89,806 ns +0.07%
Decapsulation ML-KEM 768 avx2 unpacked windows-latest_64 83,690 ns 83,719 ns -0.03%
PK Validation ML-KEM 768 portable N/A windows-latest_64 1,381 ns 1,408 ns -1.96%
PK Validation ML-KEM 768 avx2 N/A windows-latest_64 549 ns 560 ns -2.00%

os: windows-latest_64, keySize: 1024

name category keySize platform api os Baseline Current Change
Key Generation ML-KEM 1024 portable external random windows-latest_64 53,471 ns 53,442 ns +0.05%
Key Generation ML-KEM 1024 portable unpacked (external random) windows-latest_64 52,355 ns 52,307 ns +0.09%
Key Generation ML-KEM 1024 avx2 external random windows-latest_64 92,541 ns 92,590 ns -0.05%
Key Generation ML-KEM 1024 avx2 unpacked (external random) windows-latest_64 92,282 ns 92,331 ns -0.05%
Encapsulation ML-KEM 1024 portable external random windows-latest_64 59,466 ns 59,314 ns +0.26%
Encapsulation ML-KEM 1024 portable unpacked (external random) windows-latest_64 31,904 ns 31,832 ns +0.23%
Encapsulation ML-KEM 1024 avx2 external random windows-latest_64 94,568 ns 94,625 ns -0.06%
Encapsulation ML-KEM 1024 avx2 unpacked (external random) windows-latest_64 81,434 ns 81,578 ns -0.18%
Decapsulation ML-KEM 1024 portable N/A windows-latest_64 69,697 ns 69,716 ns -0.03%
Decapsulation ML-KEM 1024 portable unpacked windows-latest_64 44,548 ns 44,630 ns -0.18%
Decapsulation ML-KEM 1024 avx2 N/A windows-latest_64 97,236 ns 97,237 ns -0.00%
Decapsulation ML-KEM 1024 avx2 unpacked windows-latest_64 88,549 ns 88,575 ns -0.03%
PK Validation ML-KEM 1024 portable N/A windows-latest_64 1,809 ns 1,838 ns -1.60%
PK Validation ML-KEM 1024 avx2 N/A windows-latest_64 723 ns 724 ns -0.14%

Performance Report:

Visualized Results

label: KeyGen, keySize: 44, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable macos-latest_64 41 μs 40 μs +2.44%
libcrux ML-DSA 44 KeyGen neon macos-latest_64 38 μs 27 μs +28.95%
pqclean ML-DSA 44 KeyGen auto macos-latest_64 29 μs 21 μs +27.59%

label: Sign, keySize: 44, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable macos-latest_64 197 μs 160 μs +18.78%
libcrux ML-DSA 44 Sign neon macos-latest_64 169 μs 133 μs +21.30%
pqclean ML-DSA 44 Sign auto macos-latest_64 89 μs 71 μs +20.22%

label: Verify, keySize: 44, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable macos-latest_64 52 μs 43 μs +17.31%
libcrux ML-DSA 44 Verify neon macos-latest_64 43 μs 33 μs +23.26%
pqclean ML-DSA 44 Verify auto macos-latest_64 33 μs 25 μs +24.24%

label: KeyGen, keySize: 65, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable macos-latest_64 106 μs 80 μs +24.53%
libcrux ML-DSA 65 KeyGen neon macos-latest_64 75 μs 57 μs +24.00%
pqclean ML-DSA 65 KeyGen auto macos-latest_64 67 μs 47 μs +29.85%

label: Sign, keySize: 65, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable macos-latest_64 316 μs 241 μs +23.73%
libcrux ML-DSA 65 Sign neon macos-latest_64 266 μs 205 μs +22.93%
pqclean ML-DSA 65 Sign auto macos-latest_64 142 μs 108 μs +23.94%

label: Verify, keySize: 65, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable macos-latest_64 104 μs 69 μs +33.65%
libcrux ML-DSA 65 Verify neon macos-latest_64 65 μs 49 μs +24.62%
pqclean ML-DSA 65 Verify auto macos-latest_64 45 μs 36 μs +20.00%

label: KeyGen, keySize: 87, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable macos-latest_64 136 μs 111 μs +18.38%
libcrux ML-DSA 87 KeyGen neon macos-latest_64 102 μs 71 μs +30.39%
pqclean ML-DSA 87 KeyGen auto macos-latest_64 61 μs 54 μs +11.48%

label: Sign, keySize: 87, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable macos-latest_64 409 μs 297 μs +27.38%
libcrux ML-DSA 87 Sign neon macos-latest_64 357 μs 253 μs +29.13%
pqclean ML-DSA 87 Sign auto macos-latest_64 148 μs 130 μs +12.16%

label: Verify, keySize: 87, os: macos-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable macos-latest_64 163 μs 115 μs +29.45%
libcrux ML-DSA 87 Verify neon macos-latest_64 87 μs 77 μs +11.49%
pqclean ML-DSA 87 Verify auto macos-latest_64 79 μs 56 μs +29.11%

label: KeyGen, keySize: 44, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable macos-13_64 74 μs 107 μs -44.59%
libcrux ML-DSA 44 KeyGen avx2 macos-13_64 25 μs 37 μs -48.00%

label: Sign, keySize: 44, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable macos-13_64 265 μs 417 μs -57.36%
libcrux ML-DSA 44 Sign avx2 macos-13_64 609 μs 887 μs -45.65%

label: Verify, keySize: 44, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable macos-13_64 81 μs 150 μs -85.19%
libcrux ML-DSA 44 Verify avx2 macos-13_64 33 μs 49 μs -48.48%

label: KeyGen, keySize: 65, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable macos-13_64 148 μs 225 μs -52.03%
libcrux ML-DSA 65 KeyGen avx2 macos-13_64 44 μs 68 μs -54.55%

label: Sign, keySize: 65, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable macos-13_64 426 μs 720 μs -69.01%
libcrux ML-DSA 65 Sign avx2 macos-13_64 766 ms 1.13 ms +99.85%

label: Verify, keySize: 65, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable macos-13_64 137 μs 248 μs -81.02%
libcrux ML-DSA 65 Verify avx2 macos-13_64 50 μs 81 μs -62.00%

label: KeyGen, keySize: 87, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable macos-13_64 219 μs 398 μs -81.74%
libcrux ML-DSA 87 KeyGen avx2 macos-13_64 68 μs 158 μs -132.35%

label: Sign, keySize: 87, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable macos-13_64 548 μs 993 μs -81.20%
libcrux ML-DSA 87 Sign avx2 macos-13_64 648 ms 1.18 ms +99.82%

label: Verify, keySize: 87, os: macos-13_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable macos-13_64 220 μs 440 μs -100.00%
libcrux ML-DSA 87 Verify avx2 macos-13_64 76 μs 166 μs -118.42%

label: KeyGen, keySize: 44, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable ubuntu-latest_64 78 μs 77 μs +1.28%
libcrux ML-DSA 44 KeyGen avx2 ubuntu-latest_64 24 μs 24 μs 0.00%
pqclean ML-DSA 44 KeyGen auto ubuntu-latest_64 25 μs 25 μs 0.00%

label: Sign, keySize: 44, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable ubuntu-latest_64 330 μs 326 μs +1.21%
libcrux ML-DSA 44 Sign avx2 ubuntu-latest_64 886 μs 888 μs -0.23%
pqclean ML-DSA 44 Sign auto ubuntu-latest_64 77 μs 78 μs -1.30%

label: Verify, keySize: 44, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable ubuntu-latest_64 86 μs 86 μs 0.00%
libcrux ML-DSA 44 Verify avx2 ubuntu-latest_64 33 μs 33 μs 0.00%
pqclean ML-DSA 44 Verify auto ubuntu-latest_64 31 μs 31 μs 0.00%

label: KeyGen, keySize: 65, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable ubuntu-latest_64 153 μs 151 μs +1.31%
libcrux ML-DSA 65 KeyGen avx2 ubuntu-latest_64 43 μs 43 μs 0.00%
pqclean ML-DSA 65 KeyGen auto ubuntu-latest_64 45 μs 44 μs +2.22%

label: Sign, keySize: 65, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable ubuntu-latest_64 535 μs 532 μs +0.56%
libcrux ML-DSA 65 Sign avx2 ubuntu-latest_64 1.09 ms 1.08 ms +0.92%
pqclean ML-DSA 65 Sign auto ubuntu-latest_64 124 μs 124 μs 0.00%

label: Verify, keySize: 65, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable ubuntu-latest_64 145 μs 145 μs 0.00%
libcrux ML-DSA 65 Verify avx2 ubuntu-latest_64 51 μs 50 μs +1.96%
pqclean ML-DSA 65 Verify auto ubuntu-latest_64 49 μs 49 μs 0.00%

label: KeyGen, keySize: 87, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable ubuntu-latest_64 224 μs 223 μs +0.45%
libcrux ML-DSA 87 KeyGen avx2 ubuntu-latest_64 66 μs 66 μs 0.00%
pqclean ML-DSA 87 KeyGen auto ubuntu-latest_64 71 μs 71 μs 0.00%

label: Sign, keySize: 87, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable ubuntu-latest_64 657 μs 657 μs 0.00%
libcrux ML-DSA 87 Sign avx2 ubuntu-latest_64 891 μs 896 μs -0.56%
pqclean ML-DSA 87 Sign auto ubuntu-latest_64 145 μs 145 μs 0.00%

label: Verify, keySize: 87, os: ubuntu-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable ubuntu-latest_64 232 μs 232 μs 0.00%
libcrux ML-DSA 87 Verify avx2 ubuntu-latest_64 76 μs 77 μs -1.32%
pqclean ML-DSA 87 Verify auto ubuntu-latest_64 75 μs 75 μs 0.00%

label: KeyGen, keySize: 44, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable ubuntu-latest_32 209 μs 209 μs 0.00%
pqclean ML-DSA 44 KeyGen auto ubuntu-latest_32 263 μs 264 μs -0.38%

label: Sign, keySize: 44, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable ubuntu-latest_32 554 μs 558 μs -0.72%
pqclean ML-DSA 44 Sign auto ubuntu-latest_32 813 μs 823 μs -1.23%

label: Verify, keySize: 44, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable ubuntu-latest_32 215 μs 216 μs -0.47%
pqclean ML-DSA 44 Verify auto ubuntu-latest_32 288 μs 288 μs 0.00%

label: KeyGen, keySize: 65, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable ubuntu-latest_32 399 μs 399 μs 0.00%
pqclean ML-DSA 65 KeyGen auto ubuntu-latest_32 475 μs 477 μs -0.42%

label: Sign, keySize: 65, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable ubuntu-latest_32 899 μs 893 μs +0.67%
pqclean ML-DSA 65 Sign auto ubuntu-latest_32 1.32 ms 1.32 ms 0.00%

label: Verify, keySize: 65, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable ubuntu-latest_32 376 μs 377 μs -0.27%
pqclean ML-DSA 65 Verify auto ubuntu-latest_32 474 μs 477 μs -0.63%

label: KeyGen, keySize: 87, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable ubuntu-latest_32 636 μs 636 μs 0.00%
pqclean ML-DSA 87 KeyGen auto ubuntu-latest_32 781 μs 780 μs +0.13%

label: Sign, keySize: 87, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable ubuntu-latest_32 1.15 ms 1.16 ms -0.87%
pqclean ML-DSA 87 Sign auto ubuntu-latest_32 1.67 ms 1.67 ms 0.00%

label: Verify, keySize: 87, os: ubuntu-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable ubuntu-latest_32 622 μs 622 μs 0.00%
pqclean ML-DSA 87 Verify auto ubuntu-latest_32 799 μs 799 μs 0.00%

label: KeyGen, keySize: 44, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable windows-latest_64 77 μs 78 μs -1.30%
libcrux ML-DSA 44 KeyGen avx2 windows-latest_64 25 μs 25 μs 0.00%
pqclean ML-DSA 44 KeyGen auto windows-latest_64 105 μs 105 μs 0.00%

label: Sign, keySize: 44, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable windows-latest_64 326 μs 328 μs -0.61%
libcrux ML-DSA 44 Sign avx2 windows-latest_64 857 μs 857 μs 0.00%
pqclean ML-DSA 44 Sign auto windows-latest_64 455 μs 464 μs -1.98%

label: Verify, keySize: 44, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable windows-latest_64 86 μs 86 μs 0.00%
libcrux ML-DSA 44 Verify avx2 windows-latest_64 42 μs 34 μs +19.05%
pqclean ML-DSA 44 Verify auto windows-latest_64 120 μs 121 μs -0.83%

label: KeyGen, keySize: 65, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable windows-latest_64 154 μs 154 μs 0.00%
libcrux ML-DSA 65 KeyGen avx2 windows-latest_64 54 μs 45 μs +16.67%
pqclean ML-DSA 65 KeyGen auto windows-latest_64 188 μs 189 μs -0.53%

label: Sign, keySize: 65, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable windows-latest_64 540 μs 546 μs -1.11%
libcrux ML-DSA 65 Sign avx2 windows-latest_64 1.06 ms 1.07 ms -0.94%
pqclean ML-DSA 65 Sign auto windows-latest_64 786 μs 718 μs +8.65%

label: Verify, keySize: 65, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable windows-latest_64 144 μs 145 μs -0.69%
libcrux ML-DSA 65 Verify avx2 windows-latest_64 53 μs 53 μs 0.00%
pqclean ML-DSA 65 Verify auto windows-latest_64 186 μs 186 μs 0.00%

label: KeyGen, keySize: 87, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable windows-latest_64 222 μs 223 μs -0.45%
libcrux ML-DSA 87 KeyGen avx2 windows-latest_64 70 μs 70 μs 0.00%
pqclean ML-DSA 87 KeyGen auto windows-latest_64 299 μs 299 μs 0.00%

label: Sign, keySize: 87, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable windows-latest_64 647 μs 651 μs -0.62%
libcrux ML-DSA 87 Sign avx2 windows-latest_64 866 μs 867 μs -0.12%
pqclean ML-DSA 87 Sign auto windows-latest_64 918 μs 923 μs -0.54%

label: Verify, keySize: 87, os: windows-latest_64

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable windows-latest_64 231 μs 231 μs 0.00%
libcrux ML-DSA 87 Verify avx2 windows-latest_64 81 μs 81 μs 0.00%
pqclean ML-DSA 87 Verify auto windows-latest_64 316 μs 316 μs 0.00%

label: KeyGen, keySize: 44, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 KeyGen portable windows-latest_32 215 μs 213 μs +0.93%
pqclean ML-DSA 44 KeyGen auto windows-latest_32 221 μs 221 μs 0.00%

label: Sign, keySize: 44, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Sign portable windows-latest_32 569 μs 564 μs +0.88%
pqclean ML-DSA 44 Sign auto windows-latest_32 714 μs 708 μs +0.84%

label: Verify, keySize: 44, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 44 Verify portable windows-latest_32 220 μs 221 μs -0.45%
pqclean ML-DSA 44 Verify auto windows-latest_32 238 μs 238 μs 0.00%

label: KeyGen, keySize: 65, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 KeyGen portable windows-latest_32 405 μs 405 μs 0.00%
pqclean ML-DSA 65 KeyGen auto windows-latest_32 417 μs 415 μs +0.48%

label: Sign, keySize: 65, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Sign portable windows-latest_32 918 μs 912 μs +0.65%
pqclean ML-DSA 65 Sign auto windows-latest_32 1.15 ms 1.19 ms -3.48%

label: Verify, keySize: 65, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 65 Verify portable windows-latest_32 397 μs 384 μs +3.27%
pqclean ML-DSA 65 Verify auto windows-latest_32 402 μs 402 μs 0.00%

label: KeyGen, keySize: 87, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 KeyGen portable windows-latest_32 644 μs 644 μs 0.00%
pqclean ML-DSA 87 KeyGen auto windows-latest_32 679 μs 674 μs +0.74%

label: Sign, keySize: 87, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Sign portable windows-latest_32 1.16 ms 1.17 ms -0.86%
pqclean ML-DSA 87 Sign auto windows-latest_32 1.49 ms 1.46 ms +2.01%

label: Verify, keySize: 87, os: windows-latest_32

implementation keySize label hardware os Baseline Current Change
libcrux ML-DSA 87 Verify portable windows-latest_32 629 μs 630 μs -0.16%
pqclean ML-DSA 87 Verify auto windows-latest_32 691 μs 682 μs +1.30%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant