タグ

compilerとbenchmarkに関するkgbuのブックマーク (3)

  • 最適化・並列化コードを生み出す最新コンパイラ「インテル コンパイラー」 | OSDN Magazine

    最近のコンパイラには、出力するバイナリコードをより高速に実行できるようにする「最適化」機能が搭載されている。CPUPCアーキテクチャがより複雑化している近年、コンパイラによる最適化はより注目を浴びるようになっている。 たとえば、現在のCPUはいわゆる「マシン語」のコマンド列をそのまま実行するのではなく、内部でより細かい単位に分解して実行する。このとき、CPUのリソースをより効率良く利用できるよう、場合によってはその順序の並び替えや、並列化が行われる。また、処理を行うデータがキャッシュされているかどうかによっても処理速度が大きく変化する。CPUクロックの向上により、CPUとメモリ間でデータをやりとりする時間についても大きなボトルネックとなるようになったからだ。 このようにCPUの動作が複雑になっている現在、「より速く実行できるコード」を生成するには、CPUの構造やその動作についての知識も必

    最適化・並列化コードを生み出す最新コンパイラ「インテル コンパイラー」 | OSDN Magazine
    kgbu
    kgbu 2009/01/13
    CPUがこれだけダイナミックなシステムになってしまったからには、人手でできることは、もっと別のレベルになったのだろうな。生成されるコードも、brute forceな手法で作られてたりしかねないし、少なくともテストは大変
  • 探索のパフォーマンスはどうやって比較すればいいか - 西尾泰和のはてなダイアリー

    「N個の要素が与えられて、その中からM個を選んだ順列について何かを計算したい」というときの要素のたどり方って何が最速なんだろう。そしてどれが最速かを調べるベンチマークってどうやって書いたらいいんだろう。まわりのループの部分だけ書いたらコンパイラが「これは何もしていない」とか言って消してしまいそうだし、N個の要素だってうっかりプログラム中に記述するとコンパイルタイムにある程度計算されてしまったりしそうだ。 入力はまぁ、コマンドライン引数で渡すことにしてしまえばいいか。 あとは、なるべく処理時間をわなくて、かつコンパイラが消さないようななにかを... グローバル変数を1個用意して、それに順列の各値を足すとか?

    探索のパフォーマンスはどうやって比較すればいいか - 西尾泰和のはてなダイアリー
    kgbu
    kgbu 2008/11/02
    最近のコンパイラつかcpuは賢すぎ。コンパイル時間というかコンパイルに掛かる負荷まで計測できれば、意外と面白い結果がでるかもしれない。write once, execute N timesのNをどう考えるかが問題かー。
  • http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20071030

    kgbu
    kgbu 2007/11/01
    Haskellのような言語でも、CPUの最適化のアーキテクチャの変遷に左右されるような最適化を行っているんだ。へー。というか、メモリもCPUのコアに比べて超絶遅い世界なんだね。投機的になるのも納得。
  • 1