パスワードを忘れた? アカウント作成
222835 story
プログラミング

GCC の Core2 / Core i7 向け最適化機能、GCC 4.6 に向けて開発中 5

ストーリー by reo
諸君、私はベンチマークが好きだ 部門より

hylom 曰く、

GCC 4.6 には Core 2 / Core i7 向けの最適化機能が搭載されるそうだ (Phoronix の記事より) 。

GCC の ML に投稿されたメッセージによると、unaligned vector 命令の追加やよりチューニングされたスケジューリング機能の提供、命令の選択 / 重み付けモデルの改善などが計画されているとのことで、時期マイナーリリース版である GCC 4.6 での採用に向けて進められているそうだ。

これら機能の開発を行っているのは GCC や GNU 開発ツールのポーティング、独自のソフトウェア開発ツールの提供などを行っている CodeSourcery 社で、Intel の支援の下で進められているという。Intel は自社プロセッサ向けの最適化を売りにした Intel Compiler シリーズをリリースしているが、それとのパフォーマンス差が気になるところだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2010年05月25日 11時04分 (#1769079)

    自動並列化はいらない、とまでは言いませんが、あんまり頑張らなくていいと思います。
    そこを頑張るくらいなら記事中にあるような重み付けモデルの改善など他を充実させて欲しい。

    自動並列化がメリットになる部分:

    • intrinsicsを使わないで済むため、移植性と可読性が高い普通のコード1本で済む。
    • わざわざintrinsicsを使おうと思わない数十〜数百サイクル程度の小さなループにも適用される。

    自動並列化がメリットにならない部分:

    • とにかく適用される条件が厳しい。
      キャスト/パック/アンパックが必要な場面では自動並列化されない。
    • 総和はもちろん、たかだかmin/maxにも適用されないC/C++は使い物にならない。
      よって、配列演算が使えてsum/min/maxが組み込み関数であるfortranの方がよっぽど自動並列化される。
    • C/C++/fortran共に組み込みのマスク命令が無い。
      比較演算の結果は0/-1ではなく0/1なので、

      e = a == b ? c : d;

      みたいなシンプルなものにしか適用出来ない。

      mask = a == b ? -1 : 0;
      e = (c & mask) | (d & ~mask);

      って二段階に分ければ出来るけど、せっかくintrinsicsを使わないのに直感的にならない。

    C/C++だとmin/maxはOpenMPのreductionにも無いのでやる気が感じられないんだよなあ。
    まあ自分で実装してるけど、せっかくならreductionが使えた方が読み易いよね。

  • by Anonymous Coward on 2010年05月25日 23時24分 (#1769524)

    FreeBSDはgccを捨ててllvmへ移行する方針
    http://journal.mycom.co.jp/articles/2010/05/25/bsdcan01/?rt=na [mycom.co.jp]

    アーキテクチャがたくさんあるNetBSDやOpenBSDだと厳しそうだが
    GPLv3 の件と絡めて今後どうするんだろう

    • by Anonymous Coward

      よくわからないので、どなたかGPL v3が嫌がられている理由を解説していただけませんか?

      • by Anonymous Coward

        この辺か。
        http://journal.mycom.co.jp/news/2007/06/30/013/index.html [mycom.co.jp]
        http://japan.cnet.com/news/ent/story/0,2000056022,20095317,00.htm [cnet.com]
        簡単にいえば、DRMや特許、保護機能を盾に、実質的にソースやバイナリの配布・改編・実行を妨げてはならない、ということかな。
        で、たとえば組み込み機器なんかで、署名したバイナリじゃ

        • by Anonymous Coward

          特許条項の方はApache LicenseとかCPL、EPLなんかでもやってることだからそんなに問題だとは思えないけど、反DRM条項はたしかにやりすぎな気がする。

      • by Anonymous Coward
        どんなに変わろうがGPLはGPL。
        BSDライセンスと違って、GPLは修正される度に病気が悪化してるからなぁ。

        GPLソフトウェアを使うハードは改造出来るようにしないと駄目だとか、AGPL互換とか、DRMが駄目とか、そういうこと言い出してるっぽい。

        MITライセンスやBSDライセンスやパブリックドメインで済むのに無駄にGPLを採用する人はさっさと絶滅して欲しい。
        もはや害の方が大きい。
        • by Anonymous Coward

          そういう話じゃなくてGPL v2までは許容していたのにv3は許容できない理由を訊きたかったのですが。

  • by s.o.b (37712) on 2010年05月25日 13時57分 (#1769254)
    しばらくはバグで悩むんだ
  • by Anonymous Coward on 2010年05月25日 13時40分 (#1769241)
    IA-64のときIntelのコンパイラに転びました。
  • by Anonymous Coward on 2010年05月25日 17時46分 (#1769370)

    時期マイナーリリース版

    「次期」ですね。

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...