我想使用GPU编程来提高JAVA程序的性能。在互联网上进行了一些研究后,我发现如果我使用jcuda或jocl是可能的,但问题是在这两种情况下,内核代码都必须用C编写。而且我希望每个线程执行的算法用C编写非常复杂(它会做一些计算来知道两架飞机之间是否会发生事故),所以有必要使用面向对象的语言。
有解决方案吗?还是必须将整个项目翻译成C++?
谢谢你的帮助!
简单规则:如果它需要面向对象,它就会失去性能。即使您正在使用GPU加速。
我建议您识别程序代码的并行部分。您不必将所有算法传输到GPU设备。是否存在视差的任何方面,例如填充的阵列或网格?
您的模拟消息交换是什么类型的?它是显式的,即围绕内核发送消息,还是通过同步隐式的。
你至少应该给我们更多关于你的算法及其数据布局的信息。