Running JVM on CUDA

I have seen using Java to access the CUDA api, however

  • Is there any implementation that runs the entire JVM in the GPU (possibly using the CUDA API)?
  • Or will there be any plans to do this?
  • If so, will there be sufficient performance to run both client and server applications?
  • Most importantly, what problems can lead to the inability to run the JVM in the GPU?

The advantage I see here is that I can buy a decent NVidia GPU and be able to run a Java application without much processing, thereby saving the processor for other uses.

However, if that would not be possible, is it possible to force the JVM to disable GPU processing using CUDA without having to recompile the Java application to support CUDA? I mean add VM arguments ?

+4
source share
2 answers

The main problem you are facing is that CUDA is for many more. For instance. he usually uses one method for each core. You cannot have different cores with different code. This does not mean that some code cannot be optimized to run on a CUDA processor. for example, vector operations, but running the entire JVM on the GPU is not what it was intended for.

BTW: CUDA processors do not support IO, where most servers spend most of their time. e.g. read / write to disk and network.

+5
source

But we can have something like a graph traversal implemented in CUDA, since interlaced traversals can be performed on multiple nodes. Here, if jvm has support for enabling CUDA, we can have programs similar to map-red within the same machine, which can do parallel processing. This is a big advantage for graphical databases that run SPARQL queries.

0
source

All Articles