哪些Java代码可以移动到GPU?

时间:2012-08-12 18:11:12

标签: java gpu gpu-programming rootbeer

使用框架rootbeer可以实现Java的GPU编程。

哪个Java代码应该用于rootbeer,哪个代码最好在Java VM self中运行?

或者其他:哪些代码会产生更多的开销而没有任何意义呢?

4 个答案:

答案 0 :(得分:3)

这有点愚蠢的说法,但显而易见的答案是“对于GPU优于CPU的问题”。现代GPU有超过一千个内核,但内存相对较少,所以一般来说,这意味着lends itself well to parallelization并且不会占用太多内存。

-G。巴赫在评论中提到了对加密内容的暴力攻击,这是一个很好的例子。科学模拟是另一个很好的例子,事实上,几年前,一些研究机构(特别是NASA)拥有Playstation 3的运行模拟集群。维基百科关于该技术的GPGPU计算lists several applications的文章。

答案 1 :(得分:3)

除了其他答案之外:还有一些Java功能不支持rootbeer jet翻译。

  1. 原生方法
  2. 反射
  3. 动态方法调用
  4. 在监视器内睡觉。
  5. 垃圾收集(!)
  6. 您应该避免使用这些功能的代码。

    Rootbeer的更新正在生产中,以提供垃圾收集和其他缺少的Java功能。

答案 2 :(得分:2)

要获得GPU的加速,您希望每个数据元素有大量计算,因为数据传输速度很慢。您通常需要在GPU上运行2或3个嵌套for循环,并且至少有1000个线程。

答案 3 :(得分:1)

当前GPU的一个局限是它可以为每个核心加载一个简单的方法并立即执行它。通用CPU可以加载更多代码和数据,并可以独立完成。

有一个矢量样式代码在GPU上可能更快,我可以看到它有一天是一个选项,但大多数代码(按体积计算,如果没有处理能力)将在CPU上。