JDK-8337119 : compiler/vectorization/TestFloat16VectorConvChain.java bad performance on ppc64 and s390x
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 24
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: generic
  • CPU: ppc,s390x
  • Submitted: 2024-07-24
  • Updated: 2024-11-28
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Description
The test compiler/vectorization/TestFloat16VectorConvChain.java  shows very bad performance on ppc64 (and also on s390x).
Seems there is some implementation missing to make it more performant.
Comments
Solution for Power9 and newer is available: https://github.com/openjdk/jdk/pull/22433
28-11-2024

Seems like Power9 has some conversion instructions. I'll try if they can be used and create a new issue if needed.
27-11-2024

aah, no. unfortunately I couldn't find it in the ISA book. Too bad.
25-11-2024

[~amitkumar] Implementing _floatToFloat16 and _float16ToFloat intrinsics may help. Did you check if s390 has instructions for that? Power10 has instructions for 16-bit Floating-Point operations, but I haven't seen such conversion instructions. (I didn't search thoroughly.) If they exist, they will probably not be available for older processors.
25-11-2024

UPDATE: Test passed when we ran it individually, But failed with tier1 test run. So it seems when it was run alone, it got enough resources free to slide it through the given time. When ran in pack with other tests it couldn't grab resources to do the job in time and failed. [~mbaesken] Looks like test got disabled for s390x as well. But I think we need to enable it again. On s390x I see that test is passing. I reverted the changes done by JDK-8336827 and ran the test: ============================== Test summary ============================== TEST TOTAL PASS FAIL ERROR jtreg:./test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java 1 1 0 0 ============================== TEST SUCCESS
25-11-2024

Sorry, so issue was not a failure but slowdown. Not sure but I see couple of issues which intrinsify Float conversion like JDK-8302976. Maybe implementing intrinsic for s390x/ppc could fix the problem. Any thoughts ?
25-11-2024