2012-02-21 7 views
3

が、私は最近、次のDelphiソースコードを掘り下げ:拡張配列でSIMDを実行するには?

私の理解するために:

  1. SSE SIMDを行うために行くための方法ですSingle
  2. 私はより多くの恩恵を受けることを期待している場合

    は(私は意味拡張の配列をSMID)と同様のことを行うための方法があります:

  3. SSE2は私の質問Double

ためのカウンターパートであるのに対し、精度はExtendedとして提供できますか?

答えて

9

拡張はFPU(x87)タイプで、x87 CPU以外では見つからないファンキーなタイプです。

SSEはdoubleより大きい値をサポートしていないため(クワッド(128ビット)もありません)。

でさえ、SSEのバージョン文書が、まだ利用できません(アイビーブリッジ)で

ありませんので、これは不可能です。

さらにSSE2もレジスタを広げ、追加の指示を提供するので、「SSEはSSE2対」それは私が述べエンバカデロRAD Studioのヘルプの警告に気づいた、確かにダブル

+1

真対1つだけではありません: '拡張申し出より高い精度他の実際のタイプよりも、ポータブルではありません。複数のプラットフォーム間で共有するデータファイルを作成する場合は、Extendedを使用することに注意してください。だから、Extended達成せずにどのようにSIMDをより正確にすることができますか?私はしっかりと解決策があると信じています。 – menjaraz

+0

それから私はそれらの情報源を掘り下げます(それは解決策があるはずです)。私はインテルのデータシートを読みましたが、私は見つけませんでした。 –

+0

マルコが正しいです。 x86またはx64上に存在するすべてのSIMDには、4バイトおよび8バイトのデータがあります。あなたは本当に拡張が必要ですか?私は私のFEMコードではないことを知っています。 –

関連する問題