Enter The Parallel Universe of the Vector API

Track: Java Platform
Abstract
Single Instruction Multiple Data (SIMD) instructions have been available in Intel and other processor instruction sets for over 25 years. The current implementation is Advanced Vector eXtensions (AVX), first introduced in the Sandy Bridge microarchitecture.

Using Vector processing through AVX can profoundly improve the performance level of an application that includes numerically intensive operations. The difficulty is that, although the compiler should be responsible for determining their use, code is often too complex to do so effectively.

In JDK 16, an incubator module for the Vector API (not to be confused with the Vector collections class) was introduced. This allows a developer to express vector computations that reliably compile at runtime to optimal vector instructions. The API has undergone several revisions resulting in the sixth incubator in JDK 21.

In this session, we'll explore how to use the Vector API in different use cases, comparing the code generated by the JIT compiler without the API and with it. We'll also look at what difference this makes to the performance delivered.
Simon Ritter
Simon Ritter is the Deputy CTO of Azul Systems. Simon has been in the IT business since 1984 and holds a Bachelor of Science degree in Physics from Brunel University in the U.K. Simon joined Sun Microsystems in 1996 and started working with Java technology from JDK 1.0; he has spent time working in both Java development and consultancy. Having moved to Oracle as part of the Sun acquisition, he managed the Java Evangelism team for the core Java platform, Java for client applications and embedded Java. Now at Azul, he continues to help people understand Java as well as Azul’s JVM technologies and products. Simon has twice been awarded Java Rockstar status at JavaOne and is a Java Champion. He currently represents Azul on the JCP Executive Committee and on the Java SE Expert Group (JSR 379, 383 and 384).