RFR: 8318227: RISC-V: C2 ConvHF2F [v4]

Hamlin Li mli at openjdk.org
Mon Jan 15 18:14:45 UTC 2024


> Hi,
> Can you review the patch to add ConvHF2F intrinsic to JDK for riscv?
> Thanks!
> 
> (By latest kernel patch, `#define		RISCV_HWPROBE_EXT_ZFH		(1 << 27)`
> https://lore.kernel.org/lkml/20231114141256.126749-11-cleger@rivosinc.com/)
> 
> ## Test
> ### Functionality
> #### hotspot tests
> test/hotspot/jtreg/compiler/intrinsics/ 
> test/hotspot/jtreg/compiler/c2/irTests
> 
> #### jdk tests
> test/jdk/java/lang/Float/Binary16Conversion*.java
> 
> ### Performance
> tested on licheepi.
> 
> #### with UseZfh enabled & stub out-of-band
> 
> Benchmark                                     (size)  Mode  Cnt      Score     Error  Units
> Fp16ConversionBenchmark.float16ToFloat          2048  avgt   10   3493.376 ?  18.631  ns/op
> Fp16ConversionBenchmark.float16ToFloatMemory    2048  avgt   10     19.819 ?   0.193  ns/op
> 
> 
> #### with UseZfh enabled only
> (i.e. enable the intrinsic)
> 
> Benchmark                                     (size)  Mode  Cnt      Score     Error  Units
> Fp16ConversionBenchmark.float16ToFloat          2048  avgt   10   4659.796 ?  13.262  ns/op
> Fp16ConversionBenchmark.float16ToFloatMemory    2048  avgt   10     22.957 ?   0.098  ns/op
> 
> 
> #### with UseZfh disabled
> (i.e. disable the intrinsic)
> 
> Benchmark                                     (size)  Mode  Cnt      Score    Error  Units
> Fp16ConversionBenchmark.float16ToFloat          2048  avgt   10  22930.591 ? 72.595  ns/op
> Fp16ConversionBenchmark.float16ToFloatMemory    2048  avgt   10     25.970 ?  0.063  ns/op

Hamlin Li has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:

 - merge with master
 - Fix pipeline cost in ad; Add comments
 - optimize perf with stub out-of-line
 - update RISCV_HWPROBE_EXT_ZFH value
 - Initial commit

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

Changes: https://git.openjdk.org/jdk/pull/16802/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16802&range=03
  Stats: 88 lines in 13 files changed: 88 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/16802.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16802/head:pull/16802

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


More information about the hotspot-dev mailing list