是否可以在 Java 中进行 GPU 编程? 我的意思是不使用 native 库。
当我们切换到 gpu 时,可以期待多少性能提升?
编辑:
我不是在看游戏编程,我想做的是硬核数字运算。
最佳答案
支持。 Java3D、LWJGL 和 JOGL 支持 GLSL (OpenGL 着色语言)。
编辑:
如果您想在 GPU 上进行平台中立的通用计算,您可以使用 OpenCL。尽管功能集和执行环境千差万别,但该框架使您可以编写对所有处理单元一视同仁的代码。不过,与 Java 相比,这是非常低级的编程。
看来您的理想是使用 OpenCL 支持编写的 JVM。在网上搜索,我发现对这个想法有点兴趣,但没有任何主要支持的证据。
how much of a performance improvement can one expect
这取决于您运行的系统以及您正在处理的数据类型(矩阵和 vector 数学在 GPU 上非常有效)。在像我这样具有两个强大的 GPU 和一个适度的单核 CPU 的系统上,您可能会获得一些重大 yield 。但是,在具有中等 GPU 和四核 CPU 的计算机上,性能提升可能难以克服开销。
关于Java GPU 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384970/