Add Armv8.1-M Keccak x1 backend - #1277
Conversation
CBMC Results (ML-DSA-44)
Full Results (210 proofs)
|
CBMC Results (ML-DSA-44, REDUCE-RAM)
Full Results (210 proofs)
|
CBMC Results (ML-DSA-87, REDUCE-RAM)
Full Results (210 proofs)
|
CBMC Results (ML-DSA-65)
Full Results (210 proofs)
|
CBMC Results (ML-DSA-65, REDUCE-RAM)
Full Results (210 proofs)
|
CBMC Results (ML-DSA-87)
Full Results (210 proofs)
|
a1dde44 to
e8a49a1
Compare
d0543bf to
c45a108
Compare
4f71edb to
1c70ab2
Compare
Build the ABI checker and assembly sources directly with Zephyr's target toolchain. Select the Armv8.1-M checker for M55 and preserve OPT/AUTO through the run stage so the checker is actually executed. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Include OPT, the selected FIPS202 backend, and configurable test counts in the active build marker so changes to those inputs rebuild stale Zephyr binaries. Track the native assembly amalgamation and its direct development-source include as explicit dependencies, and allow QEMU execution timeouts to be overridden. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
1c70ab2 to
3ed4031
Compare
The lazy/eager polyvector unit test allocates both ML-DSA-87 representations and their scratch space through MLD_ALLOC. The default MLD_ALLOC implementation expands to aligned automatic arrays, so this single test exceeds the Zephyr test thread stack on the Cortex-M55 test configuration. Use test-local, aligned static buffers for this workspace. The TEST_STATIC_ALLOC and TEST_STATIC_FREE helpers are deliberately scoped to test_unit.c: they preserve cleanup by zeroizing every buffer and clearing its pointer, without changing the allocator used by production code or other tests. Only test/src/test_unit.c changes. The test inputs, comparisons, and coverage remain the same; this commit changes where its temporary workspace is stored. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Generated ABI checks normally fill every assembly argument buffer with random bytes. That is unsuitable for interfaces containing control data. The Armv8.1-M Keccak x1 permutation consumes 49 round-constant words and requires the final word to be 0x000000ff as a loop terminator. Leaving that word random can make the checker read beyond the supplied buffer. Add an optional test_bytes mapping to buffer entries in the assembly ABI YAML. scripts/autogen validates that offsets are integers within the buffer and that values are bytes, sorts the overrides, and emits them after randombytes initializes the rest of the buffer. Existing ABI metadata without test_bytes retains its current behaviour. Document the new metadata in test/abicheck/README.md. The generic facility is introduced here before its Keccak x1 consumer so the following backend commit contains only feature-specific metadata and generated checks. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Add the first of three deliberately separated Cortex-M55 Keccak changes: a known-good scalar baseline derived from the Adomnicai/XKCP Armv7-M implementation. Measurements made while preparing the series showed that the existing Cortex-M7 schedule runs faster on Cortex-M55 than the Cortex-M4 schedule, so this commit establishes the M7-scheduled implementation before later commits introduce an M55 scheduling model and a 64-bit load/store-aware scalar input. The code in this commit is scalar and does not require or use MVE. Keep the Keccak state in the even/odd bit-interleaved representation across permutations. Native xor and extract hooks convert only the lanes crossing the byte interface, and a private round-constant table supplies the 24 interleaved constants and loop terminator expected by the permutation. Organize the implementation so its origin and generated form remain reviewable. dev/fips202/armv81m_clean contains only the unscheduled permutation input. dev/fips202/armv81m_opt contains the SLOTHY driver, Makefile, concise development README, C wrapper, scheduled permutation, and separate scalar xor and extract assembly sources. Splitting the helpers gives every assembly file one external entry point and lets the normal loop-label check cover all x1 sources. Teach scripts/autogen to merge the existing Armv8.1-M and new x1 development directories into the production directory. The retained filename set is derived from both inputs, replacing the hard-coded keep list and ensuring removed or renamed files cannot leave stale output. The helper assembly is simplified and synchronized like other production assembly, so mldsa_native_asm.S includes only files under mldsa/ and no longer reaches into dev/. Zephyr custom builds track all production assembly inputs for reliable rebuilds. Describe and generate AAPCS32 checks for all three external assembly routines: permutation, xor, and extract. The scalar routines carry no MVE feature requirement. Add focused xor and extract tests for zero length, unaligned starts, 7/8/9-byte lane boundaries, cross-lane ranges, final-lane ranges, and the complete 200-byte state; canary-filled extraction buffers also detect writes beyond the requested length. Existing representation-aware permutation tests continue to compare against the portable reference. Update the bibliography and license material for the imported XKCP, Adomnicai, and SLOTHY work. Keep the x1 header, constants, sources, generation path, tests, and ABI metadata separate from the established parallel implementation so no x4 source file is changed. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
14b78cc to
91039f7
Compare
There was a problem hiding this comment.
Arm Cortex-A76 (Raspberry Pi 5) benchmarks (opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
112292 cycles |
112421 cycles |
1.00 |
ML-DSA-44 sign |
353509 cycles |
353943 cycles |
1.00 |
ML-DSA-44 verify |
117045 cycles |
117107 cycles |
1.00 |
ML-DSA-65 keypair |
194768 cycles |
194811 cycles |
1.00 |
ML-DSA-65 sign |
583684 cycles |
583921 cycles |
1.00 |
ML-DSA-65 verify |
192841 cycles |
192856 cycles |
1.00 |
ML-DSA-87 keypair |
320755 cycles |
321141 cycles |
1.00 |
ML-DSA-87 sign |
746990 cycles |
747840 cycles |
1.00 |
ML-DSA-87 verify |
318459 cycles |
318856 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton4
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
67170 cycles |
67140 cycles |
1.00 |
ML-DSA-44 sign |
198275 cycles |
198520 cycles |
1.00 |
ML-DSA-44 verify |
70187 cycles |
70179 cycles |
1.00 |
ML-DSA-65 keypair |
119479 cycles |
119327 cycles |
1.00 |
ML-DSA-65 sign |
326165 cycles |
325855 cycles |
1.00 |
ML-DSA-65 verify |
116767 cycles |
116729 cycles |
1.00 |
ML-DSA-87 keypair |
196332 cycles |
196421 cycles |
1.00 |
ML-DSA-87 sign |
421029 cycles |
421793 cycles |
1.00 |
ML-DSA-87 verify |
193128 cycles |
193311 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton3
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
71467 cycles |
71566 cycles |
1.00 |
ML-DSA-44 sign |
209093 cycles |
209190 cycles |
1.00 |
ML-DSA-44 verify |
74899 cycles |
74886 cycles |
1.00 |
ML-DSA-65 keypair |
126082 cycles |
125982 cycles |
1.00 |
ML-DSA-65 sign |
345255 cycles |
345302 cycles |
1.00 |
ML-DSA-65 verify |
124183 cycles |
124016 cycles |
1.00 |
ML-DSA-87 keypair |
206788 cycles |
206174 cycles |
1.00 |
ML-DSA-87 sign |
443594 cycles |
439456 cycles |
1.01 |
ML-DSA-87 verify |
204221 cycles |
204466 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-A76 (Raspberry Pi 5) benchmarks (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
212023 cycles |
211728 cycles |
1.00 |
ML-DSA-44 sign |
760177 cycles |
760105 cycles |
1.00 |
ML-DSA-44 verify |
229622 cycles |
229528 cycles |
1.00 |
ML-DSA-65 keypair |
376006 cycles |
375776 cycles |
1.00 |
ML-DSA-65 sign |
1247772 cycles |
1247636 cycles |
1.00 |
ML-DSA-65 verify |
372103 cycles |
371972 cycles |
1.00 |
ML-DSA-87 keypair |
601327 cycles |
601076 cycles |
1.00 |
ML-DSA-87 sign |
1583437 cycles |
1583880 cycles |
1.00 |
ML-DSA-87 verify |
617108 cycles |
616981 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton4 (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
127897 cycles |
127841 cycles |
1.00 |
ML-DSA-44 sign |
441495 cycles |
440929 cycles |
1.00 |
ML-DSA-44 verify |
136358 cycles |
136340 cycles |
1.00 |
ML-DSA-65 keypair |
221663 cycles |
221539 cycles |
1.00 |
ML-DSA-65 sign |
714078 cycles |
713985 cycles |
1.00 |
ML-DSA-65 verify |
220580 cycles |
220544 cycles |
1.00 |
ML-DSA-87 keypair |
365287 cycles |
364498 cycles |
1.00 |
ML-DSA-87 sign |
916065 cycles |
915431 cycles |
1.00 |
ML-DSA-87 verify |
370911 cycles |
371022 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton3 (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
138441 cycles |
138205 cycles |
1.00 |
ML-DSA-44 sign |
486106 cycles |
485764 cycles |
1.00 |
ML-DSA-44 verify |
149269 cycles |
149259 cycles |
1.00 |
ML-DSA-65 keypair |
242153 cycles |
241613 cycles |
1.00 |
ML-DSA-65 sign |
791700 cycles |
791618 cycles |
1.00 |
ML-DSA-65 verify |
241534 cycles |
241503 cycles |
1.00 |
ML-DSA-87 keypair |
396162 cycles |
395195 cycles |
1.00 |
ML-DSA-87 sign |
1013608 cycles |
1014135 cycles |
1.00 |
ML-DSA-87 verify |
403785 cycles |
404031 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 4th gen (c7i)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
43290 cycles |
43407 cycles |
1.00 |
ML-DSA-44 sign |
130107 cycles |
130440 cycles |
1.00 |
ML-DSA-44 verify |
45233 cycles |
45231 cycles |
1.00 |
ML-DSA-65 keypair |
75800 cycles |
75611 cycles |
1.00 |
ML-DSA-65 sign |
213743 cycles |
213750 cycles |
1.00 |
ML-DSA-65 verify |
74411 cycles |
74462 cycles |
1.00 |
ML-DSA-87 keypair |
122926 cycles |
122917 cycles |
1.00 |
ML-DSA-87 sign |
270981 cycles |
271210 cycles |
1.00 |
ML-DSA-87 verify |
120778 cycles |
120613 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 4th gen (c7a)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
46735 cycles |
46709 cycles |
1.00 |
ML-DSA-44 sign |
139947 cycles |
139435 cycles |
1.00 |
ML-DSA-44 verify |
49469 cycles |
49461 cycles |
1.00 |
ML-DSA-65 keypair |
82621 cycles |
81967 cycles |
1.01 |
ML-DSA-65 sign |
227154 cycles |
226735 cycles |
1.00 |
ML-DSA-65 verify |
81978 cycles |
82665 cycles |
0.99 |
ML-DSA-87 keypair |
130551 cycles |
129492 cycles |
1.01 |
ML-DSA-87 sign |
279924 cycles |
280340 cycles |
1.00 |
ML-DSA-87 verify |
128506 cycles |
128405 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 4th gen (c7i) (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
91704 cycles |
91774 cycles |
1.00 |
ML-DSA-44 sign |
351502 cycles |
351709 cycles |
1.00 |
ML-DSA-44 verify |
99387 cycles |
99709 cycles |
1.00 |
ML-DSA-65 keypair |
154237 cycles |
154289 cycles |
1.00 |
ML-DSA-65 sign |
571927 cycles |
570738 cycles |
1.00 |
ML-DSA-65 verify |
160351 cycles |
160181 cycles |
1.00 |
ML-DSA-87 keypair |
255233 cycles |
255166 cycles |
1.00 |
ML-DSA-87 sign |
720046 cycles |
720821 cycles |
1.00 |
ML-DSA-87 verify |
264335 cycles |
263865 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton2
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
112198 cycles |
112399 cycles |
1.00 |
ML-DSA-44 sign |
353753 cycles |
353820 cycles |
1.00 |
ML-DSA-44 verify |
117415 cycles |
117171 cycles |
1.00 |
ML-DSA-65 keypair |
194605 cycles |
194786 cycles |
1.00 |
ML-DSA-65 sign |
584072 cycles |
584013 cycles |
1.00 |
ML-DSA-65 verify |
193382 cycles |
193015 cycles |
1.00 |
ML-DSA-87 keypair |
320883 cycles |
320852 cycles |
1.00 |
ML-DSA-87 sign |
747307 cycles |
747201 cycles |
1.00 |
ML-DSA-87 verify |
318179 cycles |
318645 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 3rd gen (c6a)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
52008 cycles |
51879 cycles |
1.00 |
ML-DSA-44 sign |
154462 cycles |
155064 cycles |
1.00 |
ML-DSA-44 verify |
54166 cycles |
54259 cycles |
1.00 |
ML-DSA-65 keypair |
89427 cycles |
89685 cycles |
1.00 |
ML-DSA-65 sign |
253071 cycles |
254754 cycles |
0.99 |
ML-DSA-65 verify |
89176 cycles |
89439 cycles |
1.00 |
ML-DSA-87 keypair |
143367 cycles |
142352 cycles |
1.01 |
ML-DSA-87 sign |
310438 cycles |
311341 cycles |
1.00 |
ML-DSA-87 verify |
138807 cycles |
139359 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 4th gen (c7a) (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
118639 cycles |
118234 cycles |
1.00 |
ML-DSA-44 sign |
458559 cycles |
458712 cycles |
1.00 |
ML-DSA-44 verify |
130837 cycles |
131121 cycles |
1.00 |
ML-DSA-65 keypair |
201470 cycles |
200822 cycles |
1.00 |
ML-DSA-65 sign |
743521 cycles |
747583 cycles |
0.99 |
ML-DSA-65 verify |
209873 cycles |
209481 cycles |
1.00 |
ML-DSA-87 keypair |
331170 cycles |
332858 cycles |
0.99 |
ML-DSA-87 sign |
935608 cycles |
936652 cycles |
1.00 |
ML-DSA-87 verify |
343114 cycles |
343994 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 3rd gen (c6a) (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
133187 cycles |
134282 cycles |
0.99 |
ML-DSA-44 sign |
518022 cycles |
520818 cycles |
0.99 |
ML-DSA-44 verify |
146634 cycles |
147777 cycles |
0.99 |
ML-DSA-65 keypair |
224332 cycles |
224694 cycles |
1.00 |
ML-DSA-65 sign |
843960 cycles |
843127 cycles |
1.00 |
ML-DSA-65 verify |
234144 cycles |
233924 cycles |
1.00 |
ML-DSA-87 keypair |
367057 cycles |
367125 cycles |
1.00 |
ML-DSA-87 sign |
1058600 cycles |
1057892 cycles |
1.00 |
ML-DSA-87 verify |
380447 cycles |
380252 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton2 (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
212129 cycles |
212335 cycles |
1.00 |
ML-DSA-44 sign |
760693 cycles |
761210 cycles |
1.00 |
ML-DSA-44 verify |
229484 cycles |
229974 cycles |
1.00 |
ML-DSA-65 keypair |
375440 cycles |
376324 cycles |
1.00 |
ML-DSA-65 sign |
1248106 cycles |
1248564 cycles |
1.00 |
ML-DSA-65 verify |
371579 cycles |
372377 cycles |
1.00 |
ML-DSA-87 keypair |
600041 cycles |
601386 cycles |
1.00 |
ML-DSA-87 sign |
1586041 cycles |
1607791 cycles |
0.99 |
ML-DSA-87 verify |
615917 cycles |
617602 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 3rd gen (c6i)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
61706 cycles |
61819 cycles |
1.00 |
ML-DSA-44 sign |
187966 cycles |
188851 cycles |
1.00 |
ML-DSA-44 verify |
66228 cycles |
66399 cycles |
1.00 |
ML-DSA-65 keypair |
109427 cycles |
110427 cycles |
0.99 |
ML-DSA-65 sign |
311800 cycles |
313769 cycles |
0.99 |
ML-DSA-65 verify |
109443 cycles |
111323 cycles |
0.98 |
ML-DSA-87 keypair |
170673 cycles |
173116 cycles |
0.99 |
ML-DSA-87 sign |
379405 cycles |
385429 cycles |
0.98 |
ML-DSA-87 verify |
170627 cycles |
174422 cycles |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 3rd gen (c6i) (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
154055 cycles |
154452 cycles |
1.00 |
ML-DSA-44 sign |
587101 cycles |
588162 cycles |
1.00 |
ML-DSA-44 verify |
169059 cycles |
168998 cycles |
1.00 |
ML-DSA-65 keypair |
261730 cycles |
262562 cycles |
1.00 |
ML-DSA-65 sign |
964081 cycles |
965903 cycles |
1.00 |
ML-DSA-65 verify |
271336 cycles |
272372 cycles |
1.00 |
ML-DSA-87 keypair |
431609 cycles |
431929 cycles |
1.00 |
ML-DSA-87 sign |
1212961 cycles |
1211899 cycles |
1.00 |
ML-DSA-87 verify |
447991 cycles |
447459 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-M55 (NUCLEO-N657X0-Q) benchmarks (opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
1690331 cycles |
2328440 cycles |
0.73 |
ML-DSA-44 sign |
13600033 cycles |
17851737 cycles |
0.76 |
ML-DSA-44 verify |
1806518 cycles |
2398876 cycles |
0.75 |
ML-DSA-65 keypair |
2895358 cycles |
4025122 cycles |
0.72 |
ML-DSA-65 sign |
11228232 cycles |
14793522 cycles |
0.76 |
ML-DSA-65 verify |
2973684 cycles |
4012792 cycles |
0.74 |
ML-DSA-87 keypair |
4888795 cycles |
6864887 cycles |
0.71 |
ML-DSA-87 sign |
18455928 cycles |
24785157 cycles |
0.74 |
ML-DSA-87 verify |
5009804 cycles |
6864412 cycles |
0.73 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-M55 (NUCLEO-N657X0-Q) benchmarks (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
2328440 cycles |
2328440 cycles |
1 |
ML-DSA-44 sign |
17851737 cycles |
17851737 cycles |
1 |
ML-DSA-44 verify |
2398876 cycles |
2398876 cycles |
1 |
ML-DSA-65 keypair |
4025122 cycles |
4025122 cycles |
1 |
ML-DSA-65 sign |
14793522 cycles |
14793522 cycles |
1 |
ML-DSA-65 verify |
4012792 cycles |
4012792 cycles |
1 |
ML-DSA-87 keypair |
6864887 cycles |
6864887 cycles |
1 |
ML-DSA-87 sign |
24785157 cycles |
24785157 cycles |
1 |
ML-DSA-87 verify |
6864412 cycles |
6864412 cycles |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-A55 (Snapdragon 888) benchmarks (opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
272258 cycles |
271067 cycles |
1.00 |
ML-DSA-44 sign |
811182 cycles |
812320 cycles |
1.00 |
ML-DSA-44 verify |
273722 cycles |
273045 cycles |
1.00 |
ML-DSA-65 keypair |
467921 cycles |
467726 cycles |
1.00 |
ML-DSA-65 sign |
1374610 cycles |
1341160 cycles |
1.02 |
ML-DSA-65 verify |
452328 cycles |
454368 cycles |
1.00 |
ML-DSA-87 keypair |
794593 cycles |
803830 cycles |
0.99 |
ML-DSA-87 sign |
1852551 cycles |
1831323 cycles |
1.01 |
ML-DSA-87 verify |
781142 cycles |
778295 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-A55 (Snapdragon 888) benchmarks (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
465428 cycles |
465494 cycles |
1.00 |
ML-DSA-44 sign |
2134682 cycles |
2144256 cycles |
1.00 |
ML-DSA-44 verify |
556859 cycles |
559936 cycles |
0.99 |
ML-DSA-65 keypair |
784546 cycles |
783372 cycles |
1.00 |
ML-DSA-65 sign |
3502813 cycles |
3496274 cycles |
1.00 |
ML-DSA-65 verify |
867806 cycles |
869188 cycles |
1.00 |
ML-DSA-87 keypair |
1265637 cycles |
1266792 cycles |
1.00 |
ML-DSA-87 sign |
4348278 cycles |
4317269 cycles |
1.01 |
ML-DSA-87 verify |
1387880 cycles |
1394437 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-A72 (Raspberry Pi 4) benchmarks (opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
218060 cycles |
216344 cycles |
1.01 |
ML-DSA-44 sign |
597336 cycles |
593807 cycles |
1.01 |
ML-DSA-44 verify |
217728 cycles |
216553 cycles |
1.01 |
ML-DSA-65 keypair |
380946 cycles |
378995 cycles |
1.01 |
ML-DSA-65 sign |
983605 cycles |
982529 cycles |
1.00 |
ML-DSA-65 verify |
363319 cycles |
363919 cycles |
1.00 |
ML-DSA-87 keypair |
636094 cycles |
636641 cycles |
1.00 |
ML-DSA-87 sign |
1312206 cycles |
1318452 cycles |
1.00 |
ML-DSA-87 verify |
617779 cycles |
619777 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Arm Cortex-A72 (Raspberry Pi 4) benchmarks (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
301299 cycles |
301210 cycles |
1.00 |
ML-DSA-44 sign |
1140771 cycles |
1141652 cycles |
1.00 |
ML-DSA-44 verify |
333412 cycles |
330898 cycles |
1.01 |
ML-DSA-65 keypair |
550692 cycles |
543839 cycles |
1.01 |
ML-DSA-65 sign |
1876845 cycles |
1856990 cycles |
1.01 |
ML-DSA-65 verify |
533547 cycles |
525059 cycles |
1.02 |
ML-DSA-87 keypair |
845041 cycles |
846962 cycles |
1.00 |
ML-DSA-87 sign |
2351108 cycles |
2362668 cycles |
1.00 |
ML-DSA-87 verify |
874370 cycles |
876584 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
SpacemiT K1 8 (Banana Pi F3) benchmarks (no-opt)
Details
| Benchmark suite | Current: 91039f7 | Previous: 27aebe7 | Ratio |
|---|---|---|---|
ML-DSA-44 keypair |
760366 cycles |
760367 cycles |
1.00 |
ML-DSA-44 sign |
3142358 cycles |
3140398 cycles |
1.00 |
ML-DSA-44 verify |
859639 cycles |
859497 cycles |
1.00 |
ML-DSA-65 keypair |
1287922 cycles |
1289584 cycles |
1.00 |
ML-DSA-65 sign |
5081104 cycles |
5091406 cycles |
1.00 |
ML-DSA-65 verify |
1367411 cycles |
1368454 cycles |
1.00 |
ML-DSA-87 keypair |
2109891 cycles |
2109786 cycles |
1.00 |
ML-DSA-87 sign |
6360762 cycles |
6373090 cycles |
1.00 |
ML-DSA-87 verify |
2224537 cycles |
2226888 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
Make the clean M7 Keccak source self-contained so SLOTHY retains its ABI metadata and integration guards during regeneration. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
|
Added metadata YAML to the input source file so that slothy will preserve it and autogen will pass. This is a comment-only change and benchmarks do not need to be re-run. |
Add the unmodified upstream Adomnicai Armv7-M Keccak source under armv81m_clean and the Slothy-generated M7 optimized x1 permutation under armv81m_opt, with a Makefile regeneration path.
Move the Armv8.1-M FIPS202 development sources to armv81m_opt and synchronize the production backend. Route x1 state XOR/extract through the clean-source assembly helpers so the optimized permutation can keep the state in the bit-interleaved native representation.
Keep the test changes focused on representation-aware Keccak x1/x4 unit coverage, including extracted-byte state dumps on x1 failures, and the static ML-DSA-87 unit-test workspace needed for Zephyr stack pressure.
Fixes #1322