並列処理の3つのアプローチ: スーパースカラ (1サイクル複数命令)・SIMD (1命令複数データ)・GPU (大量並列)。それぞれ向く問題が違います。
スーパースカラ は1サイクル中に複数の命令を発行する CPU 構成。
命令レベル並列性 (ILP) を引き出します。
SIMD は何をするの?
Single Instruction Multiple Data の略で、1つの命令で複数のデータを同時に処理するのよ。
たとえば配列の各要素に同じ計算をするとき、SIMD 命令なら4要素や8要素を一気に処理できるの。
Intel SSE/AVX や ARM NEON が代表ね。
GPU は数千コアで超並列処理を行う装置。
元はグラフィック用ですが、現代では機械学習・科学計算で標準。
CUDA や OpenCL でプログラム可能です。
GPUって何でも速くなっちゃうのぉ?
並列化できる処理 (行列演算など) は劇的に速くなりますが、依存関係が強い逐次処理は CPU の方が速いんですよ。
確認クイズ
SIMD (Single Instruction Multiple Data) 方式の特徴として、最も適切なものはどれか。
- 1命令で1データを処理する従来型方式である
- 1命令で複数のデータに同じ演算を並列適用する
- 複数命令を1サイクルに発行する方式である
- 命令とデータをそれぞれ別の経路で読み込む方式である
こたえを見る
正解: 2. 1命令で複数のデータに同じ演算を並列適用する
SIMD は同じ演算を複数データに並列適用する方式。配列・ベクトル・画像処理に効果的。3 は VLIW やスーパースカラの特徴、4 はハーバードアーキテクチャの説明です。