GPUプログラミング

CPUとGPUの設計の考え方の違いとして正しいものはどれか。

  1. ACPUは多数の単純なコアで処理量を重視し、GPUは少数の強力なコアで1つの処理を速くする
  2. BCPUとGPUの違いは名前だけで、作りは同じである
  3. CCPUは少数の強力なコアで1つの処理を速く終えることを重視し、GPUは多数の単純な演算器で全体の処理量を重視する
答えと解説を見る

正解:C. CPUは少数の強力なコアで1つの処理を速く終えることを重視し、GPUは多数の単純な演算器で全体の処理量を重視する

CPUは、大きなキャッシュ、分岐予測、アウトオブオーダー実行などに回路を使い、1つのスレッドをできるだけ速く進めます。GPUは、そうした回路を簡単にして、その分多くの演算器を並べ、何千ものスレッドを同時に動かして全体の処理量を大きくします。1つ1つのスレッドは遅くても、大量のデータに同じ処理をする仕事では、GPUが何倍も速くなります。

  • A. 逆です。
  • B. 作りは大きく違います。
  • C. 正しい。遅延重視とスループット重視の違いです。
この分野を解く 分野ページへ

GPUプログラミングのほかの問題

  1. GPUで速く処理できる仕事の特徴として最も適切なものはどれか。
  2. GPUで実行すると効率が悪くなりやすい処理はどれか。
  3. CUDAなどのGPUプログラミングでいう「カーネル」の説明として正しいものはどれか。
  4. CUDAのスレッドの階層の組み合わせとして正しいものはどれか(大きい順)。
  5. CUDAのカーネルで上の式により各スレッドの番号iを求める。blockIdx.x=2、blockDim.x=256、threadIdx.x=5のスレッドのiはいくらか。