CUDAとは

くーだ

NVIDIAのGPUで汎用の計算を行うためのプログラミングの仕組み。C++を拡張した言語でカーネルを書き、グリッド・ブロック・スレッドの階層で並列性を表す。

この用語の分野: GPUプログラミング

解説の中の「CUDA」

「CUDA」が出てくる問題(18問)

  1. CUDAなどのGPUプログラミングでいう「カーネル」の説明として正しいものはどれか。
  2. CUDAのスレッドの階層の組み合わせとして正しいものはどれか(大きい順)。
  3. CUDAのカーネルで上の式により各スレッドの番号iを求める。blockIdx.x=2、blockDim.x=256、threadIdx.x=5のスレッドのiはいくらか。
  4. 上のCUDAのカーネルで「if (i < n)」を入れている理由として正しいものはどれか。
  5. CUDAの共有メモリ(シェアードメモリ)の特徴として正しいものはどれか。
  6. CUDAの__syncthreads()の働きとして正しいものはどれか。
  7. CUDAで、__syncthreads()を「if (threadIdx.x < 16)」の中に書き、一部のスレッドだけが通るようにした。起こりうることとして正しいものはどれか。
  8. CUDAの共有メモリのバンク競合の説明として正しいものはどれか。
  9. CUDAで、ブロックとSM(ストリーミングマルチプロセッサ)の関係として正しいものはどれか。
  10. CUDAで、カーネルの途中で、ほかのすべてのブロックの計算が終わるのを待ってから次の段階に進みたい。一般的な方法はどれか。
  11. CUDAのストリームを複数使う主な目的はどれか。
  12. CUDAのユニファイドメモリ(統合メモリ)の説明として正しいものはどれか。
  13. CUDAで1ブロックあたりのスレッドの数を決めるときの一般的な目安として正しいものはどれか。
  14. CUDAの定数メモリ(コンスタントメモリ)が特に速く働くのはどのようなアクセスのときか。
  15. CUDAで、CPU側のプログラムがカーネルを起動した直後の動作として一般に正しいものはどれか。

関連する用語

GPU 占有率 シェアードメモリ バンク競合 バンク ストリーミングマルチプロセッサ ユニファイドメモリ ページフォルト 定数メモリ OpenCL

用語集の一覧へ