阿里云迎来最新「飞天发布时刻」,多场景AI应用开箱即用,精准适配,开启体验极简! 了解详情
写点什么

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

评论

发布
暂无评论

前端一面手写面试题总结

helloworld1024fd

JavaScript 前端

一天吃透MySQL锁面试八股文

程序员大彬

MySQL 面试

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript 前端

架构训练营模块四作业

null

【网络安全必备知识】本地提权漏洞分析

网络安全学海

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

极客时间运维进阶训练营第十二周作业

Starry

DockQuery | 基于E-R图的数据建模功能使用实践

BinTools图尔兹

数据建模 信创 #数据库

Polygon马蹄链质押DApp开发合约部署案例

薇電13242772558

智能合约 dapp

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript 前端

PyTorch深度学习实战 | 深度学习框架(PyTorch)

TiAmo

深度学习 PyTorch

非侵入式入侵 —— Web缓存污染与请求走私

vivo互联网技术

CDN

Matlab常用图像处理命令108例(四)

timerring

图像处理

使用C++ template进行多厂商接口的适配

老王同学

c++ 模板

助力白帽成长 百度安全2022 BSRC年度盛典圆满收官

Geek_283163

百度 #百度#

【OpenHarmony设备开发】修改屏幕 DPI(像素密度)

离北况归

OpenHarmony

京东小程序CI工具实践

京东科技开发者

小程序 ci 开发 代码 企业号 3 月 PK 榜

被问了n遍怎么把FB视频无水印下载到手机相册!现在双手奉上教程!

frank

facebook #Facebook

8年服务百万客户,这家SaaS公司是懂云原生的

科技热闻

OpenHarmony NDK工具(上)

离北况归

OpenHarmony

OpenHarmony NAPI 类对象导出及其生命周期管理(上)

离北况归

OpenHarmony

OpenHarmony编译固件新增支持Ubuntu22.04平台

离北况归

OpenHarmony

OpenHarmony内核学习[1]--单独编译OpenHarmony标准系统内核

离北况归

OpenHarmony

@所有人,优秀前端都应该具备的开发好习惯

引迈信息

前端 低代码 开发

京东前端手写面试题集锦

helloworld1024fd

JavaScript 前端

图解Redis,谈谈Redis的持久化,RDB快照与AOF日志

小小怪下士

Java redis 程序员 后端

C++模板元编程的两个例子

老王同学

c++ 模板元

OpenHarmony NAPI 类对象导出及其生命周期管理(下)

离北况归

OpenHarmony

ExpandableListView的基本使用

芯动大师

Adapter ExpandableListView 可折叠的列表

如何规避MyBatis使用过程中带来的全表更新风险

京东科技开发者

数据库 mybatis 代码 代码规范 企业号 3 月 PK 榜

开源的未来:启动 Open100

开源雨林

社区 开源软件 商业化

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