2012-10-18 14 views
9

SIMDとベクトルプロセッサの違いは何ですか?私の現在の理解は、ベクトル処理はSIMDのサブセットであるということです。しかし、私は「SIMDはベクトルに限定されているわけではない」と言われており、その意味を正確にはわかりません。具体的な例は?SIMD vsベクトルアーキテクチャ

スカラーアーキテクチャがベクターアーキテクチャよりも好ましい理由は何ですか?彼らは実装してプログラミングする方が簡単なのでしょうか?

私は、SIMD(シングル/マルチコアプロセッサ上のSSE拡張)、MIMD(おそらくMPIのような、クラスタリング!)、MISD実用的でない/実行不可能とみなされている)。これとは別に、私が読んだことのある他のものは、ベクトル処理とスーパースカラのアーキテクチャです。私が見逃して知っておくべき新しいアーキテクチャーはどれですか?ありがとう!

答えて

9

Flynn's Taxonomyは、コンピュータアーキテクチャの分類です。 FlynnのTaxonomyでは、ベクトル処理はSIMDのクラスに分類されます。ベクトルプロセッサではなくSIMDクラスに分類されるアーキテクチャがあります。例は、 Connection Machineと多くのプロセッサが同じ命令を実行する多くのGPUsです。

MMX、SSE、Altivecなどは、SIMDクラスと同様にベクトル処理に分類されます。サブワード並列性、小規模SIMD、ショートベクトル処理、レジスタ内のSIMD、または最も一般的なマルチメディア拡張など、多くの名前が同じ概念を指しています。

CrayまたはSTARのような伝統的なベクトルプロセッサは、より大きな可変サイズのベクトルを使用しています。

Superscalarは、プロセッサを実装する方法ですが、Flynn's Taxonomyのような命令セットについての記述はありません。

3

実際の例は、ARM NeonとARM VFPの比較から見つかりました。第1は、2,4,8または16項目を並列(またはほとんど平行)で評価するより古典的なSIMDです。もう1つは浮動小数点数の拡張で、連続した2つのレジスタのセットを順番に反復するようにプログラムされています(恐らくは2でスキップすることが可能です)。 S0..S3、S8..S11とし、その結果をS12..S15に書き込む。

後者のアーキテクチャでは、タスクを完了するために1-4クロックサイクルを使用して同じ命令で可変数(1-4)の操作が処理されます。アーキテクチャーが1命令につき128オペレーションを可能にするならば、両方のシステムがベクトル・アーキテクチャーでありながらSIMDアーキテクチャーであっても、システム間の概念の違いはより明確になります。