GPUでJavaプログラムを実行する

GithubにはRootbeerコンパイラーのソースコードがあり、GPU上でほぼすべてのJavaコードを実行できます。また、JavaプログラムをCPU / GPUのフラグメントに簡単に分割できます。

コンパイラはMITライセンスの下で公開されており、厳密なテストを受けており、使用に非常に適しています。 著者によると、これはCUDAプラットフォームで最も高度なJavaバイトコードトランスレーターです。 どうやら、OpenCL もサポートされています。

このプログラムの作者は、シラキュース大学の教師であるフィルプラットゼリガです。

GPUには魔法がなく、GPUの一部のプログラムはCPUよりもはるかに遅いことを明確にする必要があります。 もう1つは、プログラムが多数の並列スレッドを開始できるかどうかです。 これを行うには、大量並列処理の最適化を行う特別なアルゴリズムを作成する必要があります。

Javaプログラムに並列性がある場合、Rootbeerはそれを自動的に検出します。 この場合、特定のタスクでは、生産性の向上は数十倍になります。 たとえば、 テスト中、Javaの4096x44096密行列とRootbeer 乗算は、FFTではなく67倍、54倍加速されました。

Rootbeerは、Java Sootバイトコードの静的分析と変換のためのツールを使用します。

コンパイラでサポートされていないJava関数のリスト:ガベージコレクター、ネイティブメソッド、リフレクション(リフレクション)、動的メソッド呼び出し。

Source: https://habr.com/ru/post/J149552/


All Articles