GPUプログラミング

GPUのSMに命令を出す仕組みが1つあり、1サイクルに1つのワープから命令を出せるとする。各ワープは「20サイクル分の命令を出したあと、メモリの読み込みの結果が届くまで400サイクル待つ」ことを繰り返す。ワープの切り替えに時間がかからないとき、メモリの待ちによる空き時間をなくす(レイテンシ隠蔽)のに必要なワープの数は最低いくつか。

  1. A21個
  2. B2個
  3. C420個
答えと解説を見る

正解:A. 21個

1つのワープは、420サイクル(20+400)ごとに20サイクルしか命令を出せません。命令を出す仕組みを休ませないには、420÷20 = 21個のワープが交代で命令を出せばよく、あるワープが400サイクル待つ間に、ほかの20個のワープが20サイクルずつ命令を出して埋めます。ワープが足りないと、待ち時間が性能に表れて演算器が遊びます。実際のGPUでは、待ちの長さや命令の並び方で必要な数が変わり、1つのワープの中で互いに依存しない命令を増やす(命令レベルの並列性)ことでも待ちを埋められます。

  • A. 正しい。(20+400)÷20 = 21個です。
  • B. 1つのワープの400サイクルの待ちを、別の1つのワープの20サイクルでは埋められません。
  • C. 420は1つのワープの繰り返しの周期(サイクル数)で、ワープの数ではありません。
この分野を解く 分野ページへ

関連する計算ツール

GPUプログラミングの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

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

  1. CPUとGPUの設計の考え方の違いとして正しいものはどれか。
  2. GPUで速く処理できる仕事の特徴として最も適切なものはどれか。
  3. GPUで実行すると効率が悪くなりやすい処理はどれか。
  4. CUDAなどのGPUプログラミングでいう「カーネル」の説明として正しいものはどれか。
  5. CUDAのスレッドの階層の組み合わせとして正しいものはどれか(大きい順)。

この分野の比較