RFR: 8294588: Auto vectorize half precision floating point conversion APIs

Smita Kamath svkamath at openjdk.org
Fri Dec 2 06:47:53 UTC 2022


Hi All, 

I have added changes for autovectorizing Float.float16ToFloat and Float.floatToFloat16 API's.
Following are the performance numbers of JMH micro Fp16ConversionBenchmark:
Before code changes:
Benchmark | (size) | Mode | Cnt | Score | Error | Units
Fp16ConversionBenchmark.float16ToFloat | 2048 | thrpt | 3 | 1044.653 | ±     0.041 | ops/ms
Fp16ConversionBenchmark.float16ToFloatMemory | 2048 | thrpt | 3 | 2341529.9 | ± 11765.453 | ops/ms
Fp16ConversionBenchmark.floatToFloat16 | 2048 | thrpt | 3 | 2156.662 | ±     0.653 | ops/ms
Fp16ConversionBenchmark.floatToFloat16Memory | 2048 | thrpt | 3 | 2007988.1 | ±   361.696 | ops/ms

After:
Benchmark | (size) | Mode |  Cnt | Score | Error |   Units
Fp16ConversionBenchmark.float16ToFloat  | 2048 | thrpt | 3 |  20460.349 |±  372.327 |  ops/ms
Fp16ConversionBenchmark.float16ToFloatMemory | 2048 |  thrpt | 3 | 2342125.200 |± 9250.899  |ops/ms
Fp16ConversionBenchmark.floatToFloat16  |  2048 | thrpt  |  3 |   22553.977 |±  483.034 | ops/ms
Fp16ConversionBenchmark.floatToFloat16Memory | 2048 | thrpt |  3 |  2007899.797 |±  150.296 | ops/ms

Kindly review and share your feedback.

Thanks.
Smita

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

Commit messages:
 - Auto vectorize half precision floating point conversion APIs

Changes: https://git.openjdk.org/jdk/pull/11471/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11471&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8294588
  Stats: 153 lines in 7 files changed: 151 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/11471.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11471/head:pull/11471

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


More information about the hotspot-compiler-dev mailing list