写点什么

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:008568

评论

发布
暂无评论

week4作业

强哥

极客大学架构师训练营

Week4作业

王志祥

极客大学架构师训练营

第四周课后作业

iHai

极客大学架构师训练营

week4 总结

Gavin

互联网系统架构的挑战和变迁

破晓_dawn

架构师训练营-week4-学习总结

晓-Michelle

极客大学架构师训练营

总结

chenzt

Week4: 学习总结

Geek_165f3d

架构师训练营第四周 - 总结

桔子

典型的大型互联网应用系统的技术方案

极客大学架构师训练营 互联网架构

大型互联网应用系统技术和手段

纯纯

架构师训练营(第 4 周作业)

李德政

极客大学架构师训练营

架构师训练营 -Week 04

华乐彬

学习 极客大学架构师训练营

架构师 0 期 | 互联网巨头不是一天练成的

刁架构

极客大学架构师训练营

思考

纯纯

从维基百科架构看互联网架构

破晓_dawn

架构师训练营 第四周 作业

CR

极客大学架构师训练营

大型互联网系统使用的技术方案

stars

极客大学架构师训练营 系统架构 淘宝架构 第四次作业

John(易筋)

极客时间 系统架构 极客大学 极客大学架构师训练营 淘宝架构

大型互联网产品架构技术体系梳理

lei Shi

【架构课作业 - 第四周】

Nelson

极客大学架构师训练营

架构师训练营第四周 - 作业

桔子

第四周作业一

慵秋

极客大学架构师训练营

大规模复杂系统如何架构(二)?

李小匪

架构 架构师

架构师训练营--第四周作业

_MISSYOURLOVE

极客大学架构师训练营 第四周作业

【第四周】学习总结——架构演进、模式、技术和案例分析

三尾鱼

极客大学架构师训练营

Week4:课后作业

Geek_165f3d

架构师训练营第四课作业

曾祥斌

案例讲解,设计模式定义

秤须苑

架构师第四周

Tulane

week4 作业

Gavin

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