シミュレーション作業の一部で GPU プログラミングを始めたばかりで、このチュートリアルに従っています。
http://www.drdobbs.com/parallel/cuda-supercomputing-for-the-masses-part/208401741
ただし、用語が混乱しており、nVidia のドキュメントにアクセスするとさらに混乱します。
これらの用語: ストリーミング マルチプロセッサ、スレッド、ワープ、ブロック、グリッド、占有率、シェーダー
私を少し圧倒しています。
これは私の非常に大まかな理解です:
GPU はマルチプロセッサに分割されます (おそらく 2 つのように)。各マルチプロセッサはワープに分割され、ワープはブロックに分割され、スレッドに分割されます。わかりません... 図があればいいのに。誰か助けてくれませんか?
編集:なぜ私がこれを求めているのか説明させてください。「ワープ」とは何かを理解しようとしているとします。私は「CUDAワープ」をグーグルで検索しました。最初に表示されるのはhttp://developer.download.nvidia.com/CUDA/training/cuda_webinars_WarpsAndOccupancy.pdfです。下にスクロールすると、次のように表示されます。
グリッドは完全に独立したブロックで構成されています
わかりました。
ブロックは、独自のブロック内で通信できるスレッドで構成されています
わかった...
32本の糸が経糸を形成
今、私は迷っています。32本の糸が経糸を形成?すべてのスレッドが同じブロックにある必要がありますか? 32 のスレッドを勝手に「ワープ」とラベル付けしたのはなぜですか? 12本の糸を「かばん」と呼んでもいいですか?ブロックが 20 個のスレッドを保持できる場合、ワープを含めるには 2 つのブロックが必要ということですか? 私の混乱がどこから来ているかがわかります。私が調べることはすべて、他の用語の知識に依存しているため、辞書を読んで言語を学ぼうとするようなものです。すべて循環しています。