Skip to content

zephyr: fix NUCLEO benchmark timing and TCM layout#1796

Open
bremoran wants to merge 1 commit into
mainfrom
nucleo-tcm
Open

zephyr: fix NUCLEO benchmark timing and TCM layout#1796
bremoran wants to merge 1 commit into
mainfrom
nucleo-tcm

Conversation

@bremoran

@bremoran bremoran commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Use Zephyr's 64-bit cycle counter so long benchmark windows do not wrap, and make benchmark percentile sorting robust for large uint64_t values.

Link NUCLEO-N657X0-Q Zephyr images as XIP from ITCM with runtime data and stacks in DTCM. Force the STM32N6 VTOR setup to the ITCM vector table and scrub the expanded DTCM window in the early reset hook.

Keep project CFLAGS out of Zephyr's cached global CMake flags, and print the Zephyr build log when a suppressed Ninja build fails.

Tested:

  • nix develop .#zephyr --command make run_func EXTRA_MAKEFILE=test/zephyr/platform.mk ZEPHYR_TARGET=mps3-an547 CYCLES=NO -j1
  • nix develop .#zephyr --command make run_bench EXTRA_MAKEFILE=test/zephyr/platform.mk ZEPHYR_TARGET=nucleo-n657x0-q CYCLES=NO -j1

Use Zephyr's 64-bit cycle counter so long benchmark windows do not wrap, and
make benchmark percentile sorting robust for large uint64_t values.

Link NUCLEO-N657X0-Q Zephyr images as XIP from ITCM with runtime data and
stacks in DTCM. Force the STM32N6 VTOR setup to the ITCM vector table and scrub
the expanded DTCM window in the early reset hook.

Keep project CFLAGS out of Zephyr's cached global CMake flags, and print the
Zephyr build log when a suppressed Ninja build fails.

Tested:
- nix develop .#zephyr --command make run_func EXTRA_MAKEFILE=test/zephyr/platform.mk ZEPHYR_TARGET=mps3-an547 CYCLES=NO -j1
- nix develop .#zephyr --command make run_bench EXTRA_MAKEFILE=test/zephyr/platform.mk ZEPHYR_TARGET=nucleo-n657x0-q CYCLES=NO -j1

