GPUでのCUDAまたはOpenCLコードの並列性に関する一般的な質問があります。私はNVIDIA GTX 470を使用しています。GPUでの並列処理 - CUDA/OpenCL
私はCudaプログラミングガイドで簡単に読んでいますが、ここではそれに関連する回答は見つかりませんでした。
私はCUDAカーネルを呼び出すトップレベルの関数を持っています(同じカーネルのために、そのOpenCLバージョンを持っています)。このトップレベル関数自体は、3つの異なるデータセット(画像データR、G、B) に対して、メイン関数から 'forループ'で3回呼び出され、実際のコードレットも画像/フレームには2 'for loops'があります。
私が知りたいことは、ここでどのような並列性が悪用されているかです。タスクレベルの並列処理またはデータ並列処理です。
このCUDAとCコードは、コードレットと最上位レベルのコードでさまざまな機能/機能用に複数のスレッドを作成し、 並列で実行し、タスクの並列処理を利用します。はいの場合、コードに明示的に含まれているかスレッドにリンクされているスレッドライブラリがないため、誰が作成しますか。
OR
それは独立したので、データの並列処理を実現しているの反復「forループ」異なるためスレッド/タスクを作成します。 この種の並列処理を行う場合、異なるforループ反復が依存関係を持たず、したがって並列にスケジューリングできることに注意してこれを利用しますか?
コンパイラ/スケジューラにループ/関数を並列にスケジュールするように指示する特別なコンパイラ構文/組み込み関数(openMPのような並列のforループ)は表示されないので、
読書資料は役に立ちます。