-march
オプションを適切に設定して、gcc 4.7.2 を使用する PC でオプションを有効にした場合と無効にした場合のパフォーマンスの違いを確認 しようとしています。
コンパイルを試みる前に-march
、自分の PC に最適なオプションを見つけようとしました。私の PC には Pentium G850 があり、そのアーキテクチャは Sandy Bridge です。そこで、gcc 4.7.2 のマニュアルを参照したところ、それが最適であることがわかりました-march=corei7-avx
。ただし、 Pentium G850 の場合
と同様に、Sandy Bridge ベースの Pentium には AVX および AES-NI 命令セットのサポートがないことを思い出しました。したがって、適切なオプションではありません。-march=corei7-avx
私はいくつかの潜在的なオプションを考え出します:
-march=corei7-avx -mno-avx -mno-aes
-march=corei7 -mtune=corei7-avx
-march=native
最初のオプションは、私が持っている情報を考慮すると合理的に見えますが、AVX と AES-NI 以外に欠けている機能があるのではないかと心配しています。2 番目のオプションは安全に見えますが、-march=corei7
. 3 番目のオプションですべての問題を処理できますが、このオプションでは CPU の機能を誤検出することがあると聞いたので、手動で行う方法を知りたいと思います。
StackOverflow と SuperUser をググって検索しましたが、明確な解決策が見つかりません...
どのオプションを設定する必要がありますか?