[解決済み] gccのffast-mathは実際に何をするのですか?
2022-04-15 07:43:34
質問
gccの
--ffast-math
フラグはフロート演算の速度を大幅に向上させることができ、IEEE標準から外れていますが、オンになっているときに実際に何が起こっているのかについての情報が見つからないようです。どなたか詳細を説明し、フラグがオンかオフかで何かがどう変わるのか、明確な例を挙げていただけませんか?
S.O.で似たような質問を探ってみましたが、ffast-mathの仕組みを説明するものは見つかりませんでした。
解決方法は?
ご指摘の通り、厳密なIEEEコンプライアンスを維持しない最適化が可能になります。
その一例がこれです。
x = x*x*x*x*x*x*x*x;
になります。
x *= x;
x *= x;
x *= x;
浮動小数点演算は連想演算ではないため、演算の順序や因数分解は丸め誤魔化して結果に影響します。したがって、この最適化は、厳密なFPの動作の下では行われません。
GCCが実際にこの特定の最適化を行うかどうか、実際に確認したわけではありません。しかし、考え方は同じです。
関連
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] JavaScriptで、数値が精度を失うことなく到達できる最も高い整数値は何ですか?
-
[解決済み] g++とgccの違いは何ですか?
-
[解決済み] 最後の手段としてのパフォーマンス最適化戦略【終了しました
-
[解決済み] πの値を最も早く求める方法は何ですか?
-
[解決済み】GHCコアの読み込み
-
[解決済み] SSLはどれくらいのオーバーヘッドを発生させるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] LOWER LIKE vs iLIKE
-
[解決済み] なぜGCCはa*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのでしょうか?
-
[解決済み】-depth 1でcloneを浅くし、コミットを作成し、再び更新をpullするのは安全ですか?
-
[解決済み】x86_64アセンブリで無駄なMOV命令を導入すると、なぜタイトループが速くなるのでしょうか?
-
[解決済み】GHCコアの読み込み
-
[解決済み】なぜMATLABは行列の乗算が速いのか?
-
[解決済み] SSLはどれくらいのオーバーヘッドを発生させるのですか?
-
[解決済み] Apache Spark: map vs mapPartitions?
-
[解決済み】2次元の点がポリゴン内にあるかどうかを判断するにはどうしたらいいですか?
-
[解決済み] TeamViewerはどうしてこんなに速いのですか?