スーパースカラ・SIMD・GPU

並列処理の3アプローチ — スーパースカラ・SIMD・GPU の使い分けと AP頻出ポイントを整理。

並列処理の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データを処理する従来型方式である
  2. 1命令で複数のデータに同じ演算を並列適用する
  3. 複数命令を1サイクルに発行する方式である
  4. 命令とデータをそれぞれ別の経路で読み込む方式である
こたえを見る

正解: 2. 1命令で複数のデータに同じ演算を並列適用する

SIMD は同じ演算を複数データに並列適用する方式。配列・ベクトル・画像処理に効果的。3 は VLIW やスーパースカラの特徴、4 はハーバードアーキテクチャの説明です。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。