TornadoVMは、計算負荷の高いタスクをマルチコアCPUやGPUにオフロードすることでJavaプログラムを加速させるために設計されたオープンソースのフレームワークです。標準的なJava Virtual Machine (JVM) を置き換えるのではなく、OpenJDK、GraalVM、Temurin、またはZuluといった既存のディストリビューションと並行して動作します。このフレームワークはJavaヒープとハードウェアアクセラレータの間のメモリを管理し、ソースJavaコードをOpenCLおよびApple Metalバックエンドにコンパイルします。このアーキテクチャにより、開発者は「Write Once, Run Anywhere」のワークフローを維持することができ、ローカルハードウェアで開発したコードを、高性能なNvidia GPUを搭載した本番サーバーにデプロイすることが可能になります。

バージョン7.3では、重要なアーキテクチャの転換が行われ、特にバックエンド通信においてJava Native Interface (JNI) からForeign Function & Memory (FFM) APIへの移行が注目されます。また、このプロジェクトは実験的なJVM Compiler Interface (JVMCI) への依存を削除し、サポートされているJDK(21から27まで)全体にわたって、リフレクション、ASM、およびUnsafeレイヤーを組み合わせたコンパイラメタデータのための統一されたパスへと移行しました。これらの変更は、Java開発者が高性能なライブラリにアクセスするための、より安定した慣習的な環境を提供することを目的としています。

Nvidiaエコシステムとの統合を深めるため、今回のアップデートにはcuTileプログラミングモデルをサポートし、cuBLASやCUTLASSなどのライブラリへの直接呼び出しをサポートする最適化されたCUDAバックエンドが含まれています。開発者は、パフォーマンスや移植性の特定のニーズに応じて、JIT生成されたカーネルをこれらの手動で最適化されたライブラリ呼び出しに置き換えることを選択できます。すべてのJava計算がオフロードに適しているわけではありませんが、このフレームワークは、反復間の依存関係のないループなどのデータ並列ワークロードに最適化されており、JavaアプリケーションがJVMから直接、線形代数、高速フーリエ変換、およびディープニューラルネットワーク処理を活用できるようにします。