大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

GPULlama3.java 发布,将 GPU 加速的 LLM 推理能力带到了 Java 平台

  • 2025-06-25
    北京
  • 本文字数:1319 字

    阅读完需:约 4 分钟

大小:1.94K时长:00:00
GPULlama3.java发布,将GPU加速的LLM推理能力带到了Java平台

曼彻斯特大学蜂巢实验室发布 GPULlama3.java,首个支持 GPU 加速的 Java 原生 Llama3 实现。该项目利用 TornadoVM,让开发者无需编写 CUDA 或原生代码即可实现 GPU 加速的大语言模型推理,这可能会彻底改变 Java 开发者在企业环境中开发 AI 应用的方式。


GPULlama3.java 的核心是 TornadoVM,一个创新的异构编程框架,扩展了 OpenJDK 和 GraalVM,能够自动将 Java 程序加速运行在 GPU、FPGA 和多核 CPU 上。与传统的 GPU 编程方法不同,传统方法要求开发者手动将代码重写为 CUDA 或 OpenCL 等低级语言,而 TornadoVM 能够在保持所有代码为纯 Java 的情况下实现 GPU 加速。


TornadoVM 的文档提到,该系统扩展了 Graal JIT 编译器,添加了专门的后端,这些后端在运行时将 Java 字节码转换为 GPU 兼容的代码。当使用注解(如 @Parallel)标记一个方法时,TornadoVM 的编译管道会将标准 Java 字节码通过 Graal 中间表示进行转换,应用 GPU 特定的优化,并生成特定的目标代码,无论是用于跨平台兼容的 OpenCL C、用于 NVIDIA GPU 的 PTX 汇编代码,还是用于 Intel 图形的 SPIR-V 二进制代码。


// TornadoVM Task-Graph API example from documentation
TaskGraph taskGraph = new TaskGraph("computation")
.transferToDevice(DataTransferMode.FIRST_EXECUTION, data)
.task("process", MyClass::compute, input, output)
.transferToHost(DataTransferMode.EVERY_EXECUTION, output);
TornadoExecutionPlan executor = new TornadoExecutionPlan(taskGraph.snapshot());
executor.execute();
复制代码


TornadoVM 编程指南详细阐述了开发者如何利用硬件无关的 API 在各种硬件加速器上以相同的方式运行相同的 Java 代码。TornadoVM 运行时会自动处理所有特定于设备的优化、内存管理和数据传输等问题。


从 GPULlama3.java 代码库可以看到,该项目支持三种主要后端,能够在不同硬件上执行:

  • NVIDIA GPU:通过 OpenCL 和 PTX 后端提供全面支持;

  • Intel GPU:包括 Arc 独立显卡和集成 HD Graphics,通过 OpenCL 后端提供支持;

  • Apple Silicon:通过 OpenCL 支持 M1/M2/M3(尽管 Apple 已经弃用了 OpenCL,转而支持 Metal)。


代码库指出,配置是通过命令行标志来处理的:

# Run with GPU acceleration (from project README)
./llama-tornado --gpu --verbose-init --opencl --model beehive-llama-3.2-1b-instruct-fp16.gguf --prompt "Explain the benefits of GPU acceleration."
复制代码


GPULlama3.java 实现利用了现代 Java 特性,如文档中所述:

  • 需要 Java 21+:支持 Vector API 和 Foreign Memory API;

  • 支持 GGUF 格式:用于单文件模型部署;

  • 支持量化:支持 Q4_0 和 Q8_0 格式,以减少对内存的需求。


该项目基于 Mukel 的原始 Llama3.java,通过集成 TornadoVM 添加了 GPU 加速功能。

GPULlama3.java 加入了其他 Java LLM 项目,包括:

  • JLama:一个具有分布式能力的现代 Java LLM 推理引擎;

  • Llama3.java:原始的纯 Java 实现,专注于 CPU 优化。


该项目是开源的,并且可以在 GitHub 上访问,它附带了文档和示例,对于有兴趣探索 Java GPU 加速 LLM 推理的开发者来说,这是一个不错的入门资源。


原文链接

https://www.infoq.com/news/2025/06/gpullama3-java-gpu-llm/

2025-06-25 11:008961

评论

发布
暂无评论

Go语言开发小技巧&易错点100例(二)

闫同学

go语言 11月月更 go开发

业务监控设计主要关注点

穿过生命散发芬芳

业务监控 11月月更

【C 语言】const 关键字

謓泽

11月月更

2022HDC|华为阅读:探索阅读体验新变革 助力阅读生态创新发展

最新动态

星闪:咫尺之间,联接智能世界

脑极体

数据湖(十七):Flink与Iceberg整合DataStream API操作

Lansonli

数据湖 11月月更

数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表

Lansonli

数据湖 11月月更

Fastjson最想版本RCE漏洞【漏洞分析】

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

计算机网络:差错控制

timerring

计算机网络 11月月更

HDC 2022 Day2精彩速递:开发者齐聚松山湖,深度体验鸿蒙开发套件

最新动态

2022华为开发者大会:华为阅读人-车-家一键流转,实现全场景数字阅读新增长

最新动态

python小知识-并发编程(1)

AIWeker

Python 人工智能 python小知识 11月月更

一款设计和模拟数字逻辑电路的LogiSim工具

芯动大师

集成电路 Verilog 11月月更 logisim 模电与书店

2022-11-05:给定一个逆波兰式,转化成正确的中序表达式。要求只有必要加括号的地方才加括号。

福大大架构师每日一题

算法 rust 福大大

华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动

HarmonyOS SDK

hdc HMS Core

HDC2022 携手共创鸿蒙生态 增长解决方案焕新升级构筑商业增长闭环

叶落便知秋

峰会实录 | 基于StarRocks和腾讯云EMR构建云上Lakehouse

StarRocks

数据库

Mac部署spark2.4.4

程序员欣宸

大数据 spark 11月月更

云栖探馆!云小宝首秀遇上老司机小龙,猜猜谁赢了?

OpenAnolis小助手

龙蜥社区 2022云栖大会 小龙 云小宝 开源活动

从3开始,在业务系统中增加分页功能

闫同学

go语言 11月月更 后端系统

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.1版已发布

JackJiang

即时通讯 MobileIMSDK im开发 开源im

Sonatype Nexus 如何把多仓库合并在一起

HoneyMoose

【C语言】char 关键字

謓泽

11月月更

HDC2022 携手共创鸿蒙生态 增长解决方案焕新升级构筑商业增长闭环

最新动态

既要技术制胜,也要体验为王:今天我们需要怎样的WLAN?

脑极体

数据库审计的四种类型

阿泽🧸

数据库审计 11月月更

计算机网络:流量控制与可靠传输机制

timerring

计算机网络 流量控制 11月月更 可靠传输

架构实战营模块 4 作业

陌生流云

#架构实战营

永续合约交易所的开发有哪些特征?

W13902449729

合约交易所开发 区块链交易所开发

我没想到,做IT还有感动众生的机会

明道云

数据湖(十八):Flink与Iceberg整合SQL API操作

Lansonli

数据湖 11月月更

GPULlama3.java发布,将GPU加速的LLM推理能力带到了Java平台_编程语言_A N M Bazlur Rahman_InfoQ精选文章