Skip to content

Enable vectorizedHashCode intrinsic for OffHeap on POWER #21856

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

Merged
merged 2 commits into from
May 13, 2025

Conversation

luke-li-2003
Copy link
Contributor

Calculate the address for the array data in OffHeap mode correctly for vectorizedHashCode

Calculate the address for the array data in OffHeap mode correctly for vectorizedHashCode

Signed-off-by: Luke Li <[email protected]>
@luke-li-2003
Copy link
Contributor Author

FYI @zl-wang

@luke-li-2003
Copy link
Contributor Author

luke-li-2003 commented May 12, 2025

Performance numbers:

load gencon offheap offheap with changes
int[2] 471 245 400
3 375 210 333
4 259 190 240
16 158 65 161

Copy link
Contributor

@zl-wang zl-wang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zl-wang
Copy link
Contributor

zl-wang commented May 13, 2025

almost identical code between gencon and offheap ... it is somewhat unexpected that int[2] & int[3] performance are not closer to gencon, isn't it? should be more than 90% of the gencon corresponding numbers.

@luke-li-2003
Copy link
Contributor Author

I did some more runs and the numbers were the same, so they should be accurate. My guess is that the extra load required is significant enough on the short arrays.

@zl-wang
Copy link
Contributor

zl-wang commented May 13, 2025

Jenkins test sanity aix,plinux jdk8,jdk21

@zl-wang
Copy link
Contributor

zl-wang commented May 13, 2025

in particular, for int[3], how long is the sequence for gencon and off-heap respectively? we can figure out if the load vs. addi (that is the only difference) can explain it.

@luke-li-2003
Copy link
Contributor Author

It turns out the old numbers for int[3] were wrong. All the new tests I run have 375 for gencon and 333 for offheap. The other lengths' throughputs are still consistent.

@zl-wang
Copy link
Contributor

zl-wang commented May 13, 2025

better. please update the performance numbers.

@luke-li-2003
Copy link
Contributor Author

Numbers has been updated here: #21856 (comment)

@zl-wang zl-wang merged commit 4d92969 into eclipse-openj9:master May 13, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants