-
Notifications
You must be signed in to change notification settings - Fork 5.9k
8354473: Incorrect results for compress/expand tests with -XX:+EnableX86ECoreOpts #24645
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👋 Welcome back vpaprotski! A progress list of the required criteria for merging this PR into |
@vpaprotsk This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 364 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@jatin-bhateja, @sviswa7, @eme64) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
@vpaprotsk The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
@vpaprotsk Can you please give a little more details about what exactly went wrong here, and why your change is correct? @jatin-bhateja You should probably review this code, since you wrote the code originally :) |
@eme64 Thanks for looking. Point form in attempt to be concise:
|
Hi @vpaprotsk , @eme64, Just to fill in the missing details about compress/expand handling on AVX2, we maintain an in-memory lookup table of permutation indices corresponding to a mask value. Each row of lookup table either holds a valid permute index, which is a positive index value less than the vector lane count OR a -1 index. Since blend emulation always expects to operate over a blend mask vector whose lanes either hold a -1 or a 0 value hence there is a need to re-compose the desired blend mask by signed extending the MSB bits to fill the entire lane. Your fix to recompute the mask looks good to me. Best Regards, |
@jatin-bhateja Thanks for reviewing! @vpaprotsk I'm realdy to give the approval too, just want to run some internal testing first - please ping me again in 24h :) |
@jatin-bhateja It seems the flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Testing with EnableX86ECoreOpts would be good, these machines have AVX2. |
@eme64 Pinging as promised about tests results.. thanks! Re: |
E-core Xeons, Sapphire Rapids is widely deployed by all major CSPs, -XX:+EnableX86ECoreOpts enables certain micro-architectural optimization for these systems and JIT code may be different than using -XX:UseAVX=2 on regular P-core Xeons (AVX512 family) targets. |
@eme64 Let me know how those tests fared? And if/when I can integrate, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks reasonable to me. I did run our testing, so it won't break out CI. But I think we are not yet running our testing with -XX:+EnableX86ECoreOpts
, so no guarantees there ;)
/integrate |
@vpaprotsk |
/sponsor |
Going to push as commit a6995a3.
Your commit was automatically rebased without conflicts. |
@sviswa7 @vpaprotsk Pushed as commit a6995a3. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
It looks like the
permv
mask isnt always 'all-ones' or 'all-zeroes'. (Which is OK for real blend, but needs to be enforced via the flag for blend emulation)Before the fix,
make test TEST="jdk/incubator/vector"
(on ECore machine)After the fix:
And on an AVX512 machine:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/24645/head:pull/24645
$ git checkout pull/24645
Update a local copy of the PR:
$ git checkout pull/24645
$ git pull https://git.openjdk.org/jdk.git pull/24645/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 24645
View PR using the GUI difftool:
$ git pr show -t 24645
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/24645.diff
Using Webrev
Link to Webrev Comment