パスワードを忘れた? アカウント作成
495927 journal

Francisの日記: お勉強続き

日記 by Francis

(0)iccは速い
もうね、マジ速い。vc8のコンパイラは昔のvcよりも速いコードを生成するけど、それどころの話ではない。
(1)関数を長く書く奴は損をする
長い関数は遅くなる。
短い関数は速くなる。
なぜなら、でかい関数はiccが解析しづらいし、そんな関数を書く馬鹿はとうぜんデータの局所性を悪くしてしまうので、iccが並列化やベクトル化などの高速化をあきらめちゃうからだ!
ちっちゃくちっちゃく分割していけば勝手に速くしてくれるよ!
(2)頑張ったりかっこつけた書き方は得をしない
これも自動高速化のための解析がしづらいからだ。ついでにメンテもしづらい。
アセンブラめちゃくちゃ頑張って書いても、場合によっては自動最適化に余裕こいて負けます。
(3)関数呼び出しのオーバーヘッドとか変数のイニシャライズコストを気にすんな
そんなに差は出ません。というか、出るけど並列化やベクトル化がはまったときの速度上昇に比べればなんということはない。
(4)ループの依存性を消せ
特に必要なければ、多少演算量を犠牲にしてでもループのカウンタが途中から走っても良い様にコードを書いておく。なぜなら自動並列化やOpenMPがその演算量を取り返してくれるから。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

人生unstable -- あるハッカー

読み込み中...