Signed-off-by: Brendan Moran <brendan.moran@arm.com>
@bremoran bremoran requested a review from a team as a code owner July 9, 2026 06:56
@mkannwischer mkannwischer added the benchmark this PR should be benchmarked in CI label Jul 9, 2026

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mac Mini (M1, 2020) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 12318 cycles 12317 cycles 1.00
ML-KEM-512 encaps 14763 cycles 14761 cycles 1.00
ML-KEM-512 decaps 19318 cycles 19315 cycles 1.00
ML-KEM-768 keypair 21263 cycles 21263 cycles 1
ML-KEM-768 encaps 23510 cycles 23508 cycles 1.00
ML-KEM-768 decaps 30054 cycles 30054 cycles 1
ML-KEM-1024 keypair 30316 cycles 30315 cycles 1.00
ML-KEM-1024 encaps 34082 cycles 34080 cycles 1.00
ML-KEM-1024 decaps 43696 cycles 43695 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ppc64le (POWER10) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 38585 cycles 37977 cycles 1.02
ML-KEM-512 encaps 43426 cycles 43448 cycles 1.00
ML-KEM-512 decaps 54121 cycles 53423 cycles 1.01
ML-KEM-768 keypair 67931 cycles 67467 cycles 1.01
ML-KEM-768 encaps 76428 cycles 76412 cycles 1.00
ML-KEM-768 decaps 91027 cycles 90618 cycles 1.00
ML-KEM-1024 keypair 113397 cycles 108562 cycles 1.04
ML-KEM-1024 encaps 124126 cycles 118622 cycles 1.05
ML-KEM-1024 decaps 142680 cycles 137281 cycles 1.04

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'ppc64le (POWER10) benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.03.

Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-1024 keypair 113397 cycles 108562 cycles 1.04
ML-KEM-1024 encaps 124126 cycles 118622 cycles 1.05
ML-KEM-1024 decaps 142680 cycles 137281 cycles 1.04

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arm Cortex-A76 (Raspberry Pi 5) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 28219 cycles 28242 cycles 1.00
ML-KEM-512 encaps 34064 cycles 34125 cycles 1.00
ML-KEM-512 decaps 44497 cycles 44473 cycles 1.00
ML-KEM-768 keypair 47586 cycles 47611 cycles 1.00
ML-KEM-768 encaps 53885 cycles 53862 cycles 1.00
ML-KEM-768 decaps 68533 cycles 68521 cycles 1.00
ML-KEM-1024 keypair 70182 cycles 70247 cycles 1.00
ML-KEM-1024 encaps 78707 cycles 78704 cycles 1.00
ML-KEM-1024 decaps 98255 cycles 98273 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intel Xeon 4th gen (c7i)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 11928 cycles 11784 cycles 1.01
ML-KEM-512 encaps 13210 cycles 13079 cycles 1.01
ML-KEM-512 decaps 17055 cycles 17091 cycles 1.00
ML-KEM-768 keypair 19451 cycles 19364 cycles 1.00
ML-KEM-768 encaps 20773 cycles 20596 cycles 1.01
ML-KEM-768 decaps 26372 cycles 26281 cycles 1.00
ML-KEM-1024 keypair 28083 cycles 28109 cycles 1.00
ML-KEM-1024 encaps 30214 cycles 30378 cycles 0.99
ML-KEM-1024 decaps 37460 cycles 37448 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intel Xeon 3rd gen (c6i)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 17952 cycles 17868 cycles 1.00
ML-KEM-512 encaps 20159 cycles 20057 cycles 1.01
ML-KEM-512 decaps 26750 cycles 26606 cycles 1.01
ML-KEM-768 keypair 30092 cycles 29950 cycles 1.00
ML-KEM-768 encaps 34094 cycles 31996 cycles 1.07
ML-KEM-768 decaps 41525 cycles 41491 cycles 1.00
ML-KEM-1024 keypair 42133 cycles 42078 cycles 1.00
ML-KEM-1024 encaps 44892 cycles 45040 cycles 1.00
ML-KEM-1024 decaps 58032 cycles 57971 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Intel Xeon 3rd gen (c6i)'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.03.

Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-768 encaps 34094 cycles 31996 cycles 1.07

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMD EPYC 4th gen (c7a)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 12869 cycles 12801 cycles 1.01
ML-KEM-512 encaps 14250 cycles 14237 cycles 1.00
ML-KEM-512 decaps 18993 cycles 18975 cycles 1.00
ML-KEM-768 keypair 21539 cycles 21566 cycles 1.00
ML-KEM-768 encaps 22722 cycles 22732 cycles 1.00
ML-KEM-768 decaps 29783 cycles 29717 cycles 1.00
ML-KEM-1024 keypair 30651 cycles 30514 cycles 1.00
ML-KEM-1024 encaps 32698 cycles 32678 cycles 1.00
ML-KEM-1024 decaps 41861 cycles 41973 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton5

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 13431 cycles 13452 cycles 1.00
ML-KEM-512 encaps 15773 cycles 15781 cycles 1.00
ML-KEM-512 decaps 21298 cycles 21312 cycles 1.00
ML-KEM-768 keypair 22870 cycles 22907 cycles 1.00
ML-KEM-768 encaps 25294 cycles 25225 cycles 1.00
ML-KEM-768 decaps 33170 cycles 33173 cycles 1.00
ML-KEM-1024 keypair 33297 cycles 33232 cycles 1.00
ML-KEM-1024 encaps 36925 cycles 37044 cycles 1.00
ML-KEM-1024 decaps 47246 cycles 47104 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMD EPYC 3rd gen (c6a)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 14443 cycles 14443 cycles 1
ML-KEM-512 encaps 15959 cycles 15927 cycles 1.00
ML-KEM-512 decaps 21374 cycles 21327 cycles 1.00
ML-KEM-768 keypair 23679 cycles 23806 cycles 0.99
ML-KEM-768 encaps 25126 cycles 25250 cycles 1.00
ML-KEM-768 decaps 32832 cycles 33030 cycles 0.99
ML-KEM-1024 keypair 33474 cycles 33344 cycles 1.00
ML-KEM-1024 encaps 35929 cycles 35877 cycles 1.00
ML-KEM-1024 decaps 46192 cycles 46192 cycles 1

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intel Xeon 4th gen (c7i) (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 27760 cycles 27523 cycles 1.01
ML-KEM-512 encaps 34812 cycles 35607 cycles 0.98
ML-KEM-512 decaps 44420 cycles 44308 cycles 1.00
ML-KEM-768 keypair 44243 cycles 44159 cycles 1.00
ML-KEM-768 encaps 54897 cycles 54927 cycles 1.00
ML-KEM-768 decaps 68243 cycles 68284 cycles 1.00
ML-KEM-1024 keypair 67469 cycles 67850 cycles 0.99
ML-KEM-1024 encaps 78941 cycles 78888 cycles 1.00
ML-KEM-1024 decaps 95978 cycles 96098 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton3

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 18651 cycles 18665 cycles 1.00
ML-KEM-512 encaps 21829 cycles 21857 cycles 1.00
ML-KEM-512 decaps 28830 cycles 28837 cycles 1.00
ML-KEM-768 keypair 31535 cycles 31576 cycles 1.00
ML-KEM-768 encaps 34743 cycles 34667 cycles 1.00
ML-KEM-768 decaps 44801 cycles 44803 cycles 1.00
ML-KEM-1024 keypair 46207 cycles 46143 cycles 1.00
ML-KEM-1024 encaps 51380 cycles 51481 cycles 1.00
ML-KEM-1024 decaps 64988 cycles 64971 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton4

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 17669 cycles 17686 cycles 1.00
ML-KEM-512 encaps 20547 cycles 20594 cycles 1.00
ML-KEM-512 decaps 27012 cycles 27005 cycles 1.00
ML-KEM-768 keypair 29871 cycles 29896 cycles 1.00
ML-KEM-768 encaps 32699 cycles 32630 cycles 1.00
ML-KEM-768 decaps 41917 cycles 41919 cycles 1.00
ML-KEM-1024 keypair 43746 cycles 43717 cycles 1.00
ML-KEM-1024 encaps 48596 cycles 48686 cycles 1.00
ML-KEM-1024 decaps 61421 cycles 61381 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intel Xeon 3rd gen (c6i) (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 46921 cycles 46764 cycles 1.00
ML-KEM-512 encaps 55746 cycles 55568 cycles 1.00
ML-KEM-512 decaps 71351 cycles 71228 cycles 1.00
ML-KEM-768 keypair 74387 cycles 74430 cycles 1.00
ML-KEM-768 encaps 85985 cycles 85934 cycles 1.00
ML-KEM-768 decaps 107021 cycles 107113 cycles 1.00
ML-KEM-1024 keypair 111438 cycles 111586 cycles 1.00
ML-KEM-1024 encaps 126243 cycles 126184 cycles 1.00
ML-KEM-1024 decaps 152191 cycles 152270 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton5 (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 27365 cycles 27472 cycles 1.00
ML-KEM-512 encaps 31712 cycles 31683 cycles 1.00
ML-KEM-512 decaps 40427 cycles 40493 cycles 1.00
ML-KEM-768 keypair 44011 cycles 44191 cycles 1.00
ML-KEM-768 encaps 50710 cycles 50710 cycles 1
ML-KEM-768 decaps 62119 cycles 62158 cycles 1.00
ML-KEM-1024 keypair 68334 cycles 67977 cycles 1.01
ML-KEM-1024 encaps 75967 cycles 76071 cycles 1.00
ML-KEM-1024 decaps 90694 cycles 90823 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMD EPYC 4th gen (c7a) (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 37199 cycles 36791 cycles 1.01
ML-KEM-512 encaps 42849 cycles 42839 cycles 1.00
ML-KEM-512 decaps 55552 cycles 55590 cycles 1.00
ML-KEM-768 keypair 58355 cycles 58027 cycles 1.01
ML-KEM-768 encaps 67050 cycles 66923 cycles 1.00
ML-KEM-768 decaps 83925 cycles 83737 cycles 1.00
ML-KEM-1024 keypair 88483 cycles 88594 cycles 1.00
ML-KEM-1024 encaps 99111 cycles 99087 cycles 1.00
ML-KEM-1024 decaps 120395 cycles 120547 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton4 (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 35230 cycles 35280 cycles 1.00
ML-KEM-512 encaps 40033 cycles 40025 cycles 1.00
ML-KEM-512 decaps 50570 cycles 50626 cycles 1.00
ML-KEM-768 keypair 56691 cycles 56804 cycles 1.00
ML-KEM-768 encaps 64087 cycles 64045 cycles 1.00
ML-KEM-768 decaps 78425 cycles 78496 cycles 1.00
ML-KEM-1024 keypair 87404 cycles 87379 cycles 1.00
ML-KEM-1024 encaps 96484 cycles 96676 cycles 1.00
ML-KEM-1024 decaps 114841 cycles 114706 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMD EPYC 3rd gen (c6a) (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 39913 cycles 40230 cycles 0.99
ML-KEM-512 encaps 48250 cycles 48379 cycles 1.00
ML-KEM-512 decaps 61661 cycles 62191 cycles 0.99
ML-KEM-768 keypair 62550 cycles 62555 cycles 1.00
ML-KEM-768 encaps 74792 cycles 74853 cycles 1.00
ML-KEM-768 decaps 92264 cycles 92436 cycles 1.00
ML-KEM-1024 keypair 95131 cycles 95010 cycles 1.00
ML-KEM-1024 encaps 110061 cycles 109881 cycles 1.00
ML-KEM-1024 decaps 132664 cycles 132297 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton2

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 28211 cycles 28237 cycles 1.00
ML-KEM-512 encaps 34076 cycles 34121 cycles 1.00
ML-KEM-512 decaps 44500 cycles 44477 cycles 1.00
ML-KEM-768 keypair 47592 cycles 47614 cycles 1.00
ML-KEM-768 encaps 53891 cycles 53872 cycles 1.00
ML-KEM-768 decaps 68559 cycles 68558 cycles 1.00
ML-KEM-1024 keypair 70166 cycles 70259 cycles 1.00
ML-KEM-1024 encaps 78645 cycles 78638 cycles 1.00
ML-KEM-1024 decaps 98338 cycles 98289 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton3 (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 38827 cycles 38899 cycles 1.00
ML-KEM-512 encaps 44466 cycles 44383 cycles 1.00
ML-KEM-512 decaps 56099 cycles 56203 cycles 1.00
ML-KEM-768 keypair 62352 cycles 62495 cycles 1.00
ML-KEM-768 encaps 70577 cycles 70438 cycles 1.00
ML-KEM-768 decaps 86233 cycles 86368 cycles 1.00
ML-KEM-1024 keypair 95826 cycles 95867 cycles 1.00
ML-KEM-1024 encaps 105850 cycles 106090 cycles 1.00
ML-KEM-1024 decaps 126006 cycles 125739 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graviton2 (no-opt)

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 58736 cycles 58755 cycles 1.00
ML-KEM-512 encaps 68552 cycles 68467 cycles 1.00
ML-KEM-512 decaps 87403 cycles 87387 cycles 1.00
ML-KEM-768 keypair 94857 cycles 94524 cycles 1.00
ML-KEM-768 encaps 109220 cycles 108935 cycles 1.00
ML-KEM-768 decaps 134224 cycles 134030 cycles 1.00
ML-KEM-1024 keypair 150872 cycles 150855 cycles 1.00
ML-KEM-1024 encaps 165511 cycles 165563 cycles 1.00
ML-KEM-1024 decaps 198679 cycles 198753 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SpacemiT K1 8 (Banana Pi F3) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 143631 cycles 143013 cycles 1.00
ML-KEM-512 encaps 151961 cycles 151351 cycles 1.00
ML-KEM-512 decaps 190370 cycles 189644 cycles 1.00
ML-KEM-768 keypair 233900 cycles 233091 cycles 1.00
ML-KEM-768 encaps 251060 cycles 250300 cycles 1.00
ML-KEM-768 decaps 305899 cycles 304927 cycles 1.00
ML-KEM-1024 keypair 367025 cycles 365509 cycles 1.00
ML-KEM-1024 encaps 389439 cycles 387853 cycles 1.00
ML-KEM-1024 decaps 460090 cycles 458266 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot

oqs-bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-KEM-768)

Full Results (191 proofs)
Proof Status Current Previous Change
**TOTAL** 1742s 1768s -1.5%
mlk_indcpa_keypair_derand 338s 342s -1%
mlk_indcpa_enc 259s 252s +3%
mlk_poly_rej_uniform 141s 148s -5%
mlk_rej_uniform_c 127s 128s -1%
rej_uniform_native_x86_64 58s 61s -5%
mlk_polyvec_basemul_acc_montgomery_cached_c 52s 56s -7%
poly_ntt_native 40s 45s -11%
rej_uniform_native_aarch64 40s 38s +5%
mlk_poly_reduce_native 34s 36s -6%
mlk_ntt_layer 32s 41s -22%
mlk_keccak_squeezeblocks_x4 26s 24s +8%
keccakf1600x4_permute_native_x4 18s 17s +6%
mlk_fqmul 17s 17s +0%
polyvec_basemul_acc_montgomery_cached_native 17s 16s +6%
mlk_poly_decompress_d10_native 16s 13s +23%
mlk_poly_decompress_d4_native 15s 16s -6%
mlk_poly_frombytes_native 10s 8s +25%
mlk_polyvec_add 10s 12s -17%
mlk_indcpa_dec 9s 11s -18%
mlk_keccak_squeezeblocks 9s 9s +0%
mlk_poly_frommsg 9s 10s -10%
mlk_poly_sub 8s 8s +0%
mlk_keccak_squeeze_once 7s 7s +0%
mlk_poly_ntt 7s 9s -22%
kem_dec 6s 2s +200%
mlk_invntt_layer 6s 5s +20%
mlk_keccak_absorb_once_x4 6s 6s +0%
mlk_ntt_butterfly_block 6s 8s -25%
mlk_poly_compress_d10_c 6s 2s +200%
mlk_poly_rej_uniform_x4 6s 6s +0%
mlk_gen_matrix 5s 5s +0%
mlk_gen_matrix_serial 5s 2s +150%
mlk_keccakf1600_permute_c 5s 5s +0%
mlk_poly_add 5s 5s +0%
mlk_poly_getnoise_eta2 5s 2s +150%
mlk_shake256x4 5s 5s +0%
poly_decompress_d4_native_x86_64 5s 5s +0%
poly_decompress_d5_native_x86_64 5s 2s +150%
poly_frombytes_native_x86_64 5s 4s +25%
keccak_f1600_x1_native_aarch64 4s 1s +300%
keccak_f1600_x4_native_aarch64_v84a 4s 2s +100%
kem_enc 4s 1s +300%
mlk_ct_cmask_nonzero_u8 4s 2s +100%
mlk_ct_sel_uint8 4s 3s +33%
mlk_enc_getnoise_eta1_eta2 4s 2s +100%
mlk_keccak_absorb_once 4s 3s +33%
mlk_keccakf1600_xor_bytes 4s 3s +33%
mlk_poly_compress_d4 4s 5s -20%
mlk_poly_compress_d5_native 4s 3s +33%
mlk_poly_decompress_d4_c 4s 5s -20%
mlk_poly_frombytes_c 4s 5s -20%
mlk_poly_getnoise_eta1_4x 4s 3s +33%
mlk_poly_invntt_tomont_c 4s 2s +100%
mlk_poly_reduce_c 4s 2s +100%
mlk_scalar_compress_d11 4s 2s +100%
nttunpack_native_x86_64 4s 3s +33%
poly_decompress_d10_native_x86_64 4s 6s -33%
polyvec_basemul_acc_montgomery_cached_k3_native_x86_64 4s 5s -20%
kem_check_pk 3s 3s +0%
kem_enc_derand 3s 3s +0%
mlk_barrett_reduce 3s 1s +200%
mlk_ct_get_optblocker_i32 3s 3s +0%
mlk_ct_get_optblocker_u32 3s 1s +200%
mlk_keccakf1600x4_extract_bytes 3s 4s -25%
mlk_keccakf1600x4_permute 3s 2s +50%
mlk_keccakf1600x4_xor_bytes 3s 3s +0%
mlk_keccakf1600x4_xor_bytes_c 3s 2s +50%
mlk_montgomery_reduce 3s 1s +200%
mlk_poly_cbd_eta1 3s 1s +200%
mlk_poly_cbd_eta2 3s 3s +0%
mlk_poly_compress_d10_native 3s 1s +200%
mlk_poly_compress_d11 3s 2s +50%
mlk_poly_compress_d4_c 3s 4s -25%
mlk_poly_compress_d5_c 3s 2s +50%
mlk_poly_decompress_d10_c 3s 3s +0%
mlk_poly_decompress_d4 3s 3s +0%
mlk_poly_decompress_d5_c 3s 2s +50%
mlk_poly_decompress_d5_native 3s 2s +50%
mlk_poly_getnoise_eta1_4x_native 3s 5s -40%
mlk_poly_invntt_tomont 3s 6s -50%
mlk_poly_mulcache_compute 3s 3s +0%
mlk_poly_mulcache_compute_c 3s 4s -25%
mlk_poly_ntt_c 3s 3s +0%
mlk_poly_tobytes 3s 3s +0%
mlk_polyvec_basemul_acc_montgomery_cached 3s 3s +0%
mlk_polyvec_frombytes 3s 1s +200%
mlk_polyvec_invntt_tomont 3s 3s +0%
mlk_polyvec_permute_bitrev_to_custom 3s 5s -40%
mlk_polyvec_permute_bitrev_to_custom_native 3s 3s +0%
mlk_polyvec_reduce 3s 2s +50%
mlk_polyvec_tobytes 3s 4s -25%
mlk_scalar_compress_d1 3s 1s +200%
mlk_scalar_decompress_d10 3s 4s -25%
mlk_scalar_decompress_d11 3s 2s +50%
mlk_scalar_decompress_d5 3s 4s -25%
mlk_sha3_256 3s 1s +200%
mlk_shake128_absorb_once 3s 1s +200%
mlk_value_barrier_i32 3s 3s +0%
mlk_value_barrier_u8 3s 3s +0%
poly_compress_d4_native_x86_64 3s 2s +50%
poly_compress_d5_native_x86_64 3s 1s +200%
poly_decompress_d11_native_x86_64 3s 3s +0%
poly_mulcache_compute_native_aarch64 3s 2s +50%
poly_mulcache_compute_native_x86_64 3s 2s +50%
polyvec_basemul_acc_montgomery_cached_k2_native_aarch64 3s 2s +50%
polyvec_basemul_acc_montgomery_cached_k2_native_x86_64 3s 3s +0%
polyvec_basemul_acc_montgomery_cached_k4_native_aarch64 3s 1s +200%
intt_native_aarch64 2s 3s -33%
intt_native_x86_64 2s 4s -50%
keccak_f1600_x1_native_aarch64_v84a 2s 3s -33%
keccakf1600_permute_native 2s 3s -33%
keccakf1600x4_xor_bytes_native 2s 4s -50%
kem_keypair 2s 1s +100%
kem_keypair_derand 2s 3s -33%
mlk_ct_cmask_neg_i16 2s 1s +100%
mlk_ct_cmask_nonzero_u16 2s 2s +0%
mlk_ct_cmov_zero 2s 3s -33%
mlk_keccakf1600_extract_bytes (big endian) 2s 3s -33%
mlk_keccakf1600_permute 2s 2s +0%
mlk_keccakf1600x4_extract_bytes_c 2s 2s +0%
mlk_keypair_getnoise_eta1 2s 3s -33%
mlk_matvec_mul 2s 3s -33%
mlk_poly_compress_d10 2s 3s -33%
mlk_poly_compress_d11_native 2s 1s +100%
mlk_poly_compress_d4_native 2s 3s -33%
mlk_poly_compress_d5 2s 3s -33%
mlk_poly_decompress_d10 2s 2s +0%
mlk_poly_decompress_d11 2s 1s +100%
mlk_poly_decompress_d11_c 2s 2s +0%
mlk_poly_decompress_d5 2s 4s -50%
mlk_poly_decompress_du 2s 2s +0%
mlk_poly_frombytes 2s 2s +0%
mlk_poly_getnoise_eta1122_4x 2s 1s +100%
mlk_poly_mulcache_compute_native 2s 1s +100%
mlk_poly_reduce 2s 3s -33%
mlk_poly_tobytes_c 2s 2s +0%
mlk_poly_tobytes_native 2s 1s +100%
mlk_poly_tomont 2s 4s -50%
mlk_poly_tomont_c 2s 2s +0%
mlk_poly_tomsg 2s 6s -67%
mlk_polymat_permute_bitrev_to_custom 2s 3s -33%
mlk_polyvec_compress_du 2s 3s -33%
mlk_polyvec_decompress_du 2s 3s -33%
mlk_polyvec_mulcache_compute 2s 3s -33%
mlk_polyvec_ntt 2s 2s +0%
mlk_polyvec_tomont 2s 2s +0%
mlk_scalar_compress_d4 2s 3s -33%
mlk_scalar_compress_d5 2s 3s -33%
mlk_sha3_512 2s 2s +0%
mlk_shake128_squeezeblocks 2s 2s +0%
mlk_shake128x4_squeezeblocks 2s 2s +0%
mlk_shake256 2s 3s -33%
ntt_native_x86_64 2s 2s +0%
poly_compress_d10_native_x86_64 2s 2s +0%
poly_compress_d11_native_x86_64 2s 3s -33%
poly_getnoise_eta1122_4x_native 2s 2s +0%
poly_invntt_tomont_native 2s 4s -50%
poly_tobytes_native_aarch64 2s 3s -33%
poly_tobytes_native_x86_64 2s 3s -33%
poly_tomont_native_aarch64 2s 1s +100%
poly_tomont_native_x86_64 2s 3s -33%
polyvec_basemul_acc_montgomery_cached_k3_native_aarch64 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid 1s 2s -50%
keccak_f1600_x4_native_avx2 1s 2s -50%
keccakf1600x4_extract_bytes_native 1s 1s +0%
kem_check_sk 1s 5s -80%
mlk_check_pct 1s 1s +0%
mlk_ct_get_optblocker_u8 1s 1s +0%
mlk_ct_memcmp 1s 1s +0%
mlk_ct_sel_int16 1s 2s -50%
mlk_keccakf1600_extract_bytes 1s 4s -75%
mlk_keccakf1600_xor_bytes (big endian) 1s 3s -67%
mlk_poly_compress_d11_c 1s 2s -50%
mlk_poly_compress_du 1s 1s +0%
mlk_poly_compress_dv 1s 2s -50%
mlk_poly_decompress_d11_native 1s 1s +0%
mlk_poly_decompress_dv 1s 2s -50%
mlk_poly_tomont_native 1s 2s -50%
mlk_rej_uniform 1s 2s -50%
mlk_scalar_compress_d10 1s 3s -67%
mlk_scalar_decompress_d4 1s 2s -50%
mlk_scalar_signed_to_unsigned_q 1s 2s -50%
mlk_shake128x4_absorb_once 1s 2s -50%
mlk_value_barrier_u32 1s 1s +0%
ntt_native_aarch64 1s 2s -50%
poly_reduce_native_aarch64 1s 1s +0%
poly_reduce_native_x86_64 1s 3s -67%
polyvec_basemul_acc_montgomery_cached_k4_native_x86_64 1s 3s -67%
rej_uniform_native 1s 3s -67%
sys_check_capability 1s 1s +0%

@oqs-bot

oqs-bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-KEM-512)

Full Results (191 proofs)
Proof Status Current Previous Change
**TOTAL** 1507s 1605s -6.1%
mlk_indcpa_enc 237s 259s -8%
mlk_indcpa_keypair_derand 194s 215s -10%
mlk_poly_rej_uniform 130s 143s -9%
mlk_rej_uniform_c 114s 123s -7%
rej_uniform_native_x86_64 57s 63s -10%
mlk_polyvec_basemul_acc_montgomery_cached_c 51s 53s -4%
mlk_poly_reduce_native 36s 34s +6%
poly_ntt_native 36s 40s -10%
rej_uniform_native_aarch64 35s 38s -8%
mlk_ntt_layer 27s 34s -21%
mlk_keccak_squeezeblocks_x4 24s 24s +0%
keccakf1600x4_permute_native_x4 17s 17s +0%
mlk_fqmul 16s 16s +0%
mlk_indcpa_dec 14s 16s -12%
mlk_poly_decompress_d10_native 14s 14s +0%
mlk_polyvec_add 14s 12s +17%
mlk_poly_decompress_d4_native 11s 15s -27%
mlk_poly_frommsg 9s 10s -10%
polyvec_basemul_acc_montgomery_cached_native 9s 8s +12%
mlk_keccak_squeeze_once 8s 7s +14%
mlk_keccak_squeezeblocks 8s 8s +0%
mlk_ntt_butterfly_block 8s 8s +0%
mlk_poly_frombytes_native 8s 9s -11%
mlk_poly_sub 8s 7s +14%
poly_decompress_d10_native_x86_64 7s 7s +0%
mlk_keccak_absorb_once_x4 6s 6s +0%
mlk_poly_add 6s 5s +20%
mlk_poly_rej_uniform_x4 6s 7s -14%
kem_check_sk 5s 2s +150%
mlk_keccak_absorb_once 5s 5s +0%
mlk_matvec_mul 5s 2s +150%
mlk_poly_ntt 5s 8s -38%
mlk_polyvec_tomont 5s 2s +150%
poly_compress_d4_native_x86_64 5s 2s +150%
poly_decompress_d4_native_x86_64 5s 4s +25%
poly_reduce_native_x86_64 5s 2s +150%
mlk_check_pct 4s 2s +100%
mlk_ct_cmask_nonzero_u16 4s 2s +100%
mlk_ct_memcmp 4s 2s +100%
mlk_ct_sel_uint8 4s 1s +300%
mlk_invntt_layer 4s 6s -33%
mlk_poly_decompress_d4_c 4s 4s +0%
mlk_poly_frombytes_c 4s 5s -20%
mlk_poly_getnoise_eta2 4s 1s +300%
mlk_poly_invntt_tomont_c 4s 2s +100%
mlk_poly_mulcache_compute 4s 3s +33%
mlk_poly_tobytes_c 4s 2s +100%
mlk_poly_tomont_native 4s 4s +0%
mlk_polyvec_permute_bitrev_to_custom_native 4s 4s +0%
mlk_polyvec_tobytes 4s 2s +100%
mlk_scalar_compress_d10 4s 2s +100%
mlk_shake256x4 4s 2s +100%
poly_frombytes_native_x86_64 4s 3s +33%
polyvec_basemul_acc_montgomery_cached_k2_native_aarch64 4s 4s +0%
intt_native_aarch64 3s 2s +50%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid 3s 2s +50%
keccakf1600_permute_native 3s 3s +0%
keccakf1600x4_extract_bytes_native 3s 2s +50%
keccakf1600x4_xor_bytes_native 3s 3s +0%
mlk_ct_cmask_neg_i16 3s 3s +0%
mlk_ct_sel_int16 3s 3s +0%
mlk_enc_getnoise_eta1_eta2 3s 4s -25%
mlk_gen_matrix 3s 3s +0%
mlk_keccakf1600_extract_bytes (big endian) 3s 1s +200%
mlk_keccakf1600_permute_c 3s 6s -50%
mlk_keccakf1600x4_extract_bytes_c 3s 3s +0%
mlk_keccakf1600x4_xor_bytes 3s 3s +0%
mlk_keypair_getnoise_eta1 3s 2s +50%
mlk_montgomery_reduce 3s 1s +200%
mlk_poly_cbd_eta1 3s 2s +50%
mlk_poly_compress_d10 3s 1s +200%
mlk_poly_compress_d11_native 3s 3s +0%
mlk_poly_compress_d4 3s 3s +0%
mlk_poly_compress_dv 3s 4s -25%
mlk_poly_decompress_d10_c 3s 3s +0%
mlk_poly_decompress_d5 3s 2s +50%
mlk_poly_decompress_du 3s 2s +50%
mlk_poly_getnoise_eta1_4x_native 3s 4s -25%
mlk_poly_ntt_c 3s 2s +50%
mlk_poly_reduce_c 3s 2s +50%
mlk_poly_tobytes 3s 1s +200%
mlk_poly_tomsg 3s 2s +50%
mlk_polymat_permute_bitrev_to_custom 3s 4s -25%
mlk_polyvec_decompress_du 3s 2s +50%
mlk_polyvec_mulcache_compute 3s 3s +0%
mlk_rej_uniform 3s 2s +50%
mlk_scalar_compress_d4 3s 2s +50%
mlk_shake128_absorb_once 3s 1s +200%
mlk_value_barrier_i32 3s 2s +50%
mlk_value_barrier_u32 3s 2s +50%
ntt_native_x86_64 3s 5s -40%
poly_compress_d11_native_x86_64 3s 2s +50%
poly_decompress_d11_native_x86_64 3s 2s +50%
poly_tobytes_native_x86_64 3s 3s +0%
poly_tomont_native_x86_64 3s 3s +0%
polyvec_basemul_acc_montgomery_cached_k2_native_x86_64 3s 3s +0%
polyvec_basemul_acc_montgomery_cached_k3_native_x86_64 3s 1s +200%
intt_native_x86_64 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid 2s 2s +0%
keccak_f1600_x4_native_avx2 2s 1s +100%
kem_check_pk 2s 4s -50%
kem_dec 2s 3s -33%
kem_enc 2s 4s -50%
kem_enc_derand 2s 4s -50%
kem_keypair 2s 4s -50%
kem_keypair_derand 2s 2s +0%
mlk_ct_cmov_zero 2s 2s +0%
mlk_ct_get_optblocker_u8 2s 2s +0%
mlk_keccakf1600_extract_bytes 2s 2s +0%
mlk_keccakf1600_xor_bytes (big endian) 2s 3s -33%
mlk_keccakf1600x4_extract_bytes 2s 3s -33%
mlk_keccakf1600x4_permute 2s 1s +100%
mlk_keccakf1600x4_xor_bytes_c 2s 2s +0%
mlk_poly_compress_d10_native 2s 2s +0%
mlk_poly_compress_d4_c 2s 4s -50%
mlk_poly_compress_d5 2s 2s +0%
mlk_poly_compress_d5_native 2s 2s +0%
mlk_poly_decompress_d11 2s 1s +100%
mlk_poly_decompress_d11_c 2s 3s -33%
mlk_poly_decompress_d4 2s 2s +0%
mlk_poly_decompress_d5_c 2s 2s +0%
mlk_poly_frombytes 2s 3s -33%
mlk_poly_getnoise_eta1122_4x 2s 2s +0%
mlk_poly_getnoise_eta1_4x 2s 3s -33%
mlk_poly_invntt_tomont 2s 2s +0%
mlk_poly_mulcache_compute_native 2s 3s -33%
mlk_poly_tobytes_native 2s 3s -33%
mlk_poly_tomont_c 2s 1s +100%
mlk_polyvec_basemul_acc_montgomery_cached 2s 2s +0%
mlk_polyvec_compress_du 2s 3s -33%
mlk_polyvec_frombytes 2s 6s -67%
mlk_polyvec_invntt_tomont 2s 2s +0%
mlk_polyvec_permute_bitrev_to_custom 2s 1s +100%
mlk_polyvec_reduce 2s 4s -50%
mlk_scalar_compress_d1 2s 4s -50%
mlk_scalar_compress_d11 2s 2s +0%
mlk_scalar_decompress_d4 2s 2s +0%
mlk_scalar_signed_to_unsigned_q 2s 1s +100%
mlk_sha3_256 2s 3s -33%
mlk_sha3_512 2s 5s -60%
mlk_shake128_squeezeblocks 2s 2s +0%
mlk_shake128x4_absorb_once 2s 3s -33%
mlk_shake128x4_squeezeblocks 2s 1s +100%
mlk_value_barrier_u8 2s 2s +0%
nttunpack_native_x86_64 2s 1s +100%
poly_compress_d10_native_x86_64 2s 4s -50%
poly_compress_d5_native_x86_64 2s 2s +0%
poly_decompress_d5_native_x86_64 2s 1s +100%
poly_getnoise_eta1122_4x_native 2s 3s -33%
poly_invntt_tomont_native 2s 2s +0%
poly_mulcache_compute_native_aarch64 2s 3s -33%
poly_mulcache_compute_native_x86_64 2s 2s +0%
poly_reduce_native_aarch64 2s 4s -50%
poly_tobytes_native_aarch64 2s 3s -33%
polyvec_basemul_acc_montgomery_cached_k3_native_aarch64 2s 3s -33%
polyvec_basemul_acc_montgomery_cached_k4_native_aarch64 2s 1s +100%
polyvec_basemul_acc_montgomery_cached_k4_native_x86_64 2s 1s +100%
sys_check_capability 2s 3s -33%
keccak_f1600_x1_native_aarch64 1s 2s -50%
keccak_f1600_x1_native_aarch64_v84a 1s 3s -67%
mlk_barrett_reduce 1s 1s +0%
mlk_ct_cmask_nonzero_u8 1s 2s -50%
mlk_ct_get_optblocker_i32 1s 4s -75%
mlk_ct_get_optblocker_u32 1s 1s +0%
mlk_gen_matrix_serial 1s 2s -50%
mlk_keccakf1600_permute 1s 2s -50%
mlk_keccakf1600_xor_bytes 1s 4s -75%
mlk_poly_cbd_eta2 1s 3s -67%
mlk_poly_compress_d10_c 1s 3s -67%
mlk_poly_compress_d11 1s 2s -50%
mlk_poly_compress_d11_c 1s 1s +0%
mlk_poly_compress_d4_native 1s 2s -50%
mlk_poly_compress_d5_c 1s 3s -67%
mlk_poly_compress_du 1s 1s +0%
mlk_poly_decompress_d10 1s 2s -50%
mlk_poly_decompress_d11_native 1s 2s -50%
mlk_poly_decompress_d5_native 1s 2s -50%
mlk_poly_decompress_dv 1s 2s -50%
mlk_poly_mulcache_compute_c 1s 2s -50%
mlk_poly_reduce 1s 1s +0%
mlk_poly_tomont 1s 1s +0%
mlk_polyvec_ntt 1s 2s -50%
mlk_scalar_compress_d5 1s 2s -50%
mlk_scalar_decompress_d10 1s 2s -50%
mlk_scalar_decompress_d11 1s 2s -50%
mlk_scalar_decompress_d5 1s 3s -67%
mlk_shake256 1s 1s +0%
ntt_native_aarch64 1s 3s -67%
poly_tomont_native_aarch64 1s 2s -50%
rej_uniform_native 1s 2s -50%

@oqs-bot

oqs-bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-KEM-1024)

Full Results (191 proofs)
Proof Status Current Previous Change
**TOTAL** 1809s 1648s +9.8%
mlk_indcpa_enc 385s 350s +10%
mlk_indcpa_keypair_derand 172s 166s +4%
mlk_poly_rej_uniform 160s 129s +24%
mlk_rej_uniform_c 142s 123s +15%
mlk_polyvec_basemul_acc_montgomery_cached_c 77s 73s +5%
rej_uniform_native_x86_64 61s 56s +9%
poly_ntt_native 45s 36s +25%
mlk_poly_reduce_native 39s 33s +18%
rej_uniform_native_aarch64 39s 34s +15%
mlk_ntt_layer 37s 28s +32%
mlk_keccak_squeezeblocks_x4 27s 25s +8%
polyvec_basemul_acc_montgomery_cached_native 27s 26s +4%
mlk_polyvec_add 19s 17s +12%
keccakf1600x4_permute_native_x4 17s 18s -6%
mlk_fqmul 17s 17s +0%
mlk_poly_decompress_d11_native 17s 14s +21%
mlk_poly_decompress_d5_native 16s 14s +14%
mlk_indcpa_dec 12s 9s +33%
mlk_poly_frommsg 12s 10s +20%
mlk_polyvec_ntt 12s 10s +20%
mlk_keccak_squeezeblocks 10s 8s +25%
mlk_poly_frombytes_native 9s 8s +12%
mlk_poly_ntt 9s 5s +80%
mlk_keccak_squeeze_once 8s 8s +0%
mlk_ntt_butterfly_block 8s 8s +0%
mlk_poly_sub 8s 8s +0%
mlk_invntt_layer 7s 3s +133%
mlk_poly_rej_uniform_x4 7s 6s +17%
mlk_keccak_absorb_once_x4 6s 7s -14%
mlk_poly_tomont_c 6s 2s +200%
mlk_polymat_permute_bitrev_to_custom 6s 3s +100%
kem_check_pk 5s 3s +67%
mlk_gen_matrix_serial 5s 3s +67%
mlk_keccakf1600_permute_c 5s 6s -17%
mlk_keccakf1600x4_xor_bytes_c 5s 2s +150%
mlk_poly_add 5s 5s +0%
mlk_poly_frombytes_c 5s 5s +0%
mlk_polyvec_tobytes 5s 2s +150%
mlk_sha3_256 5s 2s +150%
poly_frombytes_native_x86_64 5s 3s +67%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid 4s 1s +300%
keccakf1600x4_extract_bytes_native 4s 3s +33%
keccakf1600x4_xor_bytes_native 4s 2s +100%
mlk_gen_matrix 4s 4s +0%
mlk_poly_cbd_eta1 4s 1s +300%
mlk_poly_compress_d11_c 4s 3s +33%
mlk_poly_compress_d4_native 4s 1s +300%
mlk_poly_invntt_tomont_c 4s 3s +33%
mlk_poly_mulcache_compute_c 4s 4s +0%
mlk_polyvec_frombytes 4s 2s +100%
mlk_polyvec_invntt_tomont 4s 2s +100%
mlk_shake128_absorb_once 4s 3s +33%
poly_decompress_d11_native_x86_64 4s 5s -20%
poly_mulcache_compute_native_x86_64 4s 4s +0%
poly_reduce_native_aarch64 4s 1s +300%
polyvec_basemul_acc_montgomery_cached_k2_native_x86_64 4s 3s +33%
intt_native_aarch64 3s 2s +50%
intt_native_x86_64 3s 2s +50%
keccak_f1600_x1_native_aarch64_v84a 3s 2s +50%
keccak_f1600_x4_native_aarch64_v84a 3s 2s +50%
kem_dec 3s 3s +0%
kem_keypair 3s 2s +50%
mlk_ct_cmask_neg_i16 3s 4s -25%
mlk_ct_cmask_nonzero_u16 3s 2s +50%
mlk_ct_cmov_zero 3s 2s +50%
mlk_ct_memcmp 3s 3s +0%
mlk_keccak_absorb_once 3s 4s -25%
mlk_keccakf1600_extract_bytes 3s 1s +200%
mlk_keccakf1600_extract_bytes (big endian) 3s 2s +50%
mlk_keccakf1600x4_permute 3s 1s +200%
mlk_matvec_mul 3s 4s -25%
mlk_montgomery_reduce 3s 3s +0%
mlk_poly_compress_d10_c 3s 3s +0%
mlk_poly_compress_d10_native 3s 2s +50%
mlk_poly_compress_d4_c 3s 4s -25%
mlk_poly_compress_dv 3s 2s +50%
mlk_poly_decompress_d11 3s 3s +0%
mlk_poly_frombytes 3s 3s +0%
mlk_poly_getnoise_eta1_4x 3s 3s +0%
mlk_poly_getnoise_eta1_4x_native 3s 4s -25%
mlk_poly_mulcache_compute 3s 3s +0%
mlk_poly_reduce_c 3s 1s +200%
mlk_polyvec_mulcache_compute 3s 2s +50%
mlk_polyvec_permute_bitrev_to_custom_native 3s 1s +200%
mlk_rej_uniform 3s 1s +200%
mlk_scalar_compress_d11 3s 2s +50%
mlk_scalar_decompress_d4 3s 2s +50%
mlk_scalar_decompress_d5 3s 2s +50%
mlk_scalar_signed_to_unsigned_q 3s 1s +200%
mlk_shake128x4_squeezeblocks 3s 3s +0%
mlk_shake256x4 3s 3s +0%
ntt_native_x86_64 3s 2s +50%
poly_compress_d10_native_x86_64 3s 1s +200%
poly_compress_d4_native_x86_64 3s 3s +0%
poly_decompress_d5_native_x86_64 3s 4s -25%
poly_getnoise_eta1122_4x_native 3s 1s +200%
poly_invntt_tomont_native 3s 1s +200%
poly_mulcache_compute_native_aarch64 3s 4s -25%
polyvec_basemul_acc_montgomery_cached_k3_native_aarch64 3s 4s -25%
polyvec_basemul_acc_montgomery_cached_k4_native_x86_64 3s 3s +0%
keccak_f1600_x1_native_aarch64 2s 1s +100%
keccak_f1600_x4_native_avx2 2s 1s +100%
kem_check_sk 2s 3s -33%
kem_enc_derand 2s 3s -33%
kem_keypair_derand 2s 2s +0%
mlk_check_pct 2s 5s -60%
mlk_ct_cmask_nonzero_u8 2s 2s +0%
mlk_ct_get_optblocker_i32 2s 2s +0%
mlk_ct_get_optblocker_u32 2s 4s -50%
mlk_ct_sel_uint8 2s 2s +0%
mlk_enc_getnoise_eta1_eta2 2s 5s -60%
mlk_keccakf1600_permute 2s 2s +0%
mlk_keccakf1600_xor_bytes 2s 4s -50%
mlk_keccakf1600_xor_bytes (big endian) 2s 2s +0%
mlk_keccakf1600x4_extract_bytes_c 2s 2s +0%
mlk_keccakf1600x4_xor_bytes 2s 4s -50%
mlk_keypair_getnoise_eta1 2s 1s +100%
mlk_poly_compress_d11 2s 2s +0%
mlk_poly_compress_d11_native 2s 3s -33%
mlk_poly_compress_d4 2s 3s -33%
mlk_poly_compress_d5_c 2s 2s +0%
mlk_poly_compress_d5_native 2s 3s -33%
mlk_poly_decompress_d10 2s 2s +0%
mlk_poly_decompress_d4_c 2s 4s -50%
mlk_poly_decompress_d4_native 2s 2s +0%
mlk_poly_decompress_d5 2s 1s +100%
mlk_poly_decompress_d5_c 2s 1s +100%
mlk_poly_decompress_du 2s 2s +0%
mlk_poly_decompress_dv 2s 2s +0%
mlk_poly_getnoise_eta1122_4x 2s 3s -33%
mlk_poly_getnoise_eta2 2s 3s -33%
mlk_poly_mulcache_compute_native 2s 2s +0%
mlk_poly_tobytes 2s 2s +0%
mlk_poly_tobytes_native 2s 2s +0%
mlk_poly_tomont 2s 1s +100%
mlk_poly_tomont_native 2s 2s +0%
mlk_poly_tomsg 2s 4s -50%
mlk_polyvec_compress_du 2s 1s +100%
mlk_polyvec_decompress_du 2s 2s +0%
mlk_polyvec_permute_bitrev_to_custom 2s 5s -60%
mlk_scalar_compress_d1 2s 2s +0%
mlk_scalar_compress_d4 2s 2s +0%
mlk_scalar_compress_d5 2s 2s +0%
mlk_scalar_decompress_d10 2s 1s +100%
mlk_scalar_decompress_d11 2s 2s +0%
mlk_shake128_squeezeblocks 2s 1s +100%
mlk_shake128x4_absorb_once 2s 2s +0%
mlk_value_barrier_i32 2s 2s +0%
mlk_value_barrier_u32 2s 2s +0%
mlk_value_barrier_u8 2s 3s -33%
ntt_native_aarch64 2s 1s +100%
nttunpack_native_x86_64 2s 2s +0%
poly_compress_d5_native_x86_64 2s 1s +100%
poly_reduce_native_x86_64 2s 5s -60%
poly_tobytes_native_x86_64 2s 1s +100%
poly_tomont_native_aarch64 2s 3s -33%
poly_tomont_native_x86_64 2s 3s -33%
polyvec_basemul_acc_montgomery_cached_k2_native_aarch64 2s 3s -33%
polyvec_basemul_acc_montgomery_cached_k4_native_aarch64 2s 5s -60%
sys_check_capability 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid 1s 1s +0%
keccakf1600_permute_native 1s 3s -67%
kem_enc 1s 1s +0%
mlk_barrett_reduce 1s 2s -50%
mlk_ct_get_optblocker_u8 1s 1s +0%
mlk_ct_sel_int16 1s 3s -67%
mlk_keccakf1600x4_extract_bytes 1s 2s -50%
mlk_poly_cbd_eta2 1s 4s -75%
mlk_poly_compress_d10 1s 3s -67%
mlk_poly_compress_d5 1s 2s -50%
mlk_poly_compress_du 1s 3s -67%
mlk_poly_decompress_d10_c 1s 3s -67%
mlk_poly_decompress_d10_native 1s 2s -50%
mlk_poly_decompress_d11_c 1s 1s +0%
mlk_poly_decompress_d4 1s 2s -50%
mlk_poly_invntt_tomont 1s 2s -50%
mlk_poly_ntt_c 1s 2s -50%
mlk_poly_reduce 1s 2s -50%
mlk_poly_tobytes_c 1s 3s -67%
mlk_polyvec_basemul_acc_montgomery_cached 1s 2s -50%
mlk_polyvec_reduce 1s 2s -50%
mlk_polyvec_tomont 1s 2s -50%
mlk_scalar_compress_d10 1s 1s +0%
mlk_sha3_512 1s 1s +0%
mlk_shake256 1s 4s -75%
poly_compress_d11_native_x86_64 1s 3s -67%
poly_decompress_d10_native_x86_64 1s 5s -80%
poly_decompress_d4_native_x86_64 1s 1s +0%
poly_tobytes_native_aarch64 1s 3s -67%
polyvec_basemul_acc_montgomery_cached_k3_native_x86_64 1s 1s +0%
rej_uniform_native 1s 4s -75%

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arm Cortex-M55 (NUCLEO-N657X0-Q) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 727950 cycles 7850380 cycles 0.09272799533271
ML-KEM-512 encaps 856828 cycles 8587300 cycles 0.09977851012541777
ML-KEM-512 decaps 1090494 cycles 10952844 cycles 0.09956263414324171
ML-KEM-768 keypair 1196905 cycles 12711760 cycles 0.09415730001195743
ML-KEM-768 encaps 1390354 cycles 14138090 cycles 0.09834100645843957
ML-KEM-768 decaps 1705536 cycles 17499057 cycles 0.09746445194161034
ML-KEM-1024 keypair 1766592 cycles 23228659 cycles 0.07605225940937874
ML-KEM-1024 encaps 1975479 cycles 25701892 cycles 0.07686122873755753
ML-KEM-1024 decaps 2370613 cycles 30573558 cycles 0.07753801503900855

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arm Cortex-A55 (Snapdragon 888) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 59810 cycles 59849 cycles 1.00
ML-KEM-512 encaps 67491 cycles 67486 cycles 1.00
ML-KEM-512 decaps 86491 cycles 86496 cycles 1.00
ML-KEM-768 keypair 97501 cycles 97575 cycles 1.00
ML-KEM-768 encaps 110987 cycles 111254 cycles 1.00
ML-KEM-768 decaps 138794 cycles 138464 cycles 1.00
ML-KEM-1024 keypair 154817 cycles 154791 cycles 1.00
ML-KEM-1024 encaps 172378 cycles 172787 cycles 1.00
ML-KEM-1024 decaps 208461 cycles 208533 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@oqs-bot oqs-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arm Cortex-A72 (Raspberry Pi 4) benchmarks

Details
Benchmark suite Current: 0e34d09 Previous: cfd1912 Ratio
ML-KEM-512 keypair 51926 cycles 52898 cycles 0.98
ML-KEM-512 encaps 60239 cycles 60920 cycles 0.99
ML-KEM-512 decaps 76346 cycles 78181 cycles 0.98
ML-KEM-768 keypair 89783 cycles 88876 cycles 1.01
ML-KEM-768 encaps 98665 cycles 97634 cycles 1.01
ML-KEM-768 decaps 122699 cycles 121328 cycles 1.01
ML-KEM-1024 keypair 133541 cycles 133260 cycles 1.00
ML-KEM-1024 encaps 145458 cycles 146057 cycles 1.00
ML-KEM-1024 decaps 178502 cycles 178659 cycles 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Comment on lines -35 to +38
return (int)((*((const uint64_t *)a)) - (*((const uint64_t *)b)));
const uint64_t va = *((const uint64_t *)a);
const uint64_t vb = *((const uint64_t *)b);

return (va > vb) - (va < vb);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this change made? Some comment would be useful.

zephyr,memory-region = "DTCM";
};

mlk_axisram: memory@34080000 {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still needed?

@hanno-becker hanno-becker left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you split the cycle counter changes and the memory layout changes in two separate commits?

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

Labels

benchmark this PR should be benchmarked in CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants