5

フレームワークrootbeerを使用すると、Java の GPU プログラミングが可能になります。

rootbeer にはどの Java コードを使用する必要があり、Java VM 自体で実行するのに適しているのはどのコードですか?

またはその他: より多くのオーバーヘッドを生成し、意味をなさないコードはどれですか?

4

4 に答える 4

3

他の回答に加えて、rootbeer jet による変換がサポートされていない Java 機能もいくつかあります。

  1. ネイティブメソッド
  2. 反射
  3. 動的メソッド呼び出し
  4. モニターの中で寝ています。
  5. ガベージコレクション(!)

これらの機能を使用するコードは避ける必要があります。

Rootbeer の更新は、ガベージ コレクションやその他の欠落している Java 機能を提供するために実稼働中です。

于 2012-08-12T20:37:14.260 に答える
3

ちょっとばかげた言い方ですが、「GPU が CPU よりも優れている問題に対して」というのが明白な答えです。最近の GPU は 1,000 個を超えるコアを備えていますが、メモリは比較的少ないため、一般的に、これは並列化に適し、メモリをあまり消費しないものを意味します。

G. Bach はコメントで仮想通貨に対するブルート フォース攻撃について言及しましたが、これは良い例です。科学シミュレーションも良い例です。実際、数年前、いくつかの研究機関 (特に NASA) がプレイステーション 3 の実行中のシミュレーションのクラスターを持っていました。ウィキペディアの GPGPU コンピューティングに関する記事には、この技術のいくつかのアプリケーションがリストされています。

于 2012-08-12T19:10:00.793 に答える
2

GPU で高速化するには、データ転送が非常に遅いため、データ要素ごとに多くの計算を行う必要があります。通常、少なくとも 1000 スレッドの GPU で実行される 2 つまたは 3 つのネストされた for ループが必要です。

于 2012-08-14T09:12:37.697 に答える
1

現在のGPUの制限の1つは、すべてのコアに1つの単純なメソッドをロードして、一度に実行できることです。汎用CPUは、より多くのコードとデータをロードして、それらを独立して実行できます。

GPUでより高速になる可能性のあるベクトルスタイルのコードがあり、それがいつの日かオプションであることがわかりますが、ほとんどのコード(処理能力ではない場合はボリュームで)はCPUにあります。

于 2012-08-12T19:21:57.713 に答える