Update benchmark results

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
This commit is contained in:
Anjan Roy
2025-03-06 18:40:43 +04:00
parent 98432f85d2
commit 71e059d5da
4 changed files with 1407 additions and 2373 deletions

View File

@@ -20,11 +20,11 @@ Decapsulation | Secret Key and Cipher Text | 32B Shared Secret
Here I'm maintaining `ml-kem` - a C++20 header-only fully `constexpr` library, implementing ML-KEM, supporting ML-KEM-{512, 768, 1024} parameter sets, as defined in table 2 of ML-KEM standard. It's pretty easy to use, see [usage](#usage). It shows following performance characteristics on desktop and server grade CPUs.
ML-KEM-768 Algorithm | Time taken on "12th Gen Intel(R) Core(TM) i7-1260P" | Time taken on "Raspberry Pi 4B" | Time taken on "AWS EC2 Instance c8g.large"
--- | --: | --: | --:
keygen | 23.9us | 114.3us | 35.5us
encaps | 27.7us | 133.8us | 40.4us
decaps | 30.1us | 157.6us | 45us
ML-KEM-768 Algorithm | Time taken on "12th Gen Intel(R) Core(TM) i7-1260P" | Time taken on "AWS EC2 Instance c8g.large"
--- | --: | --:
keygen | 22.3us | 31.5us
encaps | 25.6us | 35.9us
decaps | 30.1us | 43.7us
> [!NOTE]
> Find ML-KEM standard @ https://doi.org/10.6028/NIST.FIPS.203 - this is the document that I followed when implementing ML-KEM. I suggest you go through the specification to get an in-depth understanding of the scheme.
@@ -103,22 +103,10 @@ make perf -j # If you have built google-benchmark library with libPFM supp
> When benchmarking, ensure that you've disabled CPU frequency scaling, by following guide @ https://github.com/google/benchmark/blob/main/docs/reducing_variance.md.
### On 12th Gen Intel(R) Core(TM) i7-1260P
Compiled with **g++ (Ubuntu 14.2.0-4ubuntu2) 14.2.0**, while running kernel `Linux 6.8.0-41-generic x86_64`.
Benchmark results are in JSON format @ [bench_result_on_Linux_6.11.0-9-generic_x86_64_with_g++_14](./bench_result_on_Linux_6.11.0-9-generic_x86_64_with_g++_14.json).
### On ARM Cortex-A72 i.e. Raspberry Pi 4B
Compiled with **g++ (Debian 12.2.0-14) 12.2.0**, while running kernel `Linux 6.6.51+rpt-rpi-v8 aarch64`.
Benchmark results are in JSON format @ [bench_result_on_Linux_6.6.51+rpt-rpi-v8_aarch64_with_g++_12](./bench_result_on_Linux_6.6.51+rpt-rpi-v8_aarch64_with_g++_12.json).
Benchmark results are in JSON format @ [bench_result_on_Linux_6.11.0-19-generic_x86_64_with_g++_14](./bench_result_on_Linux_6.11.0-19-generic_x86_64_with_g++_14.json).
### On AWS EC2 Instance `c8g.large` i.e. AWS Graviton4
Compiled with **g++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0**, while running kernel `Linux 6.8.0-1016-aws aarch64`. More about this EC2 instance @ https://aws.amazon.com/ec2/instance-types/c8g.
Benchmark results are in JSON format @ [bench_result_on_Linux_6.8.0-1016-aws_aarch64_with_g++_13](./bench_result_on_Linux_6.8.0-1016-aws_aarch64_with_g++_13.json).
Benchmark results are in JSON format @ [bench_result_on_Linux_6.8.0-1021-aws_aarch64_with_g++_13](./bench_result_on_Linux_6.8.0-1021-aws_aarch64_with_g++_13.json).
## Usage

View File

@@ -1,954 +0,0 @@
{
"context": {
"date": "2024-11-21T19:25:45+04:00",
"host_name": "rpi",
"executable": "./build/benchmark/perf.out",
"num_cpus": 4,
"mhz_per_cpu": 1800,
"cpu_scaling_enabled": false,
"caches": [
{
"type": "Data",
"level": 1,
"size": 32768,
"num_sharing": 1
},
{
"type": "Instruction",
"level": 1,
"size": 49152,
"num_sharing": 1
},
{
"type": "Unified",
"level": 2,
"size": 1048576,
"num_sharing": 4
}
],
"load_avg": [1.54688,1.86426,1.10059],
"library_version": "v1.9.0-20-g50ffd3e5",
"library_build_type": "release",
"json_schema_version": 1
},
"benchmarks": [
{
"name": "ml_kem_768/encap_mean",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.3404641412102154e+02,
"cpu_time": 1.3403692833813599e+02,
"time_unit": "us",
"CYCLES": 2.4098624217098943e+05,
"items_per_second": 7.4607340452455219e+03
},
{
"name": "ml_kem_768/encap_median",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.3382327329492463e+02,
"cpu_time": 1.3382489241114283e+02,
"time_unit": "us",
"CYCLES": 2.4062865850144092e+05,
"items_per_second": 7.4724516637176766e+03
},
{
"name": "ml_kem_768/encap_stddev",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 5.2288878260861837e-01,
"cpu_time": 5.2665154518222057e-01,
"time_unit": "us",
"CYCLES": 9.5527555842670529e+02,
"items_per_second": 2.9272150510010668e+01
},
{
"name": "ml_kem_768/encap_cv",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 3.9008039568782277e-03,
"cpu_time": 3.9291525978097062e-03,
"time_unit": "us",
"CYCLES": 3.9640252896632122e-03,
"items_per_second": 3.9234947034018502e-03
},
{
"name": "ml_kem_768/encap_min",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.3343640249756700e+02,
"cpu_time": 1.3344348318924094e+02,
"time_unit": "us",
"CYCLES": 2.3993788472622479e+05,
"items_per_second": 7.4207168050308874e+03
},
{
"name": "ml_kem_768/encap_max",
"family_index": 7,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.3475015081645967e+02,
"cpu_time": 1.3475787127761680e+02,
"time_unit": "us",
"CYCLES": 2.4229169548511048e+05,
"items_per_second": 7.4938091849855618e+03
},
{
"name": "ml_kem_512/encap_mean",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 8.0896293125362689e+01,
"cpu_time": 8.0892826285383919e+01,
"time_unit": "us",
"CYCLES": 1.4543395753899481e+05,
"items_per_second": 1.2362292357161577e+04
},
{
"name": "ml_kem_512/encap_median",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 8.0874494511860533e+01,
"cpu_time": 8.0879217504332757e+01,
"time_unit": "us",
"CYCLES": 1.4541796995956096e+05,
"items_per_second": 1.2364116069563095e+04
},
{
"name": "ml_kem_512/encap_stddev",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 3.8834014465226396e-01,
"cpu_time": 3.8956943944875400e-01,
"time_unit": "us",
"CYCLES": 7.0538445404976494e+02,
"items_per_second": 5.9235135122240138e+01
},
{
"name": "ml_kem_512/encap_cv",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 4.8004689664885424e-03,
"cpu_time": 4.8158712872063804e-03,
"time_unit": "us",
"CYCLES": 4.8502046288648381e-03,
"items_per_second": 4.7915979828712539e-03
},
{
"name": "ml_kem_512/encap_min",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 8.0327904101678286e+01,
"cpu_time": 8.0332220103985989e+01,
"time_unit": "us",
"CYCLES": 1.4444163662622761e+05,
"items_per_second": 1.2224330144313417e+04
},
{
"name": "ml_kem_512/encap_max",
"family_index": 4,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 8.1799739456960864e+01,
"cpu_time": 8.1804073367994377e+01,
"time_unit": "us",
"CYCLES": 1.4708832466782207e+05,
"items_per_second": 1.2448305284051039e+04
},
{
"name": "ml_kem_1024/keygen_mean",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.8175297196871824e+02,
"cpu_time": 1.8173309361147403e+02,
"time_unit": "us",
"CYCLES": 3.2674690312907437e+05,
"items_per_second": 5.5026451758537351e+03
},
{
"name": "ml_kem_1024/keygen_median",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.8166920730121859e+02,
"cpu_time": 1.8165013820078289e+02,
"time_unit": "us",
"CYCLES": 3.2658016101694916e+05,
"items_per_second": 5.5050880675551007e+03
},
{
"name": "ml_kem_1024/keygen_stddev",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 7.0887129976999019e-01,
"cpu_time": 6.8428935661652235e-01,
"time_unit": "us",
"CYCLES": 1.2102863466062320e+03,
"items_per_second": 2.0671859679678491e+01
},
{
"name": "ml_kem_1024/keygen_cv",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 3.9001909684975877e-03,
"cpu_time": 3.7653535909065632e-03,
"time_unit": "us",
"CYCLES": 3.7040484087714040e-03,
"items_per_second": 3.7567131841226256e-03
},
{
"name": "ml_kem_1024/keygen_min",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.8070142633631232e+02,
"cpu_time": 1.8071179139504801e+02,
"time_unit": "us",
"CYCLES": 3.2495039374185138e+05,
"items_per_second": 5.4608432300911718e+03
},
{
"name": "ml_kem_1024/keygen_max",
"family_index": 0,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.8322365580189367e+02,
"cpu_time": 1.8312190221642828e+02,
"time_unit": "us",
"CYCLES": 3.2917317601043027e+05,
"items_per_second": 5.5336732167849159e+03
},
{
"name": "ml_kem_1024/encap_mean",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.0687474874814711e+02,
"cpu_time": 2.0687071885125198e+02,
"time_unit": "us",
"CYCLES": 3.7194387982326956e+05,
"items_per_second": 4.8339474648620117e+03
},
{
"name": "ml_kem_1024/encap_median",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.0685270250371792e+02,
"cpu_time": 2.0686522974963174e+02,
"time_unit": "us",
"CYCLES": 3.7192876951399120e+05,
"items_per_second": 4.8340652325349092e+03
},
{
"name": "ml_kem_1024/encap_stddev",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 3.2902330418860959e-01,
"cpu_time": 3.2246164627799734e-01,
"time_unit": "us",
"CYCLES": 5.6889591405049134e+02,
"items_per_second": 7.5356027327796227e+00
},
{
"name": "ml_kem_1024/encap_cv",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 1.5904469065442504e-03,
"cpu_time": 1.5587592486197125e-03,
"time_unit": "us",
"CYCLES": 1.5295208361024901e-03,
"items_per_second": 1.5588921450958987e-03
},
{
"name": "ml_kem_1024/encap_min",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.0630859204702148e+02,
"cpu_time": 2.0631925920471176e+02,
"time_unit": "us",
"CYCLES": 3.7098637555228279e+05,
"items_per_second": 4.8226854806611655e+03
},
{
"name": "ml_kem_1024/encap_max",
"family_index": 1,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/encap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.0742703387338526e+02,
"cpu_time": 2.0735335198821736e+02,
"time_unit": "us",
"CYCLES": 3.7278725184094254e+05,
"items_per_second": 4.8468572631302022e+03
},
{
"name": "ml_kem_768/decap_mean",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.5776309437570859e+02,
"cpu_time": 1.5776089010123695e+02,
"time_unit": "us",
"CYCLES": 2.8363557075365580e+05,
"items_per_second": 6.3387685462386671e+03
},
{
"name": "ml_kem_768/decap_median",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.5761746231724106e+02,
"cpu_time": 1.5760998650168693e+02,
"time_unit": "us",
"CYCLES": 2.8330635433070868e+05,
"items_per_second": 6.3447786980162718e+03
},
{
"name": "ml_kem_768/decap_stddev",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 5.2176485524750216e-01,
"cpu_time": 5.2122026082970596e-01,
"time_unit": "us",
"CYCLES": 9.4506083424805570e+02,
"items_per_second": 2.0823039836254363e+01
},
{
"name": "ml_kem_768/decap_cv",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 3.3072681371533776e-03,
"cpu_time": 3.3038623228813747e-03,
"time_unit": "us",
"CYCLES": 3.3319545631632476e-03,
"items_per_second": 3.2850292110145670e-03
},
{
"name": "ml_kem_768/decap_min",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.5736764791902002e+02,
"cpu_time": 1.5737591113610623e+02,
"time_unit": "us",
"CYCLES": 2.8296523397075367e+05,
"items_per_second": 6.2855638119630275e+03
},
{
"name": "ml_kem_768/decap_max",
"family_index": 8,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.5908670416194462e+02,
"cpu_time": 1.5909471766029091e+02,
"time_unit": "us",
"CYCLES": 2.8606102924634423e+05,
"items_per_second": 6.3542126160283333e+03
},
{
"name": "ml_kem_512/decap_mean",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 9.8733070467416212e+01,
"cpu_time": 9.8729313172804169e+01,
"time_unit": "us",
"CYCLES": 1.7750099652974505e+05,
"items_per_second": 1.0128771771885522e+04
},
{
"name": "ml_kem_512/decap_median",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 9.8684486189801163e+01,
"cpu_time": 9.8677866501416077e+01,
"time_unit": "us",
"CYCLES": 1.7740470148725214e+05,
"items_per_second": 1.0133995595985463e+04
},
{
"name": "ml_kem_512/decap_stddev",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.6782010695050318e-01,
"cpu_time": 2.6915369267886885e-01,
"time_unit": "us",
"CYCLES": 4.8629674066785117e+02,
"items_per_second": 2.7577547229884587e+01
},
{
"name": "ml_kem_512/decap_cv",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 2.7125673868198890e-03,
"cpu_time": 2.7261781129559151e-03,
"time_unit": "us",
"CYCLES": 2.7396845661447266e-03,
"items_per_second": 2.7226941085227835e-03
},
{
"name": "ml_kem_512/decap_min",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 9.8398354107663735e+01,
"cpu_time": 9.8403276203965575e+01,
"time_unit": "us",
"CYCLES": 1.7691263456090650e+05,
"items_per_second": 1.0085470217335074e+04
},
{
"name": "ml_kem_512/decap_max",
"family_index": 5,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 9.9146844192633878e+01,
"cpu_time": 9.9152541076486798e+01,
"time_unit": "us",
"CYCLES": 1.7827090651558075e+05,
"items_per_second": 1.0162263275942645e+04
},
{
"name": "ml_kem_1024/decap_mean",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.3600962347975263e+02,
"cpu_time": 2.3600485084459348e+02,
"time_unit": "us",
"CYCLES": 4.2432703800675675e+05,
"items_per_second": 4.2372149223854176e+03
},
{
"name": "ml_kem_1024/decap_median",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.3610238344596650e+02,
"cpu_time": 2.3611539611486387e+02,
"time_unit": "us",
"CYCLES": 4.2451465962837834e+05,
"items_per_second": 4.2352172908413213e+03
},
{
"name": "ml_kem_1024/decap_stddev",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 4.4285261759833511e-01,
"cpu_time": 4.5016128152870249e-01,
"time_unit": "us",
"CYCLES": 8.1246182438876599e+02,
"items_per_second": 8.0854064963282664e+00
},
{
"name": "ml_kem_1024/decap_cv",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 1.8764176268275246e-03,
"cpu_time": 1.9074238513221435e-03,
"time_unit": "us",
"CYCLES": 1.9147067040677921e-03,
"items_per_second": 1.9081889034263193e-03
},
{
"name": "ml_kem_1024/decap_min",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.3525970101368824e+02,
"cpu_time": 2.3521577702702416e+02,
"time_unit": "us",
"CYCLES": 4.2288322972972970e+05,
"items_per_second": 4.2229988799066541e+03
},
{
"name": "ml_kem_1024/decap_max",
"family_index": 2,
"per_family_instance_index": 0,
"run_name": "ml_kem_1024/decap",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 2.3678645101353067e+02,
"cpu_time": 2.3679854729729513e+02,
"time_unit": "us",
"CYCLES": 4.2577192736486485e+05,
"items_per_second": 4.2514154987363336e+03
},
{
"name": "ml_kem_768/keygen_mean",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.1448031302211962e+02,
"cpu_time": 1.1447081883701864e+02,
"time_unit": "us",
"CYCLES": 2.0582629795249796e+05,
"items_per_second": 8.7359725700562067e+03
},
{
"name": "ml_kem_768/keygen_median",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.1437795782143795e+02,
"cpu_time": 1.1434726330876353e+02,
"time_unit": "us",
"CYCLES": 2.0558797133497131e+05,
"items_per_second": 8.7452929481220781e+03
},
{
"name": "ml_kem_768/keygen_stddev",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 4.4643159065666449e-01,
"cpu_time": 4.5099360704221664e-01,
"time_unit": "us",
"CYCLES": 8.1647008728204253e+02,
"items_per_second": 3.4328094454165168e+01
},
{
"name": "ml_kem_768/keygen_cv",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 3.8996363555575367e-03,
"cpu_time": 3.9398128852763132e-03,
"time_unit": "us",
"CYCLES": 3.9667918793859528e-03,
"items_per_second": 3.9295103297175647e-03
},
{
"name": "ml_kem_768/keygen_min",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.1381537674040567e+02,
"cpu_time": 1.1382141195741215e+02,
"time_unit": "us",
"CYCLES": 2.0467830794430795e+05,
"items_per_second": 8.6650564375493268e+03
},
{
"name": "ml_kem_768/keygen_max",
"family_index": 6,
"per_family_instance_index": 0,
"run_name": "ml_kem_768/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.1540001392301727e+02,
"cpu_time": 1.1540605733005734e+02,
"time_unit": "us",
"CYCLES": 2.0753400982800982e+05,
"items_per_second": 8.7856931556442451e+03
},
{
"name": "ml_kem_512/keygen_mean",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "mean",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 6.6042045164313066e+01,
"cpu_time": 6.6037697417840135e+01,
"time_unit": "us",
"CYCLES": 1.1873790173708921e+05,
"items_per_second": 1.5142934042816903e+04
},
{
"name": "ml_kem_512/keygen_median",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "median",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 6.6011878638492206e+01,
"cpu_time": 6.6015505399060658e+01,
"time_unit": "us",
"CYCLES": 1.1870704389671361e+05,
"items_per_second": 1.5147957388701067e+04
},
{
"name": "ml_kem_512/keygen_stddev",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "stddev",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 1.4560136541833285e-01,
"cpu_time": 1.4749280124967476e-01,
"time_unit": "us",
"CYCLES": 2.6131952645446108e+02,
"items_per_second": 3.3872475924688700e+01
},
{
"name": "ml_kem_512/keygen_cv",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "cv",
"aggregate_unit": "percentage",
"iterations": 10,
"real_time": 2.2046768093882565e-03,
"cpu_time": 2.2334637187066647e-03,
"time_unit": "us",
"CYCLES": 2.2008097046642924e-03,
"items_per_second": 2.2368502582731787e-03
},
{
"name": "ml_kem_512/keygen_min",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "min",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 6.5751961032851653e+01,
"cpu_time": 6.5728576995304650e+01,
"time_unit": "us",
"CYCLES": 1.1818556948356808e+05,
"items_per_second": 1.5106664755519812e+04
},
{
"name": "ml_kem_512/keygen_max",
"family_index": 3,
"per_family_instance_index": 0,
"run_name": "ml_kem_512/keygen",
"run_type": "aggregate",
"repetitions": 10,
"threads": 1,
"aggregate_name": "max",
"aggregate_unit": "time",
"iterations": 10,
"real_time": 6.6197599530471663e+01,
"cpu_time": 6.6195948356807932e+01,
"time_unit": "us",
"CYCLES": 1.1902978638497653e+05,
"items_per_second": 1.5214082606283040e+04
}
]
}