SIMD が必要な作業を行っており、double の配列に対して操作を行う必要があります。これをサポートしている主流のアーキテクチャはありますか? 浮動小数点演算しか見たことがありません。
前もってありがとう、ステファン
SIMD が必要な作業を行っており、double の配列に対して操作を行う必要があります。これをサポートしている主流のアーキテクチャはありますか? 浮動小数点演算しか見たことがありません。
前もってありがとう、ステファン
はい、x86 は SSE2 命令でそれを行うことができます。CELL も同様ですが、倍精度計算を行う場合のパフォーマンスはかなり低下します。
ARMVFPは2倍も実行できます。
新しいNEONSIMD拡張機能(これまでに見た中で最高のSIMD命令セットです)は、残念ながら32ビットフロートしか処理できません。
VS2008 の C++ コンパイラでサポートされている SEE2 組み込み関数は次のとおりです。
jalf が述べたように、SIMD に対する CELL プロセッサの倍精度サポートは、パフォーマンスに大きな打撃を与えます (PS3 で使用されていないチップのその後の反復により、動作が大幅に改善されたと思います)。
メインストリームに関して言えば、SSE2 は 2001 年に pentium 4 で登場したため、x86 業界で広く普及しています。Steam ハードウェアの調査によると、その人口の 95% が SSE2 を持っているので、それをターゲットにしても安全だと思います。
計算能力1.3またはおろし金で実行されているCUDAもそれを行うことができます。新しいGTX2xxカードはこれを行うことができます。