RSSAmplifier

Blog

Emanuel’s Blog

Blog about Hotspot JDK related things

eme64.github.ioRSS feed ↗10 posts

Latest posts

Vectorizing Loops with Control-Flow using the Vector API

Many algorithms require control-flow. As of JDK26, the HotSpot JVM does not auto vectorize loops with control-flow (other than the loop exit check). That will hopefully change in the future, but auto vectorization will always be limited. It is a pattern matching engine and can never cover all cases. That’s where the Vector API (JEP) comes to the rescue: it allows us to express vectorized…

Vectorizing Simple Algorithms with Auto Vectorization, Vectorized Intrinsics and the Vector API

In this blog post, we will look at some very simple algorithms like fill, copy, map and iota, and see how we can vectorize them to get speedups. I will assume that you already have some basic understanding of automatic vectorization, vectorized intrinsics and the Vector API, otherwise please read this blog post first.

How the HotSpot JVM speeds up computation with SIMD Vectorization

Parallel processing is used in many places to speed up computation.

Implementing a Fast Dot-Product using the Java Vector API

The dot-product is one of the most fundamental Linear Algebra operations, and it has many applications.

JDK26: Auto Vectorization and Aliasing

Aliasing is one of the biggest obstacles to vectorization and auto vectorization in particular. As we will see further below, it is also relevant for uses of the Vector API.

Vectorizing Reductions: from JDK9 to JDK26 and beyond

There are a lot of examples for reductions: computing the sum, product or min over some list of numbers, the dot product (sum of element-wise products), or even the polynomial hash over a string.

Performance impact of Alignment

An important topic in SIMD vectorization is alignment of memory accesses, i.e. loads and stores. There is an impact on any form of vectorization, including auto-vectorization and explicit vectorization (e.g. with the Vector API).

Introduction to HotSpot JVM C2 JIT Compiler, Part 3

I assume that you have already looked at Part 0, Part 1, and Part 2.

Introduction to HotSpot JVM C2 JIT Compiler, Part 4

I assume that you have already looked at Part 0, Part 1, Part 2, and Part 3.

AutoVectorization (SuperWord) Status

I present this graphical overview of the C2 AutoVectorizer (SuperWord). The goal is to help myself and others understand the different improvements and their dependencies.