GPUプログラミング
配列の要素を1回だけ足し算するような軽い処理のためにデータをGPUへ送ると、CPUで計算するより遅くなることがある。主な理由はどれか。
- AGPUは足し算ができないから
- BPCI Expressでのデータのコピーにかかる時間が、GPUで速くなる計算の時間より長くなるから
- CデータをGPUへ送ると値が変わってしまうから
答えと解説を見る
正解:B. PCI Expressでのデータのコピーにかかる時間が、GPUで速くなる計算の時間より長くなるから
PCI Expressの帯域は、GPUのメモリの帯域より1桁以上小さいので、データを送るだけで時間がかかります。1要素あたり1回の足し算しかしないなら、送る時間に比べて計算の時間はごくわずかで、GPUの速さを生かせません。GPUが得をするのは、送ったデータに対して多くの計算をするときや、データをGPUのメモリに置いたまま何度も処理するときです。
- A. GPUは足し算が得意です。
- B. 正しい。転送の割に計算が少なすぎます。
- C. 値は変わりません。