SIMD(Single Instruction Multiple Data)とは、並列処理演算の一つである。
概要
1度の命令で同時に複数の演算器に同一の処理を行わせる機構である事からこの名が付いている。
現在ではSIMD演算器はx86系CPUを始め大半のプロセッサが搭載している。INTELのCPU機能の一つSSE(Streaming SIMD Extension)やAMDのCPUに実装されていた3DNow!はこの拡張命令の一つである。
SIMD演算の特性
連続したメモリアドレスを持つデータに同一の処理を同時に行う際に有効で、この場合一つのSIMDロード命令でレジスタに対して丸ごとデータをロード可能である。ストア命令についても同様で格納先のアドレスが連続していれば一度のストア命令でレジスタ一つ分の処理を行える。
SIMD拡張命令
飽和型演算やモーション検出などの演算に特化した機能をサポートしている。
飽和型演算は画像やオーディオ処理で頻繁に行われている演算で、これをサポートする事でマルチメディア処理に対して高速な計算をサポート実現できる。
モーション検出に関しては差分絶対和をとる演算が映像データの圧縮に際して用いられるため、これをサポートしていればビデオファイルのエンコードなどが高速化出来る。
SIMDコア(SIMDエンジン)
GPUにはSIMD演算をサポート行うためのコアであるSIMDコアが複数内蔵されている。
ATI社(現AMD)では嘗てスカラプロセッサ5基一組に分岐ユニット、汎用レジスタ群を合わせたものをSIMD Unitと呼んでいたが、HD5800シリーズ以降ではThread Processor(スレッドプロセッサ)と呼ばれるようになり、SIMD Unit 16基を一組として構成されるものは、ATI Radeon HDだとSIMDコアと呼ばれていたがこれもSIMDエンジンに名称変更されている。
2008年に稼働開始したスーパーコンピュータ「アントン」のサブシステムである"flexible subsystem"にはジオメトリーコアと呼ばれる8個のプログラマブルなSIMDコアが含まれている。
関連項目
- 0
- 0pt