[vectorIntrinsics] RFR: Optimize mem barriers for ByteBuffer cases
Radoslaw Smogura
github.com+7535718+rsmogura at openjdk.java.net
Tue Jul 27 20:48:16 UTC 2021
# Description
This change tries to remove mem bars for byte buffer cases.
Previously mem bars were inserted almost unconditionally if attemp to native memory acees where detected. This patch tries to follow up inline_unsafe_access and insert bar only if can't determine if it's heap or off-heap (type missmatch cases are not ported).
# Testing
Memory tests should include rollbacking JDK changes, and leaving only hotspot, as intrinsics should be well guarded
# Notes
Polluted cases to be addressed later
# Benchmarks
Benchmark (size) Mode Cnt Score Error Units
ByteBufferVectorAccess.arrays 1024 avgt 10 12.585 ? 0.409 ns/op
ByteBufferVectorAccess.directBuffers 1024 avgt 10 19.962 ? 0.080 ns/op
ByteBufferVectorAccess.heapBuffers 1024 avgt 10 15.878 ? 0.187 ns/op
ByteBufferVectorAccess.pollutedBuffers2 1024 avgt 10 123.702 ? 0.723 ns/op
ByteBufferVectorAccess.pollutedBuffers3 1024 avgt 10 223.928 ? 1.906 ns/op
Before
Benchmark (size) Mode Cnt Score Error Units
ByteBufferVectorAccess.arrays 1024 avgt 10 14.730 ? 0.061 ns/op
ByteBufferVectorAccess.directBuffers 1024 avgt 10 77.707 ? 4.867 ns/op
ByteBufferVectorAccess.heapBuffers 1024 avgt 10 76.530 ? 1.076 ns/op
ByteBufferVectorAccess.pollutedBuffers2 1024 avgt 10 143.331 ? 1.096 ns/op
ByteBufferVectorAccess.pollutedBuffers3 1024 avgt 10 286.645 ? 3.444 ns/op
-------------
Commit messages:
- Added jtreg test
- Revert template
- Ignore
- Make comparision same like in access fence
- Avoid unneded casts, new mixed test
- Move null / byte closer to intrinsic
- Add missing templates
- Check for mixed access.
Changes: https://git.openjdk.java.net/panama-vector/pull/104/files
Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=104&range=00
Stats: 231 lines in 5 files changed: 219 ins; 0 del; 12 mod
Patch: https://git.openjdk.java.net/panama-vector/pull/104.diff
Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/104/head:pull/104
PR: https://git.openjdk.java.net/panama-vector/pull/104
More information about the panama-dev
mailing list