Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Associated JBoss community project(s): Debezium

SIMD support in a Java WebAssembly runtime

Summary of idea

Chicory is a JVM native WebAssembly runtime. It allows you to run WebAssembly programs with zero native dependencies or JNI. Chicory can run Wasm anywhere that the JVM can go. It is designed with simplicity and safety in mind.
The WebAssembly specification defines a full section of Vector Instructions and there is a preview JEP(438) in Java for supporting a Vector API.
In this project, you will be asked to define and implement the best possible support for SIMD operations in Chicory, understanding the tradeoffs and offering viable solutions for different JVM versions and supported APIs.

Outcome:

At the end of the project, we expect to be able to run on top of Chicory libraries that make use of SIMD instructions(like Libsodium).
Stretch: Full support for all of the SIMD instructions defined by the WebAssembly specification, backed by the Vector API but with programmatic fallbacks when not available.

Skills:

Some prior experience with the Java programming language is highly desirable.

Mentors:

Andrea Peruffo <aperuffo@redhat.com>

Size:
We aim for a full 350 hour project to end up with a pretty complete support of SIMD.
Although tuning the expected outcome and scoping for a limited number of instructions support is totally possible for candidates for high interest but less time.

Github repo:

https://github.com/dylibso/chicory

Skill level:

intermediate