5

有了rootbeer框架,Java 的 GPU 编程成为可能。

哪些 Java 代码应该用于 rootbeer,哪些代码应该更好地在 Java VM 中运行?

或者其他:哪个代码产生更多开销并且没有意义?

4

4 回答 4

3

说起来有点傻,但显而易见的答案是“对于 GPU 优于 CPU 的问题”。现代 GPU 有超过一千个核心,但内存相对较少,所以一般来说,这意味着很适合并行化并且不会占用太多内存的东西。

G. Bach 在评论中提到了针对加密货币的暴力攻击,这是一个很好的例子。科学模拟是另一个很好的例子,事实上,几年前一些研究机构(尤其是 NASA)拥有 Playstation 3 的运行模拟集群。维基百科关于 GPGPU 计算的文章列出了该技术的几种应用。

于 2012-08-12T19:10:00.793 回答
3

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

  1. 本机方法
  2. 反射
  3. 动态方法调用
  4. 在显示器里面睡觉。
  5. 垃圾收集(!)

您应该避免使用这些功能的代码。

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

于 2012-08-12T20:37:14.260 回答
2

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

于 2012-08-14T09:12:37.697 回答
1

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

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

于 2012-08-12T19:21:57.713 回答