CPU2006を使用してさまざまなベンチマークテストを実行して、gccの速度に関してさまざまな最適化がどのようなものかを確認しようとしています。私は-O1、-O2、-O3に精通していますが、-msseはまともな最適化であると聞いています。 -msseとは何ですか?私はまた、-msseが64ビットアーキテクチャではデフォルトであることを見てきました。それで、それを使用していないときと使用していないときの違いを比較するにはどうすれば無効にできますか?-msseを無効にする
答えて
http://www.justskins.com/forums/gcc-option-msse-and-128289.html
SSE(http://it.wikipedia.org/wiki/Streaming_SIMD_Extensions)名前が言うように彼らは、ベクトルおよび浮動のいくつかの種類のために高速であるのPentium 3以降のプロセッサに存在するSSE命令がありますポイント計算。それらはすべての64ビットプロセッサで利用できるので、なぜそれらを無効にする必要がありますか?
-msseと-msse2のいずれかを選択できます。 SSE2はSSE上に構築された別の命令セットで、他の強力で非常に高速なベクトル命令を追加します。
ペンティアム3にはSSEがあり、32ビットプロセッサです。 SSE2はより現代的で、Pentium 4はまだ32ビットプロセッサーで、SSE2を持っています。
-msse
は、SSE命令の生成を有効にします。 64ビットプロセッサ(x86-64)にはすべてのプロセッサが搭載されていますが、一部の古い32ビットプロセッサ(IA-32)にはこれらの命令がありません。これがGCCのデフォルト設定の理由です。
SSE
の命令は、ベクトル演算と浮動小数点演算子と関連しています。自動ベクトル化の機会が汎用コードではまれであることを考慮すると、浮動小数点を使用すると、唯一の違いは観察される可能性があります。 64ビットのオン
、私たちは、32ビットおよび64ビットのコンパイルの切り替えなど、ベンチマークの様々な組み合わせをしようとしているので、私たちは-msseはどうしたら無効にするか見て興味があるだけです-mno-sse
ペンティアム3はそれを持っていましたが、32ビットプロセッサです。 SSE2はより現代的であり、すべての32ビットプロセッサがそれを持っているわけではありませんが、一部はそれを持っています。 Pentium 4は32ビットプロセッサですが、SSE2を搭載しています。 –
@サルバトーレ私はあなたが何を意味するか分かりません。 386からPentium IIまでのすべてのIntel IA32プロセッサはSSEのない32ビットプロセッサです。私は答えを明確にしますが、すべてのx86-64プロセッサにSSEがありますが、すべてのIA32プロセッサにはありません。もちろん、SSEの拡張としてのSSE2は、SSEをサポートするプロセッサのサブセットによってのみサポートされます。 –
はい正確::)私は非常に明確です。 –
- 1. Ehcache3を無効/無効にする
- 2. Windowsキーを無効にするWindowsキーを無効にする
- 3. ToolStripMenuItemを無効にするかMenuStrip.Itemを無効にする
- 4. リフトを無効にするリフトを無効にする
- 5. ズームコントロールを無効にするピンチズームを無効にする
- 6. hrefを無効にする方法と無効にする
- 7. IIS web.configを無効にしてリクエストフィルタリングを無効にする
- 8. ネイティブスクロールビューを無効にしてリフレッシュを無効にする
- 9. ボタンを無効にして無効にする
- 10. ngFormが無効のときにボタンを無効にする
- 11. DOMMouseScrollマウスホイールを有効/無効にする
- 12. フォームラジオボタングループを無効/有効にする
- 13. @ConditionalOnExpression @RestControllerを有効/無効にする
- 14. コンポーネントサービス - パーティションを有効にする - 無効
- 15. フォームコンテンツを無効/有効にする
- 16. チェックボックスを有効/無効にする
- 17. Bluetoothを有効/無効にする
- 18. ファイヤーベースリスナを有効/無効にする
- 19. autolayout NSLayoutConstraintsを有効/無効にする
- 20. Android ActionBar.Tabを有効/無効にする
- 21. SAPUI5コントロールレンダリングを有効/無効にする
- 22. リボンボタンを有効/無効にする
- 23. UISegmentedControlを有効/無効にする
- 24. ポインタを無効にするポインタの配列が無効です
- 25. アンカージャンプを無効にする
- 26. ボタンを無効にする
- 27. フィールドを無効にする
- 28. バックフェードポップアップを無効にする
- 29. NSTimerを無効にする
- 30. キーボードを無効にする
を使用し、SSE命令を無効にします。 – erasmuss22
'-msse'、' -msse2'、 '-msse3'、' -msse4.1'、 '-msse4.2'の中から選択できます。 「実際の」使用の場合、特定の拡張機能ではなくCPU生成をターゲットにするほうがよいでしょう。 – millimoose
SSE命令は、memsetやmemcpyの最適化されたバージョンでのみ使用されます。コンパイラがより良い最適化を行うことができると理解できる場合、sseとsse2はあまり使用されません。 -msseまたは-mno-msseを指定してコンパイルしても、プログラムに違いがない場合は驚きません。 –