4

我见过使用 Java 来访问CUDAapi,但是

  • 是否有任何实现在 GPU 中运行整个 JVM(可能使用 CUDA API)?
  • 或者,会有这样做的计划吗?
  • 如果是这样,性能是否足以同时运行客户端或服务器应用程序?
  • 最重要的是,哪些问题会使 JVM 无法在 GPU 中运行?

我在这里看到的优势是,我可以购买一个不错的 NVidia GPU,并且能够在 CPU 上不进行太多处理的情况下运行 Java 应用程序,从而节省 CPU 用于其他用途。

但是,如果这不可能,是否有任何方法可以强制 JVM 使用 CUDA 将处理卸载到 GPU,而无需重新编译 Java 应用程序以支持 CUDA?我的意思是喜欢添加VM arguments

4

2 回答 2

6

您遇到的主要问题是 CUDA 旨在多次执行简单的操作。例如,它通常在每个核心上运行一种方法。您不能让不同的内核运行不同的代码。这并不意味着某些代码无法优化以在 CUDA 处理器上运行。例如向量操作,但在 GPU 上运行整个 JVM 并不是它的设计目的。

顺便说一句:CUDA 处理器不支持 IO,这是大多数服务器花费大部分时间的地方。例如读取/写入磁盘和网络。

于 2012-07-15T06:57:15.677 回答
0

但是我们可以在 CUDA 中实现类似图遍历的东西,因为可以在多个节点中完成多个遍历。在这里,如果 jvm 支持合并 CUDA,我们可以在可以进行并行处理的单个机器中拥有类似于 map-red 的程序。这对于执行 SPARQL 查询的基于图的数据库来说具有很大的优势

于 2013-08-01T09:45:34.457 回答