[vectorIntrinsics+mask] RFR: 8273057: [vector] New VectorAPI "SelectiveStore"
Paul Sandoz
paul.sandoz at oracle.com
Tue Sep 7 16:33:58 UTC 2021
Hi Joshua,
Thank you for your patience as we went through deeper design thinking.
Would it be possible for you to target this work to a new branch? e.g. vectorIntrinsics+compress.
I want to avoid complicating review and integration of the masking work for JEP 417. We are close to merging vectorIntrinsics+mask into vectorIntrinsics and then starting reviews of the masking support.
It may be possible that compress/expand become part of JEP 417, if we can get it ready in time. If so I can update the JEP accordingly and help do CSRs. Otherwise, we can target to the next round of incubation.
Paul.
> On Sep 6, 2021, at 12:18 AM, Joshua Zhu <jzhu at openjdk.java.net> wrote:
>
> On Fri, 3 Sep 2021 20:13:46 GMT, Paul Sandoz <paul.sandoz at oracle.com> wrote:
>
>> In summary, from the discussion, compress/expand are:
>>
>> - important conceptually, even if the same functionality could be composed from shuffles (such as used by an implementation); and
>>
>> - at the right level to reliably optimize on supporting hardware.
>>
>> So specification-wise we introduce expanding/compressing cross-lane operations. API-wise I prefer two distinct methods rather that one that accepts boolean indicating expansion or compression. We can declare one intrinsic method in VectorSupport.
>
> Thanks Paul for bringing the deep design thinking.
> John Rose's encompassing knowledge impresses me a lot.
> Also thank Sandhya and Ningsheng for comments.
>
> I will refactor my codes and implement these two cross-lane data movement primitives: mask-based compression & expansion.
> They will work on general vectors and be declared:
>
> $abstractvectortype$ compress(VectorMask<$Boxtype$> m);
> $abstractvectortype$ expand(VectorMask<$Boxtype$> m);
>
> These two vector-to-vector operations together with a store/load and prefix mask could be optimized further into single memory version instruction on supported architecture.
>
> -------------
>
> PR: https://git.openjdk.java.net/panama-vector/pull/115
More information about the panama-dev
mailing list