JavaJava
Conference45min
ADVANCED

Hotspot JVM Auto Vectorization and Vector API

This talk explores new auto-vectorization features and the Vector API in Hotspot JVM, including JDK26 updates. It explains SuperWord, loop optimizations, performance impacts, and when to use the Vector API. Practical examples and benchmarks help Java developers leverage modern CPU vector instructions for better performance and efficiency.

Emanuel Peter
Emanuel PeterOracle

talkDetail.whenAndWhere

Tuesday, March 24, 15:55-16:40
Room 8
talks.roomOccupancytalks.noOccupancyInfo
talks.description
This talk will cover work on the Hotspot JVM, regarding auto vectorization and the Vector API. Some of this work is new to JDK26 which will be released in March 2026.
The goal is to deliver insights to Java developers interested in performance and vectorization, and demonstrate how to use the full potential of modern CPU vector instruction capabilities.

Auto Vectorization:
  • High level explanation of SuperWord algorithm, how scalar operations are packed into vectors
  • Loop shapes: fill, copy, map and reduce
  • Extended topics: aliasing and alignment and their performance impact
  • Benchmarks on arrays and MemorySegments (project Panama)
Vector API:
  • Why use the Vector API? When auto vectorization is not good enough yet. Quick intro to the API
  • Various examples, demonstrated with algorithms: compress/filter, prefix sum, shuffle, gather/scatter, simulating branches, etc. and benchmarks
  • Performance pitfalls: unavailable instructions, alignment, store-to-load-forwarding failures, branch misprediction vs latency etc.

Target audience: Can read Java code, understands basics of CPU architecture, is interested in performance and vectorization.
vectorization
benchmarks
performance
hotspot
talks.speakers
Emanuel Peter

Emanuel Peter

Oracle

Switzerland

I am a Compiler Engineer in the Java Platform Group at Oracle.
I mostly work on the Hotspot C2 JIT compiler, with a focus on compiler optimizations, auto vectorization and the Vector API.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription

occupancy.title

occupancy.votingNotYetAvailable

occupancy.votingAvailableBeforeStart

talkDetail.signInRequired

occupancy.signInToVoteDescription

comments.title

comments.speakerNotEnabledComments