創屋ぷれす

SIMD

SIMDを一言で言うと、
「大量のデータに並列で同じ計算を実行する」
となると思います。

典型的にはGPUを使った3D画像の処理に使用されます。

■ フリンの分類 (1966)
コンピュータのアーキテクチャの分類法の一つで、
命令・データストリームの観点で、
SISD、SIMD、MISD、MIDI と、4つに分類するものです。
・命令(Instruction)
  … 単一(Single) / 複数(Multiple)
・データストリーム(Data stream)
  … 単一(Single) / 複数(Multiple)
  
このうち、本題のSIMDは、1命令で複数データを処理する設計になります。

通常のCPUでは拡張命令としてSIMDを利用でき、
例えば、機械学習で使用するライブラリ tensorflow をCPUで実行すると …
”拡張機能が有効になっていないけど、拡張機能を有効にできる”
… という旨の警告が出るので、CPU環境で使用する場合は、
拡張機能を有効にしてコンパイルするという方法もあるようです。

一般的な業務アプリの開発で意識することは無いと思いますが、
画像処理・機械学習に関わる部分では、CPU拡張命令について対応有無・有効/無効にちょっと注意が必要ですね。

Comments are closed.