InfoQ

TornadoVM 7 Enables GPU-Native Workloads From Java Applications

6.9内容质量
TornadoVM 7 Enables GPU-Native Workloads From Java Applications

TL;DR · AI 摘要

TornadoVM 7 Enables GPU-Native Workloads From Java Applications - InfoQ InfoQ Homepage News TornadoVM 7 Enables GPU-Nati...

核心要点

  • 主题聚焦:TornadoVM 7 Enables GPU-Native Workloads From Ja
  • 来源:InfoQ,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#云计算#安全
打开原文

TornadoVM 7使Java应用能够启用GPU原生工作负载 - InfoQ

InfoQ 首页 News TornadoVM 7使Java应用能够启用GPU原生工作负载

Java

从Tokens到Features:为AI辅助工程构建成本归属架构(10月29日网络研讨会)

TornadoVM 7使Java应用能够启用GPU原生工作负载

2026年10月21日 3分钟阅读

作者:

  • Ben Evans

#### 关注我们

Youtube

232K关注者

Linkedin

26K关注者

Instagram

新

RSS

19K读者

X

57.1k关注者

Facebook

21K点赞

Bluesky

收听本文 -

0:00

音频准备播放

您的浏览器不支持音频元素。

正常

1.25x

1.5x

喜欢

新下拉阅读列表

  • 阅读列表

作为Java的开源异构GPU编程框架,TornadoVM已升级至7.3版本,这是项目的重要里程碑。

InfoQ此前曾在2025年12月和2022年报道过该项目。

TornadoVM能够自动加速Java程序在多核CPU和GPU上的运行。它不替代现有的JVM,而是与它们协同工作,为Java提供丰富的GPU编程生态系统,可与任何主流JDK发行版(如OpenJDK、Graalvm、Temurin或Zulu)配合使用。

它将Java代码卸载到硬件后端,在Java堆和加速器之间管理内存,并运行生成的计算内核。这使其成为现代云和机器学习工作负载的有用构建模块。

在开发过程中,TornadoVM将源Java代码编译到OpenCL和Apple Metal后端。其理念是您可以在笔记本电脑上本地开发并使用本地可用的硬件,然后部署到配备Nvidia GPU的服务器,从而实现显著的性能提升——这是现代ML工作负载的"一次编写,到处运行"形式。

7.0版本带来了多项架构改进。后端现在使用外部函数与内存(FFM)API替代Java原生接口(JNI)。实验性的JVM编译器接口(JVMCI)依赖项也已移除。据团队介绍,TornadoVM现在通过"反射+ASM+Unsafe层"获取所有编译器元数据,这是所有支持的JDK(21、25、26和27)的统一路径。

该版本还通过优化的CUDA后端深化了与Nvidia生态系统的集成。这包括对cuTile编程模型(通过新的TileContext)的支持,以及直接在TornadoVM TaskGraphs中调用CUDA库(如cuBLAS和CUTLASS)的能力。开发者可以根据性能和可移植性需求,将JIT生成的内核替换为CUDA库调用,或两者结合使用。同样,TornadoVM通过混合API再次为Apple的MXL库添加了相同功能。最后,新增了对多GPU执行的支持。

并非所有Java计算都能从卸载中受益。最佳候选是数据并行工作负载,例如没有迭代间依赖关系的循环,因为它们的迭代可以在加速器上并行运行。

TornadoVM 近期版本的目标之一是创建一个符合习惯的 JVM 环境,用于访问 Nvidia 针对不同硬件平台优化的库。目标是让 Java 开发者能够利用线性代数、快速傅里叶变换(用于信号分析)、深度神经网络以及针对稀疏矩阵的手工优化矩阵乘法等能力。TornadoVM 已经与 Quarkus、Lang4j、Flink、Spring AI 等库集成,也可通过 SDKMan 获取。

例如,考虑 Apache Flink 与 TornadoVM 的集成——核心思想是开发者像平常使用 Table API 那样编写标准查询。通过配置标志位可指示该查询可能在 GPU 上加速执行。

当计算到达任务管理器时,框架会检查执行节点是否具备可用 GPU,如果具备,将连接到库提供方——该提供方会分析查询的中间表示(IR),判断计算是否适合在 GPU 上执行。

总体而言,TornadoVM 为 Java 程序员提供了四种编程 Nvidia GPU 的方式:首先,平行 API 本质上只是一个注解,用于标注循环并为编译器提供提示,表明该循环可能被并行化。这种简单 API 长期来看无法满足生产应用的性能需求,因此增加了额外 API,如内核上下文 API 和前述的 TileContext。

随 7.3 版本发布,TornadoVM 团队推出了 jitLLM v2.0,这是基于 TornadoVM 构建的下一代 Java AI 推理引擎。团队将 jitLLM 定位为在性能上直接与 llama.cpp 和 Ollama 竞争的工具,并以单个 JAR 文件形式提供。

TornadoVM 和 jitLLM 正通过 Beestream.ai 进行商业化,这是由 TornadoVM 团队创立的衍生公司。

更多详情请访问 TornadoVM 官网,也可参阅 Devoxx Belgium 最近的视频,包括:"通过 TornadoVM 的混合 API 从 Java 访问 NVIDIA 生态系统"。

作者信息主容器

关于作者

章节标题

每个作者信息主容器

#### Ben Evans

显示更多

显示更少

#### 本内容属于 Java 主题

##### 相关主题:

  • 开发
  • 架构与设计
  • AI、ML 与数据工程
  • Llama3
  • Java
  • GPU
  • 相关编辑内容
  • 相关赞助商 AI 的物理限制:AI 如何重塑数据中心
  • 相关赞助商 PostgreSQL 为时间序列规模而生 无需牺牲性能即可使用 PostgreSQL 处理海量时间序列数据。了解 Tiger Data 如何实现高速数据摄入、快速查询和可扩展存储。了解更多。

InfoQ 新闻通讯

每周五汇总 InfoQ 最新内容,每周二发送。加入超过 25 万名高级开发者的社区。查看示例

我们保护您的隐私。