RFR: 8360934: Add AVX-512 intrinsics for ML-KEM - enhancement on AVX512_VBMI [v4]
Shawn M Emery
duke at openjdk.org
Wed Jan 14 08:00:39 UTC 2026
On Mon, 12 Jan 2026 07:23:39 GMT, Shawn M Emery <duke at openjdk.org> wrote:
>>> > Better to align loop sarting address to OptoLoopAlignment
>>>
>>> For parity, should I do this for the other labels in the file as well?
>>>
>>> > I will run the micro benchmark on AMD Turin and report back by early next week.
>>>
>>> That would be great, thank you for doing this!
>>
>> Here are the score on Turin.
>>
>>
>> Baseline:
>> Benchmark (algorithm) (keyLength) (provider) Mode Cnt Score Error Units
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-512 0 thrpt 2 62235.790 ops/s
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-768 0 thrpt 2 38238.390 ops/s
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-1024 0 thrpt 2 24725.512 ops/s
>>
>> Withopt:
>> Benchmark (algorithm) (keyLength) (provider) Mode Cnt Score Error Units
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-512 0 thrpt 2 62483.697 ops/s
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-768 0 thrpt 2 38464.272 ops/s
>> KeyPairGeneratorBench.MLKEM.generateKeyPair ML-KEM-1024 0 thrpt 2 24702.044 ops/s
>>
>>
>>
>> Baseline:
>> Benchmark (algorithm) (provider) Mode Cnt Score Error Units
>> KEMBench.decapsulate ML-KEM-512 thrpt 2 46416.479 ops/s
>> KEMBench.decapsulate ML-KEM-768 thrpt 2 28516.289 ops/s
>> KEMBench.decapsulate ML-KEM-1024 thrpt 2 19250.020 ops/s
>> KEMBench.encapsulate ML-KEM-512 thrpt 2 60374.724 ops/s
>> KEMBench.encapsulate ML-KEM-768 thrpt 2 36226.100 ops/s
>> KEMBench.encapsulate ML-KEM-1024 thrpt 2 23656.223 ops/s
>>
>> Withopt:
>> Benchmark (algorithm) (provider) Mode Cnt Score Error Units
>> KEMBench.decapsulate ML-KEM-512 thrpt 2 46730.153 ops/s
>> KEMBench.decapsulate ML-KEM-768 thrpt 2 28650.349 ops/s
>> KEMBench.decapsulate ML-KEM-1024 thrpt 2 19390.927 ops/s
>> KEMBench.encapsulate ML-KEM-512 thrpt 2 60238.211 ops/s
>> KEMBench.encapsulate ML-KEM-768 thrpt 2 36454.138 ops/s
>> KEMBench.encapsulat...
>
> Thank you for sharing these results. It is disconcerting to see the drop in performance for i) key gen-1024, ii) encapsulation-512, and iii) enacapsulation-1024, though I don't know the SE for these runs. During my testing on a AMD EPYC 9J14 96-Core Processor I consistently get noticeable performance increases for all ML-KEM operations:
>
> [Publish ML_KEM Benchmarks - Sheet1.pdf](https://github.com/user-attachments/files/24559070/Publish.ML_KEM.Benchmarks.-.Sheet1.pdf)
Here are results comparing pre and post OptoLoopAlignment:
[Alignment ML_KEM Benchmarks - Sheet1.pdf](https://github.com/user-attachments/files/24607923/Alignment.ML_KEM.Benchmarks.-.Sheet1.pdf)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28815#discussion_r2689366713
More information about the hotspot-compiler-dev
mailing list