面向 Java 的开源异构 GPU 编程框架 TornadoVM 发布 7.3。这一版的重点是底层重构与后端深化。
换掉 JNI 的意义
用 FFM API(Foreign Function and Memory API)替代 JNI。JNI 是 Java 调本地代码的老通道,写过的人都知道痛:类型映射繁琐、崩溃直接带走 JVM、调试基本靠猜。FFM 是 Java 官方的新一代外部函数与内存访问接口,安全边界更清晰,出错时也不会静默破坏堆。
对 TornadoVM 这类要频繁和 GPU 驱动打交道的框架,这是结构性改善。
CUDA 后端
支持 cuTile,可以直接调用 cuBLAS 与 CUTLASS。意思是矩阵乘这类运算可以直接落到 NVIDIA 优化过的库上,不用自己写 kernel。这对科学计算和推理场景是实打实的性能收益。
多 GPU 执行
一台机器上多张卡可以并行跑任务。此前要自己做进程级拆分,现在框架层支持。
附带 jitLLM v2.0
一个 Java 写的 AI 推理引擎,定位对标 llama.cpp 与 Ollama。用 Java 做推理引擎的团队不多,这个项目的价值在于「让 JVM 生态能直接跑模型」,不用引入 Python 运行时。
适用场景
已有的 Java 大数据或科学计算系统,想加速其中计算密集的部分,又不想把整套东西重写成 Python 或 C++。这类「增量加速」需求在金融、仿真、图像处理里很常见。
现实的坑
异构编程的复杂度不会因为框架而消失。内存拷贝、数据布局、kernel 粒度,这些还是得懂。另外驱动版本与 CUDA 版本的匹配,是这类项目最常见的故障源。
建议
先在单机上用一个小 benchmark 验证加速比。如果收益不到 30%,维护两套代码路径的成本可能不值得。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。