8

Nehalam/westmere Intel マイクロ アーキテクチャ CPU に取り組んでいます。このアーキテクチャ用にコードを最適化したいと考えています。コードの実行時のパフォーマンスを向上させるのに役立つ、GCC による特殊なコンパイル フラグまたは C 関数はありますか?

私はすでに -o3 を使用しています。

Language of the Code - C
Platform - Linux
GCC Version - 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)

私のコードでは、いくつかの浮動小数点比較があり、100 万回以上行われています。

コードはすでに最適化されていると想定してください。

4

4 に答える 4

18

まず、このような新しいプロセッサでの最適化から本当に利益を得たい場合は、最新バージョンのコンパイラをインストールする必要があります。4.4 は数年前にリリースされました。まだ維持されているように見えても、新しい最適化コードがそれにバックポートされているとは思えません。(現在のバージョンは 4.7 です)

Gcc には、通常、コンパイル アーキテクチャ用に最適化されたコードを生成する必要がある包括的な最適化フラグがあります-march=native。これと一緒に-O3、必要なものはすべて揃っているはずです。

(そして、このサイトでの今後の質問では、完全な英語の文法と句読点を使用してください。)

于 2012-05-18T05:59:25.807 に答える
16

警告:答えが正しくありません

実際には、無効化および有効化されたすべての最適化を自分で分析できます。コンピューターで実行します。

gcc -O3 -Q --help=optimizers | grep disabled

そして、まだ無効になって いて、gcc のドキュメントによるとパフォーマンスに影響を与える可能性があるフラグについて読んでください。

于 2012-05-18T05:03:47.227 に答える
7

オプションを追加する必要があり-march=...ます。は、GCC の i386/x86_64 オプションで...説明されている CPU アーキテクチャに最も近いものに置き換える必要があります (小さな違いがある傾向があります) 。

(あなたが望むもの)はGCC 4.6以降でしか利用できないcore2ので、私はそれを使用します。ここで GCC 4.6corei7のアーキテクチャ リストを参照してください。

于 2012-05-18T09:26:26.230 に答える