-
Notifications
You must be signed in to change notification settings - Fork 24
Description
We strive for competitive performance. For x86_64 a baseline is the Dilithium team's AVX2 implementation available at https://github.com/pq-crystals/dilithium/tree/master/avx2
We should match that performance.
Here are some benchmarks of that implementation:
CPU: Intel Sapphire Rapids Xeon Platinum 8488C (AWS EC2, c7i.metal-24xl)
SMT: Disabled (echo off | sudo tee /sys/devices/system/cpu/smt/control )
TurboBoost: Disabled (echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo)
Compiler: gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Compilation flags: -march=native -mtune=native -O3
Benchmarking code: https://github.com/pq-crystals/dilithium/blob/master/ref/test/test_speed.c
Iterations: 10000 (#define NTESTS 10000)
Below are the keygen/sign/verify benchmarks. For the full benchmarks see the attached files
Dilithium2
Keypair:
median: 73596 cycles/ticks
average: 74205 cycles/ticks
Sign:
median: 172068 cycles/ticks
average: 214186 cycles/ticks
Verify:
median: 75666 cycles/ticks
average: 78043 cycles/ticks
Dilithium3
Keypair:
median: 127448 cycles/ticks
average: 129274 cycles/ticks
Sign:
median: 289940 cycles/ticks
average: 348492 cycles/ticks
Verify:
median: 125406 cycles/ticks
average: 125750 cycles/ticks
Dilithium5
Keypair:
median: 200636 cycles/ticks
average: 204270 cycles/ticks
Sign:
median: 366312 cycles/ticks
average: 426632 cycles/ticks
Verify:
median: 198418 cycles/ticks
average: 200015 cycles/ticks