GPU上的Java:直接在GPU上使用普通Java完成方法

时间:2011-06-23 21:15:43

标签: java gpu gpu-programming

首先:是否可以使用Java并让它(部分)运行或使用GPU? 如果可能,是否可以使用普通的Java语法而不使用特殊的cuda或opencl语法?

我想只需要使用我的编码java源代码,让它在GPU上进行尽可能小的更改。

我非常感谢代码示例。

5 个答案:

答案 0 :(得分:10)

考虑Aparapi http://aparapi.github.io/。它尝试在运行时将字节码转换为OpenCL。因此,您可以使用纯Java为GPU编码。

完全披露,我是Aparapi首席开发人员。

答案 1 :(得分:9)

Rootbeer GPU编译器支持在GPU上运行任意Java代码。它比Aparapi更全面。 Rootbeer支持任何类型的arbirary对象图。

它刚刚在我的github帐户上发布了开源: https://github.com/pcpratts/rootbeer1

答案 2 :(得分:6)

有几个Java绑定到CUDA和OpenCL(jcuda.orgjocl.org,还有一些叫做jocl,但这些只是让CUDA或OpenCL代码运行的方法。 GPU通过Java,并要求您专门为此编写代码。我不认为只需对代码进行微小的更改就可以在GPU上运行任意多线程Java程序。

您希望在GPU上运行Java程序做什么?

您必须考虑到GPU的架构与CPU的架构完全不同; GPU上的内核不是通用内核,可以做任何事情并独立工作,就像在Intel x86 CPU中一样。要真正利用GPU的特定SIMD架构,您的代码必须考虑到该架构。

答案 3 :(得分:2)

查看http://code.google.com/p/java-gpu/

它将纯Java代码编译到内核中,只使用注释。

答案 4 :(得分:2)

TornadoVM是OpenJDK的一个插件,允许程序员在异构硬件上自动运行Java程序。 TornadoVM当前以OpenCL兼容设备为目标,并在多核CPU,GPU(NVIDIA和AMD),Intel集成GPU和Intel FPGA上运行。 在这里看看:https://github.com/beehive-lab/TornadoVM