[vectorIntrinsics] RFR: Remove `byte[]` and `ByteBuffer` access methods.

Jie Fu jiefu at openjdk.java.net
Mon Apr 11 00:14:59 UTC 2022


On Fri, 8 Apr 2022 04:17:34 GMT, Jie Fu <jiefu at openjdk.org> wrote:

>> Removes `byte[]` and `ByteBuffer` vector access methods.
>> 
>> Fixes performance issue with the fallback implementation of `MemorySegment` accessors (the `ValueLayout` passed to the scalar accessors needs to be constant).
>
> Hi @PaulSandoz ,
> 
> Is there any perf number before and after this patch?
> Also why there is no JBS for this PR?

> Hi @DamonFool, issues are optional for integration into the `panama-vector` repo.

Okay.

> 
> Performance-wise `MemorySegment` is similar to `byte[]` and `ByteBuffer` (heap and direct), which is not too surprising since the `base`/`offset` are extracted from a segment and passed to the `load`/`store` vector intrinsic.
> 
> There is one performance anomaly I have observed related to using an `int`-based loop and `int` offset. This results in a widening conversion to `long` when passing the `int` value as the `offset` argument to the access method. The memory addressing logic is not efficient, which exacerbates with unrolling. This may be more generally C2 related, but it requires further investigation.

Can you give us a benchmark example whose performance would be improved so that we can learn more from your patch?
Thanks.

-------------

PR: https://git.openjdk.java.net/panama-vector/pull/190


More information about the panama-dev mailing list