4

CUDAしかし、APIにアクセスするためにJavaを使用するのを見てきました。

  • (おそらくCUDA APIを使用して)GPUでJVM全体を実行する実装はありますか?
  • または、これを行う計画はありますか?
  • もしそうなら、パフォーマンスはクライアントまたはサーバーアプリケーションの両方を実行するのに十分ですか?
  • 最も重要なのは、JVMをGPUで実行できなくする問題は何ですか?

私がここで見ている利点は、まともなNVidia GPUを購入し、CPUで多くの処理を行わなくてもJavaアプリケーションを実行できるため、他の使用のためにCPUを節約できることです。

ただし、これが不可能な場合は、CUDAをサポートするためにJavaアプリケーションを再コンパイルする必要なしに、JVMにCUDAを使用してGPUに処理をオフロードさせる方法はありますか?追加しVM argumentsたいですか?

4

2 に答える 2

6

あなたが抱えている主な問題は、CUDAが回も単純なことをするように設計されていることです。たとえば、通常、すべてのコアで1つのメソッドを実行します。異なるコアで異なるコードを実行することはできません。これは、一部のコードをCUDAプロセッサで実行するように最適化できなかったことを意味するものではありません。たとえば、ベクトル演算ですが、GPUでJVM全体を実行することは、設計された目的ではありません。

ところで:CUDAプロセッサは、ほとんどのサーバーが時間の大部分を費やすIOをサポートしていません。たとえば、ディスクおよびネットワークへの読み取り/書き込み。

于 2012-07-15T06:57:15.677 に答える
0

ただし、複数のノードで複数のトラバーサルを実行できるため、CUDAでグラフトラバーサルのようなものを実装できます。ここで、jvmがCUDAの組み込みをサポートしている場合、並列処理を実行できる単一のマシン内でmap-redと同様のプログラムを使用できます。これは、SPARQLクエリを実行するグ​​ラフベースのデータベースにとって非常に有利です。

于 2013-08-01T09:45:34.457 に答える