RFR(S): 8194740: Fix for: UseSubwordForMaxVector causes performance regression
Deshpande, Vivek R
vivek.r.deshpande at intel.com
Mon Jun 25 23:49:57 UTC 2018
Hi Vladimir
With this fix, the unrolling is limited to the loops with the presence of subword in the loop, which is correct for Subword Analysis and avoids unrolling
for the loops with no subword operations in the loop. This fixes the regression with MPEG.
I analyzed the workloads SPECjvm2008-SOR.small and SPECjvm2008-MonteCarlo.
On MonteCarlo, with Subword Analysis work the loop was getting unrolled because of the following condition and was seeing the performance gain as a side effect.
if (UseSubwordForMaxVector || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) {
With the fix the condition changed to check for the presence of Subword in the loop as following.
if ((cl->is_subword_loop() || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) {
This caused the performance on MonteCarlo to go back to before UseSubwordForMaxVector changes.
I did not notice much of a performance impact on SOR.small with Parallel GC and Parallel Old GC on Skylake server.
For all the experiments I used single socket with membind to avoid run to run variations on skylake server.
I also used these options -XX:-TieredCompilation -Xmx25G -Xms25G -Xmn15G -XX:+UseParallelGC -XX:ParallelGCThreads=66
Please let me know what you think.
Regards,
Vivek
-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
Sent: Wednesday, June 13, 2018 12:32 PM
To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; Tobias Hartmann <tobias.hartmann at oracle.com>; hotspot-compiler-dev at openjdk.java.net compiler <hotspot-compiler-dev at openjdk.java.net>
Subject: Re: RFR(S): 8194740: Fix for: UseSubwordForMaxVector causes performance regression
Hi Vivek,
Performance testing is finished and we see regressions.
SPECjvm2008-SOR.small with Parallel GC - 5-7% on all platfroms.
There is also 3-5% regression in MonteCarlo with G1 (we did not test with Praallel GC - it may also regress).
Please investigate it.
Thanks,
Vladimir
On 6/12/18 9:51 AM, Deshpande, Vivek R wrote:
> Hi Tobias
>
> Thanks for testing it. I have changed the status to - In Progress.
>
> Regards,
> Vivek
>
> -----Original Message-----
> From: Tobias Hartmann [mailto:tobias.hartmann at oracle.com]
> Sent: Tuesday, June 12, 2018 2:48 AM
> To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; Vladimir Kozlov
> <vladimir.kozlov at oracle.com>; hotspot-compiler-dev at openjdk.java.net
> compiler <hotspot-compiler-dev at openjdk.java.net>
> Subject: Re: RFR(S): 8194740: Fix for: UseSubwordForMaxVector causes
> performance regression
>
> Hi Vivek,
>
> On 11.06.2018 20:51, Deshpande, Vivek R wrote:
>> http://cr.openjdk.java.net/~vdeshpande/SubwordFix/webrev.01/
>
> This looks good to me as well. I've just submitted performance testing and premature results look great (+3.17% on SpecJVM2008 MPEG).
>
> I'll let you know once the runs are completed. Please set the status of the bug to "In Progress".
>
> Best regards,
> Tobias
>
More information about the hotspot-compiler-dev
mailing list