Integrated: 8371259: ML-DSA AVX2 and AVX512 intrinsics and improvements
Volodymyr Paprotski
vpaprotski at openjdk.org
Tue Nov 25 22:45:57 UTC 2025
On Tue, 4 Nov 2025 16:38:49 GMT, Volodymyr Paprotski <vpaprotski at openjdk.org> wrote:
> - New AVX2 intrinsics are 1.6x-6.9x faster than Java baseline
> - `SignatureBench.MLDSA` is 1.2x-2.2x faster
> - Note: there is no AVX2-SHA3 intrinsics yet (Being reviewed https://github.com/vpaprotsk/jdk/pull/7)
> - AVX512 intrinsic improvements are 1.24x-1.5x faster then current version
> - `SignatureBench.MLDSA` is upto 5% faster, never slower
>
> Note on intrinsic:
> - The emitted (existing) AVX512 assembler was not "significantly" changed; mostly more efficient instruction selection and tighter register allocation, which allowed removal of NTT loop and stack spill.
> - Code was refactored to allow reuse of same assembler (as possible) for AVX512 and AVX2
>
> Tests and benchmarks:
> - Added a fuzz test to ensure Java and intrinsic produces exactly same result
> - Added benchmark to measure the performance of intrinsic itself
>
> make test TEST="test/jdk/sun/security/provider/acvp/Launcher.java test/jdk/sun/security/provider/acvp/ML_DSA_Intrinsic_Test.java"
> make test TEST="test/jdk/sun/security/provider/acvp/Launcher.java test/jdk/sun/security/provider/acvp/ML_DSA_Intrinsic_Test.java" JTREG="JAVA_OPTIONS=-XX:UseAVX=2"
> make test TEST="micro:org.openjdk.bench.javax.crypto.full.SignatureBench.MLDSA" MICRO="JAVA_OPTIONS=-XX:+UnlockDiagnosticVMOptions -XX:+UseDilithiumIntrinsics;FORK=1"
> make test TEST="micro:org.openjdk.bench.javax.crypto.full.SignatureBench.MLDSA" MICRO="JAVA_OPTIONS=-XX:+UnlockDiagnosticVMOptions -XX:-UseDilithiumIntrinsics;FORK=1"
This pull request has now been integrated.
Changeset: b36b6947
Author: Volodymyr Paprotski <vpaprotski at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/b36b69470968b1578877cfe9658892a5fe44e38e
Stats: 1827 lines in 6 files changed: 1124 ins; 255 del; 448 mod
8371259: ML-DSA AVX2 and AVX512 intrinsics and improvements
Reviewed-by: sviswanathan, mpowers, ascarpino
-------------
PR: https://git.openjdk.org/jdk/pull/28136
More information about the hotspot-dev
mailing list