RFR: 8323116: [REDO] Computational test more than 2x slower when AVX instructions are used [v5]
Quan Anh Mai
qamai at openjdk.org
Fri Apr 5 05:39:09 UTC 2024
On Thu, 4 Apr 2024 23:10:38 GMT, Srinivas Vamsi Parasa <duke at openjdk.org> wrote:
>> The goal of this small PR is improve the performance of convert instructions and address the slowdown when AVX>0 is used.
>>
>> The performance data using the ComputePI.java benchmark (part of this PR) is as follows:
>>
>>
>> Benchmark (ns/op) | Stock JDK | This PR (AVX=3) | Speedup
>> -- | -- | -- | --
>> ComputePI.compute_pi_dbl_flt | 511.34 | 510.989 | 1.0
>> ComputePI.compute_pi_flt_dbl | 2024.06 | 518.695 | 3.9
>> ComputePI.compute_pi_int_dbl | 695.482 | 453.054 | 1.5
>> ComputePI.compute_pi_int_flt | 799.268 | 449.83 | 1.8
>> ComputePI.compute_pi_long_dbl | 802.992 | 454.891 | 1.8
>> ComputePI.compute_pi_long_flt | 628.62 | 463.617 | 1.4
>>
>>
>>
>> Benchmark (ns/op) | Stock JDK | This PR (AVX=0) | Speedup
>> -- | -- | -- | --
>> ComputePI.compute_pi_dbl_flt | 473.778 | 472.529 | 1.0
>> ComputePI.compute_pi_flt_dbl | 536.004 | 538.418 | 1.0
>> ComputePI.compute_pi_int_dbl | 458.08 | 460.245 | 1.0
>> ComputePI.compute_pi_int_flt | 477.305 | 476.975 | 1.0
>> ComputePI.compute_pi_long_dbl | 455.132 | 455.064 | 1.0
>> ComputePI.compute_pi_long_flt | 474.734 | 476.571 | 1.0
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one additional commit since the last revision:
>
> fix failure for KNL
While changing `vcvtss2sd dst, dst, src` to `vcvtss2sd dst, src, src` looks fine, adding a `pxor` before every `cvtsi2ss` seems extra as it puts more pressure on the front-end. I propose to have a non-allocatable register such as `xmm15` and use it as the first source register for these nodes. It also helps enable the memory version of these instructions without worrying about unwanted dependencies.
Cheers.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18503#issuecomment-2038983984
More information about the hotspot-compiler-dev
mailing list