-6

我想使用 GPU 编程来提高 JAVA 程序的性能。在互联网上进行了一些研究后,我发现如果我使用 jcuda 或 jocl 是可能的,但问题是在这两种情况下内核代码都必须用 C 编写。并且我希望每个线程执行的算法用 C 语言编写非常复杂(它会进行一些计算以了解两架飞机之间是否会发生事故),因此需要面向对象的语言。

有解决办法吗?还是我们必须将整个项目翻译成 C++?

谢谢你的帮助 !

4

1 回答 1

2

简单的规则:如果它需要面向对象,它就会失去它的性能。即使您使用的是 GPU 加速。

我建议您确定程序代码的并行部分。您不必将所有算法传输到 GPU 设备。是否有并行化的任何方面,例如填充的数组或网格?

你的模拟消息交换是什么类型的?它是显式的,即围绕内核发送消息,还是通过同步隐式发送。

您至少应该向我们提供有关您的算法及其数据布局的更多信息。

于 2015-03-24T16:34:19.913 回答