能否在Java中进行GPU编程?
我的意思是不使用本地库。
当我们切换到GPU时,可以期望多大的性能提升?
编辑:
我不是在寻找游戏编程,我想做硬核数字计算。
能否在Java中进行GPU编程?
我的意思是不使用本地库。
当我们切换到GPU时,可以期望多大的性能提升?
编辑:
我不是在寻找游戏编程,我想做硬核数字计算。
是的。Java3D,LWJGL和JOGL支持GLSL(OpenGL Shading Language)。
编辑:
如果您希望在GPU上进行平台中立的通用计算,可以使用OpenCL。这个框架允许您编写代码,将所有处理单元都视为相同,尽管功能集合和执行环境差异很大。但与Java相比,这是非常底层的编程。
看起来你理想的情况是一个支持OpenCL的JVM。在网上搜索,我发现了一些对这个想法的兴趣,但没有任何重要的支持证据。
有多少性能提升可以期待?
这取决于您运行的系统以及您正在处理的数据类型(矩阵和向量数学在GPU上非常高效)。您可能会在像我这样拥有两个强大GPU和适度单核CPU的系统上获得一些重大收益。然而,在一个配备适度GPU和四核CPU的计算机上,性能改进可能难以克服开销。
Rootbeer1刚刚在Github上发布:https://github.com/pcpratts/rootbeer1
使用Rootbeer,您可以使用几乎任何Java编程语言,除了以下内容:
这意味着您可以使用带有复合类型的任意对象图。
建议先检查一下rootbeer1,但在开始之前需要确保您拥有一个CUDA支持的显卡,并且已经完成了所有的NVIDIA设置等操作。
下载链接: 谷歌CUDA下载