Skip to content

ArturSkowronski/conference-jvm-in-age-ai-2026

Repository files navigation

Conference Talk: JVM in the Age of AI - 2026 Edition

πŸ“Š Presentation Slides

JVM in the Age of AI - 2026 Edition

πŸ“₯ View Full Presentation (PDF)

JFokus 2026 - Stockholm, Sweden


Build Status

GraalPy Demo TensorFlow FFM java-llama.cpp JCuda Llama3.java Valhalla TornadoVM Babylon

This repository contains demos, benchmarks, and documentation from the "JVM in the Age of AI" conference talk (JFokus 2026). All demos are functional and can be run on your own hardware.

Quick Start

# Run all smoke tests (quick validation)
./gradlew runSmokeTests

# Run all LLM inference runs
./gradlew runBenchmarks

Demos

LLM Inference Demos (M1 Pro / GPU Tesla T4 optimized, hueristics only)

All demos use the same model: Llama 3.2 1B Instruct (FP16, ~2.5 GB)

Demo Technology Command
java-llama.cpp JNI + Metal/CUDA GPU ./gradlew :demos:java-llama-cpp:run
Cyfra Scala + Vulkan GPU ./cyfra-demo/scripts/run-cyfra-llama.sh
Llama3.java Pure Java Vector API ./gradlew :demos:llama3-java:run
GraalPy (CPython) Python (CPython) ./gradlew :demos:graalpy:llamaPython
TornadoVM Java + OpenCL GPU ./demos/tornadovm/scripts/run-gpullama3.sh
GraalPy (GraalPy) Python (GraalPy) ❌ Fails

GPU/Compute Demos

Demo Technology Purpose Command
TensorFlow FFM FFM API TensorFlow C API from Java ./gradlew :demos:tensorflow-ffm:run
JCuda JNI CUDA device detection ./gradlew :demos:jcuda:run
TornadoVM TaskGraph GPU array operations ./demos/tornadovm/scripts/run-tornado.sh
Babylon Code Reflection HAT GPU MatMul ./demos/babylon/run-babylon.sh
Valhalla Vector API FP16 + SIMD operations ./gradlew :demos:valhalla:run
Cyfra Scala/Vulkan GPU programming See cyfra-demo/

Master Tasks

Run All Smoke Tests (Quick Validation)

./gradlew runSmokeTests

Runs:

  • TensorFlow FFM smoke test
  • JCuda device detection
  • Valhalla Vector API demos
  • Babylon RuntimeCheck
  • TornadoVM baseline
  • GraalPy basic embedding

Duration: ~2-3 minutes

Run All LLM Benchmarks

./gradlew runBenchmarks

Runs:

  • Llama3.java (JDK 25)
  • java-llama.cpp (Metal/CUDA)
  • GraalPy CPython LLM
  • GraalPy GraalPy LLM (fails - expected)

Duration: ~5-10 minutes (includes model loading) Requires: Model at ~/.llama/models/Llama-3.2-1B-Instruct-f16.gguf

Setup

Prerequisites

Install Java Environments

# From repository root
sdk env install && sdk env

# For each demo (optional - each has .sdkmanrc, they require different JDKs)
cd demos/<demo-name>
sdk env install && sdk env

Download LLM Model

./scripts/download-models.sh --fp16

Demo Structure

All Java demos follow consistent structure:

demos/<demo-name>/
β”œβ”€β”€ src/main/java/com/skowronski/talk/jvmai/
β”‚   └── *.java                   # Java sources
β”œβ”€β”€ build.gradle.kts             # Gradle build
β”œβ”€β”€ .sdkmanrc                    # JDK version
β”œβ”€β”€ README.md                    # Quick start guide
└── Findings.md                  # Technical deep dive

Package: All Java demos use com.skowronski.talk.jvmai

Individual Demo Quick Starts

GraalPy - Python Embedding

# All 3 demos (basic, CPython LLM, GraalPy LLM)
./gradlew :demos:graalpy:run

TensorFlow FFM - Foreign Function & Memory

./gradlew :demos:tensorflow-ffm:run

java-llama.cpp - JNI Bindings

./gradlew :demos:java-llama-cpp:run

JCuda - CUDA from Java

./gradlew :demos:jcuda:run

Llama3.java - Pure Java LLM

# JDK 25 (fast - ~13 tok/s)
./gradlew :demos:llama3-java:run

# JDK 21 (slow - ~0.3 tok/s, 40x slower!)
./gradlew :demos:llama3-java:llama21

Valhalla - Vector API + FP16

# Both Vector API and FP16 demos
./gradlew :demos:valhalla:run

Babylon - Code Reflection + HAT

# RuntimeCheck + HAT MatMul (if Babylon JDK + HAT available)
./demos/babylon/run-babylon.sh

# RuntimeCheck only
./gradlew :demos:babylon:run

TornadoVM - GPU Acceleration

# CPU baseline
./gradlew :demos:tornadovm:run

# GPU version (auto-downloads TornadoVM SDK)
./demos/tornadovm/scripts/run-tornado.sh

Cyfra - Scala/Vulkan GPU

cd cyfra-demo
./scripts/run-cyfra-llama.sh --model ~/.llama/models/Llama-3.2-1B-Instruct-f16.gguf --prompt "Hello"

Demo-specific findings:

About

Demos, benchmarks, and documentation from the "JVM in the Age of AI" conference talk.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors