RFR: 8267356: AArch64: Vector API SVE codegen support

Paul Sandoz paul.sandoz at oracle.com
Thu May 20 22:30:52 UTC 2021


Hi Ningsheng,

Thank you for doing this work and preparing a review.

We might have our wires crossed a little with regards to JEPs, or we just need to clarify the intent.

I think this important work needs to be part of a Vector API JEP, it being a relevant new feature (in this case with a large contribution of code). That approach has been applied to the SVML support on x86 which is currently part of JEP 414, in addition to the API enhancements. I don’t think we can skip the JEP process for such a feature, and especially so since this is an incubating feature.

The reason I did not included SVE support in JEP 414, as we discussed, was because it may be too late to get the code properly reviewed in time by 17 RDP 1 (feature freeze on 2021/06/10).
(Note that JEP 414 currently explicitly calls out SVE support as future work.)

It's not that the JEP process takes time, it's that code reviews can take time, especially closer to RDP 1 as reviewers are often very busy.

If you and the reviewers think the code can be reviewed by 17 RDP 1 then we can update JEP 414 and include it. But, I strongly recommend we should include it in a further JEP we can plan and propose to target for 18 (I can prepare a new draft JEP after JEP 414 integrates).

However, to be clear, that does not negate starting the code review process now as you have done, in fact that’s a good thing :-) being prepared for a proposed release early in that release cycle reduces risk and increases chances of integration.

Paul.

> On May 20, 2021, at 12:48 AM, Ningsheng Jian <njian at openjdk.java.net> wrote:
> 
> This is the integration of current SVE work done in panama-vector/vectorIntrinscs, which includes:
> 
> 1. Code generation for Vector API c2 IR nodes with SVE.
> 2. Non-max vector size support with SVE, e.g. using *128Vector (and *64Vector) APIs on 256-bit SVE environment could also generate optimized SVE instructions with predicate feature.
> 3. Some more SVE assemblers (and tests) used by the codegen part.
> 
> Test: tier1-3 with vector api test cases passed on 512-bit SVE hardware with MaxVectorSize=16/32/64.
> 
> Note: our original plan was making this work part of JEP 414 Vector API (Second Incubator) [1], but we realized that it's now close to 17 release cycle and the JEP process may take time. Adding more features could delay the whole review process for the JEP. So we separate this work out as a standalone patch.
> 
> [1] http://openjdk.java.net/jeps/414
> 
> -------------
> 
> Commit messages:
> - 8267356: AArch64: Vector API SVE codegen support
> 
> Changes: https://git.openjdk.java.net/jdk/pull/4122/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4122&range=00
>  Issue: https://bugs.openjdk.java.net/browse/JDK-8267356
>  Stats: 5486 lines in 10 files changed: 4556 ins; 144 del; 786 mod
>  Patch: https://git.openjdk.java.net/jdk/pull/4122.diff
>  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4122/head:pull/4122
> 
> PR: https://git.openjdk.java.net/jdk/pull/4122



More information about the hotspot-dev mailing list