6

ループ内にいくつかのバリアを含む OpenCL カーネルを作成しています。CPU (8 コア FX8150) でカーネルをテストしたところ、これらのバリアによって実行速度が 50 ~ 100 倍低下したことがわかりました (マルチスレッド + CyclicBarrier を使用して Java でカーネルを再実装することにより、これをさらに検証しました)。 . その理由は、バリアが基本的に、アウトオブオーダー実行を利用して CPU を停止したためだと思われるため、GPU で同じ程度の速度低下が見られるかどうか少し心配です。いくつかの公式文書を確認し、少しグーグルで検索しましたが、このトピックに関する情報はほとんどありません.

4

2 に答える 2

8

Current state-of-the art GPUs are in-order pipelined processor. GPUs fill the pipeline effectively by interleaving instructions from different warps (wavefronts). In comparisons, CPUs use out-of-order speculative execution to fill the pipeline. There are different functional units like ALUs and SFUs which have separated pipelines. But notice that instruction dependency stalls the warp. For more information on instruction dependency resolving on GPUs refer to this NVIDIA patent.

于 2012-09-10T12:32:47.053 に答える
2

NVIDIAの次世代
CUDAコンピューティングおよびグラフィックスアーキテクチャ、コードネーム「Fermi」:

Nvidia GigaThreadエンジンには次の機能があります(5ページ)

  • 10倍高速なアプリケーションコンテキストスイッチング
  • カーネルの同時実行
  • 順序が正しくないスレッドブロックの実行:)
  • デュアルオーバーラップメモリ​​転送エンジン

EvergreenにはSIMD機能があり、一部のfermiを上回る可能性がありますが、そのoooeについてはわかりません。GTX600シリーズと比較してHD7000シリーズの「ローカルアトミックアド」の優位性もあります(ほぼ10倍高速)

于 2012-09-09T05:49:46.080 に答える