RFR: 8352675: Support Intel AVX10 converged vector ISA feature detection [v19]

Sandhya Viswanathan sviswanathan at openjdk.org
Fri May 9 22:55:58 UTC 2025


On Fri, 9 May 2025 15:17:17 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> - Intel AVX10[1] extends and enhances the capabilities of Intel AVX-512 to benefit all Intel® products and will be the vector ISA of choice moving into the future. 
>> - It supports a new ISA versioning scheme which simplifies the existing AVX512 feature enumeration scheme. Feature set supported by an AVX10 ISA version will be supported by all the versions above it.
>> - The initial, fully-featured version of Intel® AVX10 will be enumerated as Version 2 (denoted as Intel® AVX10.2). This will include the new ISA extension over the existing AVX512 instructions. 
>> - An early version of Intel® AVX10 (Version 1, or Intel® AVX10.1) that only enumerates the Intel® AVX-512 instruction set at 128, 256, and 512 bits will be enabled on the Granite Rapids Server for software pre-enabling.
>> 
>> This patch adds the necessary CPUID feature detection for AVX10 ISA version 1 and 2.  In terms of architectural state save restoration, AVX10 is isomorphic to AVX512 support up till Granite Rapids. State components affected by AVX10 extension include SSE, AVX, Opmask, ZMM_Hi256, and Hi16_ZMM registers. 
>> 
>> The patch has been regressed through tier1 and jvmci tests 
>> 
>> Please review and share your feedback.
>> 
>> Best Regards,
>> Jatin
>> 
>> [1] https://www.intel.com/content/www/us/en/content-details/844829/intel-advanced-vector-extensions-10-2-intel-avx10-2-architecture-specification.html
>
> Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 19 commits:
> 
>  - Sandhya's review comments resoultion
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8352675
>  - Addressing Yudi's comments
>  - Code re-factoring from Vladimir
>  - Reveiw suggestions incorporated
>  - Making _features_bitmap size configurable
>  - cleanups & refactorings
>  - build fixes for non-x86 targets
>  - Review comments resolutions
>  - Updating comment
>  - ... and 9 more: https://git.openjdk.org/jdk/compare/411a63ea...f583a521

Rest of the PR looks good to me.

src/hotspot/cpu/x86/vm_version_x86.cpp line 494:

> 492:     if (use_evex) {
> 493:       // check _cpuid_info.sef_cpuid7_ebx.bits.avx512f
> 494:       // OR check _cpuid_info.std_cpuid24_ebx.bits.avx10

This comment needs to be corrected:
// OR check _cpuid_info.sefsl1_cpuid7_edx.bits.avx10

src/hotspot/cpu/x86/vm_version_x86.cpp line 1052:

> 1050:   if (is_intel()) { // Intel cpus specific settings
> 1051:     if (is_knights_family()) {
> 1052:       _features.clear_feature(CPU_VZEROUPPER);

Should we be also clearing the CPU_AVX10_1 and CPU_AVX10_2 here?

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

PR Review: https://git.openjdk.org/jdk/pull/24329#pullrequestreview-2829142420
PR Review Comment: https://git.openjdk.org/jdk/pull/24329#discussion_r2082148591
PR Review Comment: https://git.openjdk.org/jdk/pull/24329#discussion_r2082570611


More information about the graal-dev mailing list