用gpu加速java应用

用gpu加速java应用,java,gpu,hardware-acceleration,Java,Gpu,Hardware Acceleration,我有一个用java编写的程序,它执行很高的计算,运行的算法时间复杂度为O(logn)。我想知道,如果我得到一个强大的GPU将在程序的执行时间有所不同?我需要修改代码还是只需设置新的GPU并运行程序?请参阅类似的其他答案。但基本上,它可以归结为如果你有一千台超慢速计算机,你的程序是否会运行得更快。时间复杂性并不能真正反映出你的问题能做多少。随着处理器的增加,二进制搜索logn不会更快。但是,如果您对相同的数据进行一百万次二进制搜索,那么可能。Java本身没有使用GPU的功能。但是,如果您使用像Op

我有一个用java编写的程序,它执行很高的计算,运行的算法时间复杂度为O(logn)。我想知道,如果我得到一个强大的GPU将在程序的执行时间有所不同?我需要修改代码还是只需设置新的GPU并运行程序?

请参阅类似的其他答案。但基本上,它可以归结为如果你有一千台超慢速计算机,你的程序是否会运行得更快。时间复杂性并不能真正反映出你的问题能做多少。随着处理器的增加,二进制搜索logn不会更快。但是,如果您对相同的数据进行一百万次二进制搜索,那么可能。

Java本身没有使用GPU的功能。但是,如果您使用像OpenCL这样的库,它可以从Java调用。您可以用Java编写并行程序。然而,你尝试做的不是一项简单的任务,需要经验和耐心。这里有一个问题应该可以帮助你:我的想法可能是重复在GPU上做Bcrypt哈希,因为它在CPU上非常消耗资源。是的,我的意思是,运行数百万个logn,我的算法实际上是红黑树。这意味着它保证以时间复杂度O(logn)运行。在我做了研究之后,如果我没有错的话,我需要使用Java来开发CUDA内核的使用,因为传统的代码不会使用CUDA内核,我想操作系统应该为您做这项工作,但我发现它们没有!你可以很容易地完成多核版本。假设没有插入任何内容,并因此更改内存。这当然是可行的,但确保所有事情都正确同步有时是一件痛苦的事情。