2016-07-15 10 views
2

ワークアイテムとストリーミングプロセッサ(cudaコア)との関係は何ですか?私は、作業項目の数がコアの数を大幅に超えなければならないと読んでいます。さもなければ、パフォーマンスの改善はありません。しかし、なぜこれはそうですか?私は1つのコアrepsが1つの作業項目を考えたと思った。誰かが私にこれを理解するのを助けることができる? ありがとうOpenclワークアイテムとストリーミングプロセッサ

答えて

0

理由は主にスケジューリングです - シングルコア/プロセッサ/ユニットでは、通常、複数のスレッドを実行し、それらの間でメモリレイテンシ(SMT)を隠すことができます。だから、一般的には、各コアが複数のスレッドをキューに入れておくことをお勧めします。

ドライバとハードウェアによっては、コアのSIMD /ベクトル機能を利用するために、複数の作業項目を1つのスレッドに結合することができますが、スレッドは通常少なくとも1つの作業項目に対応します。

1

GPUと他のほとんどのハードウェアは、使用可能なメモリのほとんどにアクセスできるよりもはるかに高速に算術演算を行う傾向があります。プロセッサを持つよりもはるかに多くの作業項目を持つことで、スケジューラはメモリ使用量をずらすことができますが、すでにデータを読み込んだ作業項目はALUハードウェアを使用して処理します。

Here is a good page about optimization in opencl.「 2.4。「コストのかかる「グローバルGPUメモリアクセス」の削除」までスクロールし、この概念に入ります。

関連する問題