メインコンテンツへ
コンピュータ構成要素

GPUをCPUのコプロセッサとして用いるGPGPU(General-Purpose computing on GPU)の特徴として正しいものはどれか。

ア.数千のシンプルなコアで大量のスレッドを並列実行でき、行列演算や機械学習のような並列性の高い処理に適している。正解
イ.GPUは分岐の多い条件処理(if-else等)が得意であり、OSカーネルのような制御フロー重視の処理に最適。
ウ.GPUはCPUよりもクロック周波数が高く、シングルスレッドの逐次処理を高速化するのに向いている。
エ.GPGPUを使用するには専用のFPGAプログラミング言語が必要で、CUDA等の高水準APIは存在しない。

解説

CPUは「万能な料理人が複雑な判断をしながら作業する」、GPUは「数千人の単純作業者が一斉に同じ作業をこなす工場ライン」。複雑さより量が多い仕事にはGPUが圧倒的に向いている。

なぜ ア が正解か

アが正解。GPUは数千のSIMDコアを持ち、同一命令を大量データに並列適用する。行列の積和演算(GEMM)、畳み込み演算など「同じ計算を大量のデータに繰り返す」処理に最適。深層学習の訓練速度がCPUの10-100倍以上になる理由。プログラミングはNVIDIA CUDA、OpenCL、ROCm等で行う。

なぜ イ は間違いか

分岐の多い処理はGPU非効率。同一warp内で分岐が発生するとwarp divergenceが起き、性能が大幅低下する。条件分岐重視はCPUの得意分野。

なぜ ウ は間違いか

GPUのコア1個あたりのクロック周波数は通常CPUより低い。シングルスレッド性能はCPUが優位。GPUの強みは並列数の多さ。

なぜ エ は間違いか

CUDAはNVIDIAが提供する高水準GPGPU API/言語拡張。C/C++ベースで書ける。他にOpenCLやApple Metal等も存在する。

出典: AI生成問題(学習用)