This repository has been archived on 2026-08-21. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ciciec2026/doc/mlkem_test_results.md
2026-07-08 03:18:19 +08:00

1.6 KiB

ML-KEM Test Results Summary

Test Setup

  • Platform: LoongArch bare-metal target
  • Test mode: STATIC_KAT_COUNT_0
  • Levels: k=2,3,4
  • Repeat count: 100
  • ML-KEM software allocator: MLK_CONFIG_CUSTOM_ALLOC_FREE
  • Verification sources: KAT count 0 expected values

Correctness

All three paths passed in isolated testing:

  • SW_ONLY_FAILS=0
  • CPU_ONLY_FAILS=0
  • DMA_ONLY_FAILS=0

Final result for the isolated diagnostic run:

  • MLKEM512_RESULT=PASS
  • MLKEM768_RESULT=PASS
  • MLKEM1024_RESULT=PASS
  • MLKEM_RESULT=PASS

Performance

The following results are from isolated per-level runs. Each level was tested for 100 iterations with software-only, CPU register path, and DMA path separated.

Level SW avg cycles CPU avg cycles DMA avg cycles CPU vs SW DMA vs SW DMA vs CPU
k=2 / ML-KEM-512 2,587,784 352,684 185,671 7.34x 13.94x 1.90x
k=3 / ML-KEM-768 4,056,378 523,656 279,588 7.75x 14.51x 1.87x
k=4 / ML-KEM-1024 6,025,486 718,672 388,959 8.38x 15.49x 1.85x

Notes

  • CPU/DMA hardware paths were stable across 100 iterations for all levels.
  • Software, CPU register path, and DMA path all passed 100 iterations for k=2, k=3, and k=4.
  • The DMA path is 13.94x to 15.49x faster than software across the tested levels.
  • The CPU register path is 7.34x to 8.38x faster than software across the tested levels.
  • The DMA path is about 1.85x to 1.90x faster than the CPU register path.
  • The hardware advantage increases slightly as k grows, because the accelerated computation grows faster than the fixed software control overhead.