0

私は、その性質上、浮動小数点を多用し、単純に遅い、いくつかの数値計算コードを使用しています。これは調査コードであるため、1つのアーキテクチャに合わせて調整でき、Core2Quadボックスで実行されます。私の理解では、Pentium 4 / Netburstアーキテクチャでは、Intelはx87 FPUを大幅に削減し、よりSSE2中心の設計を採用しました。これにより、x87コードでひどいパフォーマンスが発生しました。ただし、Core 2アーキテクチャは、NetburstよりもP6アーキテクチャと密接に関連しています。

私のコンパイラはSSEをまったくターゲットにしておらず、これをうまく実行できるコンパイラはほとんどないというのが私の理解です。さらに、私はかなり最先端のD言語を使用しているため、使用できるコンパイラーがあまりありません。ただし、既存のコードの慣性と、その未熟さにもかかわらず、私はDが本当に好きなので、言語を切り替えたくありません。

Core2アーキテクチャにもx87FPUが削減されていますか?もしそうなら、これを回避するための最良の方法は何ですか?

4

1 に答える 1

2

プロファイラーを試してみてください。キャッシュ ミスやメモリ アクセス レイテンシなどの要因が多すぎて、パフォーマンスの低下を特定のプロセッサ機能に帰することはできません。何が速いかを知りたい場合は、いくつかの異なる方法を使用して同じアルゴリズムを実装し、プロファイルします。

liboil ライブラリも参照することをお勧めします。これにより、アセンブリを記述せずに SSE を使用して最適化できます。ただし、Dとどのように統合されるかはわかりません。

于 2008-11-25T04:21:29.933 に答える