TornadoVM是一个创新的开源项目,旨在为Java程序提供高效的异构计算能力。作为OpenJDK和GraalVM的插件,TornadoVM允许程序员自动将Java程序运行在各种异构硬件上,包括多核CPU、专用GPU(英特尔、NVIDIA、AMD)、集成GPU(英特尔HD Graphics和ARM Mali)以及FPGA(英特尔和赛灵思)。
TornadoVM的核心优势在于它能够自动加速Java程序,而无需开发人员掌握复杂的异构编程知识。它提供了三个后端,可以生成OpenCL C、NVIDIA CUDA PTX汇编和SPIR-V二进制代码。开发人员可以根据需要选择安装和运行不同的后端。

多平台支持: TornadoVM可以作为多种JDK发行版的插件运行,包括GraalVM JDK 21、OpenJDK 21、Eclipse Temurin JDK 21等。
简单易用的API: TornadoVM提供了轻量级的API,使开发人员能够轻松表达任务级、数据级和流水线级的并行性。
单一源代码: 加速代码和主机代码可以共存于同一个Java程序中,无需分离编写。
多种并行编程模型:
@Parallel和@Reduce注解来表达并行性。动态重配置: TornadoVM能够在运行时进行实时任务迁移,自动选择最佳执行设备以提高性能。
广泛的应用领域: 已被用于加速机器学习、深度学习、计算机视觉、物理模拟、金融应用、计算摄影和信号处理等领域的应用。
TornadoVM的安装非常简便。在Linux和macOS系统上,可以使用自动安装脚本进行安装:
$ ./bin/tornadovm-installer --jdk jdk21 --backend opencl
开发者也可以选择手动从源代码安装或使用Docker镜像。
TornadoVM提供了两种主要的编程模型来表达并行计算:
public class Compute { private static void mxmLoop(Matrix2DFloat A, Matrix2DFloat B, Matrix2DFloat C, final int size) { for (@Parallel int i = 0; i < size; i++) { for (@Parallel int j = 0; j < size; j++) { float sum = 0.0f; for (int k = 0; k < size; k++) { sum += A.get(i, k) * B.get(k, j); } C.set(i, j, sum); } } } // ... 任务图和执行计划代码 ... }
public class Compute { private static void mxmKernel(KernelContext context, Matrix2DFloat A, Matrix2DFloat B, Matrix2DFloat C, final int size) { int idx = context.globalIdx; int jdx = context.globalIdy; float sum = 0; for (int k = 0; k < size; k++) { sum += A.get(idx, k) * B.get(k, jdx); } C.set(idx, jdx, sum); } // ... 任务图和执行计划代码 ... }
TornadoVM的一个重要特性是动态重配置,它能够在运行时进行实时任务迁移,以优化性能:
executionPlan.withDynamicReconfiguration(Policy.PERFORMANCE, DRMode.PARALLEL) .execute();
要在项目中使用TornadoVM,需要在Maven的pom.xml文件中添加以下依赖:
<repositories> <repository> <id>universityOfManchester-graal</id> <url>https://raw.githubusercontent.com/beehive-lab/tornado/maven-tornadovm</url> </repository> </repositories> <dependencies> <dependency> <groupId>tornado</groupId> <artifactId>tornado-api</artifactId> <version>1.0.6</version> </dependency> <dependency> <groupId>tornado</groupId> <artifactId>tornado-matrices</artifactId> <version>1.0.6</version> </dependency> </dependencies>
TornadoVM为Java开发者提供了一个强大而易用的工具,使他们能够轻松地利用异构计算资源来加速应用程序。通过自动化的代码生成和优化,以及灵活的编程模型,TornadoVM大大降低了异构编程的门槛,同时提供了出色的性能提升潜力。无论是科学计算、机器学习还是图形处理,TornadoVM都为Java应用程序开启了新的性能优化可能性。
随着异构计算在各个领域的重要性不断增加,TornadoVM作为连接Java生态系统和高性能异构硬件的桥梁,必将在未来的软件开发中扮演越来越重要的角色。开发者们可以通过TornadoVM,在保持Java语言优势的同时,充分发挥现代异构计算平台的强大性能。



阿里Qoder团队推出的桌面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众 号