TornadoVM
A JIT compiler and runtime that turns Java bytecode into CUDA C, OpenCL and Metal code, and calls cuBLAS, cuFFT and cuDNN directly from your Java task graph. Use it on its own for analytics, finance, simulation, media or machine learning.
TaskGraph tg = new TaskGraph("cuBLAS") .transferToDevice(EVERY_EXECUTION, matrix, vector) .task("preprocess", MyClass::preprocess, matrix) // JIT-compiled Java .libraryTask("sgemv", CuBlas::cublasSgemv, // native cuBLAS CUBLAS_OP_T.operation(), m, n, alpha, matrix, lda, vector, incx, beta, output, incy) .task("postprocess", MyClass::postprocess, output) .transferToHost(EVERY_EXECUTION, output);
- Loop Parallel, Kernel, Tile and Hybrid APIs, all in plain Java
- CUDA Graphs, streams and Tensor Core MMA on NVIDIA
- Installs in one line with SDKMAN!; keeps your Maven build



