RFR: 8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions

Andrew Haley aph at redhat.com
Mon Sep 14 16:43:53 UTC 2020


On 14/09/2020 14:18, Jatin Bhateja wrote:

> Frequency level switchover is sensitive to vector size, this has
> been taken care of by using a 32 byte vector masked operations in
> default mode.
>
> Default value of ArrayCopyPartialInlineSize is 32 i.e. copy sizes
> b/w 1-32 are partially in lined at the call site using masked vector
> moves operating over YMM registers. Only if user sets it to 64 we
> use ZMMs registers which forces a frequency level switch over to a
> lower frequency level (LVL1).
>
> So an AVX512 lite instruction working over a 32 byte vector (YMM)
> will operate a maximum frequency level (LVL0).

OK, as long as you're keeping watch on this issue. We really do not
want all Java workloads to be running at lower frequency or higher
power just because of some intrinsics. Sure, if we're doing high-power
vector calculations that's fine.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



More information about the hotspot-compiler-dev mailing list