RFR: 8337632: AES-GCM Algorithm optimization for x86_64

Smita Kamath svkamath at openjdk.org
Thu Aug 1 05:54:48 UTC 2024


Hi, 
I want to submit an AES-GCM algorithm optimization. This implementation is using AVX512/VAES Instructions. Additionally, it reduces PARALLEL_LEN from 7680 to 512 bytes. The performance numbers are as below. Kindly review the code. Thank you.

Benchmark | Datasize | BaseJDK (ops/s) | Patch(ops/s) | %Gain
-- | -- | -- | -- | --
full.AESGCMBench.decrypt | 512 | 2928259.197 | 3269964.387 | 11.67
full.AESGCMBench.decrypt | 1024 | 2494254.611 | 3010987.731 | 20.72
full.AESGCMBench.decrypt | 1500 | 1883453.546 | 1934915.846 | 2.73
full.AESGCMBench.decrypt | 2048 | 1825780.711 | 2452861.368 | 34.34
full.AESGCMBench.decrypt | 4096 | 1275108.345 | 1806329.066 | 41.66
full.AESGCMBench.decrypt | 8192 | 1033936.634 | 1196836.052 | 15.75
full.AESGCMBench.decrypt | 16384 | 681494.768 | 711630.498 | 4.42
full.AESGCMBench.decrypt | 32768 | 385026.017 | 395043.193 | 2.6
full.AESGCMBench.decrypt | 65536 | 207373.924 | 214723.588 | 3.54
  |   |   |   |  
full.AESGCMBench.encrypt | 512 | 2658008.476 | 2882496.94 | 8.45
full.AESGCMBench.encrypt | 1024 | 2283709.63 | 2589534.403 | 13.39
full.AESGCMBench.encrypt | 1500 | 1794993.519 | 1817669.531 | 1.26
full.AESGCMBench.encrypt | 2048 | 1745532.435 | 2191097.29 | 25.52
full.AESGCMBench.encrypt | 4096 | 1203301.174 | 1649593.953 | 37.08
full.AESGCMBench.encrypt | 8192 | 985174.988 | 1132407.54 | 14.94
full.AESGCMBench.encrypt | 16384 | 658980.441 | 684765.771 | 3.91
full.AESGCMBench.encrypt | 32768 | 373543.798 | 391518.837 | 4.81
full.AESGCMBench.encrypt | 65536 | 202532.315 | 205084.833 | 1.260301597

-------------

Commit messages:
 - Merge branch 'master' of https://git.openjdk.org/jdk into avx512-small-sizes
 - Removed trailing space
 - clean up code
 - Zero out registers and fix issue
 - Update formatting
 - Merge master
 - Code cleanup
 - Removed shuffle
 - Updated htbl gen code and other parts
 - updated htbl code
 - ... and 1 more: https://git.openjdk.org/jdk/compare/65646b5f...24c9c792

Changes: https://git.openjdk.org/jdk/pull/17515/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17515&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8337632
  Stats: 966 lines in 6 files changed: 493 ins; 217 del; 256 mod
  Patch: https://git.openjdk.org/jdk/pull/17515.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17515/head:pull/17515

PR: https://git.openjdk.org/jdk/pull/17515


More information about the hotspot-compiler-dev mailing list