質問

は、私はちょうど私たちのプロジェクトでは、おそらくちょうど監督を解除「拡張命令セットを有効にする」フラグを残したままにしていることに気づきました。

誰もがそれを可能にする任意の実世界のパフォーマンスの改善を見ている場合は、

がフラグを有効にする前に私がお願いしたい?

私たちは常に大部分のポイントに基づくcalucations浮動行うが、そのない私たちのアプリケーションいくつかの改善が見られるだろうと思い、。

役に立ちましたか?

解決

だから、一言で言えば:この設定は、SSE命令に直接マッピング特定の固有の機能を有効にします。この設定は、パフォーマンスが改善されませんので、通常のC ++プログラムでは、あなたは、これらの組み込み関数を使用しないでください。

あなたがより高いパフォーマンスが必要な場合は、

は、あなたが(Intelができ、そのコンパイラを主張する)SSE命令を使用するようにコードを書き換えコンパイラを見つけるために試みることができるが、そのおそらく賢く、または(OpenMPのか、.NET 4.0で)マルチコアのために行きますより速く、より柔軟SSEよりもGPUを使用しています。

他のヒント

パフォーマンス上の利点は、用途に集中的な数学的計算を投射するかどうかに依存します。ない(またはほとんどない)浮動小数点演算を用いるされる多くのタスク(、テキスト処理、データ管理、ネットワーキング)の場合、これは単にそうではありません。したがって、そこに全くパフォーマンスを向上できなくなります。

コンパイラによって生成されたSSE / SSE2命令を使用すると、最高のパフォーマンスを生成しないでしょう。まず、あなたは、実際のコード生成上の任意のコントロールを持っていません。あなたが新しいシステムに古いシステムとSSE / SSE2対応のコードでレガシー(のx87)コードを使用する必要があるシナリオがあります。また、ほとんどの最新のシステムでSSE3を利用したい場合があります。そのために、私はcpuid命令を使用してプロセッサの種類を確認して、プロセッサ能力のほとんどを活用することができ、実装に切り替えることをお勧めします。その後、SSE / SSE2をターゲット実装でコンパイラ組み込み関数を使用することができます。 SSE3をターゲットに、あなたは私がインターネットで見つけしようとしている専用のライブラリが必要になります。

私は信じて、最適なコードswitcing用プロセッサ機能の解析を行い、許可ライブラリが存在しなければなりません。私はまた、ネット上の外観にいくつかの時間を必要とします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top