0

シミュレーション作業の一部で 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 つのブロックが必要ということですか? 私の混乱がどこから来ているかがわかります。私が調べることはすべて、他の用語の知識に依存しているため、辞書を読んで言語を学ぼうとするようなものです。すべて循環しています。

4

1 に答える 1

6

SO 単一の質問/回答形式で CUDA や GPU アーキテクチャなどを説明することは、実際には実現可能ではありません。長い議論を必要とする質問は、しばしばクローズされます。

あなたが直面する課題は理解できます。用語をグーグル検索するだけで得られるものよりも、トピックのより整然とした紹介が必要な場合があります。

NVIDIA では、さまざまなリソースを利用できます。

いくつか挙げると。入門および上級のウェビナーを受講することから始めることをお勧めします。多くの GPU コーディングを行う場合は、約 2 時間かかります。

CUDA C を使用した GPU コンピューティング – 概要 (2010) CUDA C を使用した GPU コンピューティングの基礎の紹介。コード サンプルのウォークスルーで概念を説明します。GPU コンピューティングの経験は不要

CUDA C を使用した GPU コンピューティング – Advanced 1 (2010) グローバル メモリ最適化やプロセッサ使用率などの第 1 レベルの最適化手法。実際のコード例を使用して概念を説明します

これらが 3 歳であるという事実は、あなたの質問には関係ありません。また、新しいバージョンのウェビナーを参照することを歓迎します - たくさんあります。

于 2013-03-08T23:23:01.530 に答える