/note/tech

単一命令列・複数データ(SIMD: シムディー)の並列

一般的なGPUの並列プログラミングのモデルは,SIMD (シムディー)と呼ばれるものです。SIMD は Single Instruction, Multiple Data の略で,直訳すると,単一の命令列で複数のデータを処理するということになります。GPUは同じような計算を異なるオブジェクトに対して行うことが多いので,SIMDが適合します。

これに対し一般的なCPUの並列プログラミングのモデルは,MIMD(ミムディー)と呼ばれるものです。MIMD は Multiple Instruction, Multiple Data の略で,直訳すると複数の命令列で複数のデータを処理するということになります。CPUは異なるタスクを並行動作させて雑多な処理をすることが多いことから,SIMDは適合せずにMIMDで処理する必要があります。

GPUが向いているのは,単純な構造で均質で大量にあるデータを,ほぼ同じような命令列で処理する場合です。多くの画像処理があてはまります。また最近の流行りですとディープラーニングやビットコインのマイニングもあてはまります。このようにグラフィック処理だけでなく一般的な目的でGPUを活用することをGPGPU (General Purpose computing on Graphics Processing Units)と呼びます。