2012-09-08 10 views
5

私はOpenCLカーネルを作成していますが、ループにはいくつかの障壁があります。私はCPU(8-core FX8150)でカーネルをテストしました。その結果、これらの障壁によって実行速度が50〜100倍に低下しています(マルチスレッド+ CyclicBarrierを使用してJavaでカーネルを再実装することでさらに検証しました) 。私は、理由が障壁であると思うと、本質的にCPUがアウト・オブ・オーダー実行を利用して停止するので、GPUで同じ程度のスピード低下を観察すると少し気になります。私はいくつかの正式な文書をチェックし、少しの周りでグーグルが、このトピックで利用可能な情報はほとんどありません。最新のGPU(Fermi/Evergreenなど)はアウトオブオーダー実行をサポートしていますか?

+0

もちろんです。あなたは時間のかかるfpuの計算をコードを通して異質に分割する必要があるので、整数の計算を行うことができます。同じ時間浮かんでいる間 –

+0

@tuğrulbüyükışıkありがとう。これを確認する正式な文書を私に指摘することはできますか? – aaronqli

答えて

7

現在の最先端のGPUの重複は、インオーダーパイプラインプロセッサです。 GPUは、異なるワープ(波面)からの命令をインタリーブすることによって効果的にパイプラインを満たします。比較すると、CPUはアウト・オブ・オーダーの投機実行を使用してパイプラインを埋める。分離されたパイプラインを有するALUおよびSFUのような異なる機能ユニットが存在する。しかし、命令の依存性がワープをストールすることに注意してください。 GPUでの命令依存性解決の詳細については、this NVIDIA patentを参照してください。

2

NVIDIAの次世代
CUDA計算とグラフィックスアーキテクチャ、コードネーム「フェルミ」: を切り替える

Nvidia GigaThread Engineは(5ページで)の能力を持っている

  • 10倍の高速化アプリケーションコンテキスト
  • 並行カーネル実行
  • スレッドブロック実行中エラー
  • デュアルメモリ転送エンジンを

Evergreen has SIMD capabilities and has a chance outperform some fermi but i dont know about oooe of it. There is also "local atomic add" upper hand of HD 7000 series compared to GTX 600 series (nearly 10x faster)

関連する問題