GPUプログラミング

CUDAのストリームを複数使う主な目的はどれか。

  1. AGPUの冷却の風の流れを増やす
  2. Bデータの転送とカーネルの実行を重ねて同時に進め、全体の時間を短くする
  3. C動画の配信の画質を上げる
答えと解説を見る

正解:B. データの転送とカーネルの実行を重ねて同時に進め、全体の時間を短くする

ストリームは、GPUに出す処理(転送やカーネルの起動)の順番の並びです。同じストリームの中では順番どおりに実行されますが、別のストリームの処理は同時に進められます。データを分けて、1つ目の部分を計算している間に2つ目の部分を転送する、というように重ねると、転送と計算の時間の大部分が重なり、全体の時間が短くなります。

  • A. 冷却とは関係ありません。
  • B. 正しい。転送の時間を隠せます。
  • C. 動画配信のストリームとは別の意味です。
この分野を解く 分野ページへ

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

  1. 非常に小さなカーネルを何千回も続けて起動するプログラムが遅いとき、改善の方法として最も適切なものはどれか。
  2. CUDAのユニファイドメモリ(統合メモリ)の説明として正しいものはどれか。
  3. GPUで2つの大きな配列の要素ごとの足し算(c[i] = a[i] + b[i])を行うとき、性能を主に決めるものはどれか。
  4. 家庭用のゲーム向けGPUの多くで、倍精度(FP64)の計算性能が単精度(FP32)よりずっと低い(数十分の一など)理由として最も適切なものはどれか。
  5. 最近のGPUに搭載されているテンソルコア(行列演算ユニット)の特徴として正しいものはどれか。