产品派
返回

TornadoVM 7.3发布,Java可跨平台调用GPU加速

开源InfoQ 中文站2026/11/2 12:01:29
AI 导读

面向Java的开源异构计算框架TornadoVM近日发布7.3版本。该框架可在不修改现有JVM的情况下,将Java程序卸载到多核CPU或GPU执行,并兼容OpenJDK、GraalVM、Temurin、Zulu等主流JDK发行版。

TornadoVM负责连接Java堆与加速器内存,并运行生成的计算内核。开发者可以使用Java编写程序,由框架编译为OpenCL或Apple Metal后端代码,先在笔记本电脑的本地硬件上开发,再部署到配备NVIDIA GPU的服务器,实现跨CPU、GPU及不同硬件平台的统一开发方式。

7.3版本调整了底层架构,后端改用Foreign Function & Memory(FFM)API取代Java Native Interface(JNI),同时移除实验性的JVMCI依赖。项目团队表示,编译器元数据现在通过反射、ASM和Unsafe层获取,并在JDK 21、25、26和27上采用统一处理路径。

该版本还强化了NVIDIA生态支持,包括通过新增TileContext接入cuTile编程模型,并允许任务图直接调用cuBLAS和CUTLASS。开发者可以根据性能与可移植性需求,在JIT生成的内核与CUDA库调用之间进行替换或组合。面向苹果平台,框架也通过混合API提供MLX库接入能力,并新增多GPU执行支持。

并非所有Java计算都适合卸载,数据并行任务更容易获得收益,例如循环迭代之间没有依赖关系的场景。TornadoVM已与Quarkus、Lang4j、Flink和Spring AI集成,并可通过SDKMan获取。以Flink为例,开发者可继续使用Table API编写查询,再通过配置标志提示其可能需要GPU加速;任务抵达任务管理器后,系统会检查节点GPU资源,并由库提供程序分析查询中间表示,判断是否适合执行卸载。

针对NVIDIA GPU,TornadoVM目前提供并行API、内核上下文API和TileContext等多种编程方式。并行API主要通过循环注解向编译器提供并行化提示,而更复杂的生产场景可使用后两类接口。随7.3版本推出的jitLLM v2.0则是基于TornadoVM的Java AI推理引擎,以单个JAR文件发布,项目团队称其性能目标是对标llama.cpp和Ollama。TornadoVM及jitLLM由项目团队成立的衍生公司Beestream.ai负责商业化推广。

TornadoVMJavaGPU计算CUDAAI推理

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文