1read 100read
2011年11月2期プログラム41: インテルC++コンパイラ9.0発表! (579)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
インテルC++コンパイラ9.0発表!
- 1 :05/06/16 〜 最終レス :11/11/24
- 結構前からインテルのFTPサイトからダウソ出来たがようやく正式に出荷だ。
8.0と8.1は糞だったが9.0は実行速度もアプし、コンパイル時間も短くなった。
インテラーな人は来いノシ
- 2 :
- そんなエサで俺様がクマー(ry
- 3 :
- あどきぼん
- 4 :
- AMD C++ コンパイラ1.0発表
www.amd.com/us-en/Processors/Develop/compiler/download.html
- 5 :
- >>4
Not Foundだが
- 6 :
- >>4
Not Foundだが!!
- 7 :
- 安藤はコンパイラは作らないよ
- 8 :
- http://pc.watch.impress.co.jp/docs/2005/0615/intel.htm
- 9 :
- AMD Core Math Library (ACML)
ttp://developer.amd.com/acml.aspx
- 10 :
- 7.0購入組みだが、9.0も無料でアップグレードできるとは。
メール着てびっくり。
- 11 :
- 効果あった人いる?
速くなったとか小さくなったとか
ためしたところ速度は8とほとんど変わらない。
吐き出すexeは相変わらずでかいし、その割りに速度はVCシリーズ
とトントンかチト負けてる。
もうちょっと頑張って欲しいんだが、使い方が悪いのかな…?
- 12 :
- VC6だとオバカなので IntelCの方が断然早いけど、VC7は賢いのでそんなにかわらない。
でも DualCore に対応したのが大きいと思う。。
- 13 :
- VC8とどっちが賢い?
- 14 :
- VC8のほうが賢いと思う(こっちはまだバグがあるけど)
>でも DualCore に対応したのが大きいと思う
これはどんなアプリで速くなる?(今までのHT対応の
うたい文句とは別のことをするの?)
- 15 :
- AMDプロセッサにも対応しましたね。
というかIntelチェックをはずしただけか。
- 16 :
- それは評価できるな
- 17 :
- だれかインテルコンパイラのすばらしさを語ってくれ。
- 18 :
- MSCってSSEのパック命令を吐いてくれる?
IntelC++は使ってくれるけど。
- 19 :
- >>18
よく知らないけどVC(MSC?)ではSSE関係のビルトインは使ったことは無い。
そもそも無いのかもしれない。
VCでSIMD使いたかったら_asmで直に記述だけど、
ICのSSEビルトイン命令は_asmよりもいいことある?
- 20 :
- >>19
iclはSSEを意識してプログラミングしなくても、必要とあれば勝手に
SSE命令を使ってくれるんじゃなかたっけ?
- 21 :
- >>20
それはVC7,8にもスイッチある。/arch:sse だったっけ?
体感できるほど実感はなかったけど…。
ICの/Qxオプションで体感するほど性能アップを感じた人いますか?
- 22 :
- VC++7.0(.NET 2002)には無いぽ
/Qxオプションよりも/Qaxオプションの方が良いぽ
- 23 :
- >>21
自作プログラムはほとんど速度を要求しないものばかりで
体感云々は感じないけど、姫野ベンチとかはある程度効果があったよ。
icl 9.0 EM64T(-QxW -Qipo -O3)とcl 8.0 x64(-O2 -favor:AMD64)で
10%強くらいの違い。
- 24 :
- よくわかってないんだけど、IntelC++コンパイラって
Linuxでしか使わなくていいよね?Winなら現行と次のVCあれば問題ないよね?
- 25 :
- TK2003のVC7には/arch:sse,sse2オプションあるよ。
>/Qxオプションよりも/Qaxオプションの方が良いぽ
/Qx /Qax どっちも性能アップを体感できなかった… Qaxは動作する
CPUを選ばなくなる代わりに、事前判別のオーバーヘッド&EXEがでかく
なるデメリットあるよね? まあ、どっちにしろ早くならないわけだが。
いままでSIMD系を自動で利用する機能で効果あったためしが無いんだわ。
VC,ICともに。
そもそも_asmで直にSIMD書いても、相当がんばって命令順序の最適化を
やらないと大抵はCのSIMD無しのコードに負けちゃう。(それだけ
通常のコンパイル結果が優れているんだろう)
まあだからこそ手作業で、コンパイル結果より高性能なSIMDのコードを
書き上げることは価値があるんだけどね。
SSE,SSE2を自動で使って幸せになった香具師、語ってくれ!
- 26 :
- >>23
32bit版キボンヌ
- 27 :
- >>24
ICはVCほど高くないし(余計なもの付いてないし)、性能出るなら
導入したいと思ってるんだが、あんなにでかい&VC比で大して速く
ないじゃあしょうがない…
インテルのサイトにIC導入で幸せになった企業の成功談義が載ってる
の見たことあるけど、ほんとかよって感じ
- 28 :
- >>26
WinXP x64、Opteron246、姫野ベンチの配列サイズはMiddle。
MSC Version 14.00.50215.44 for 80x86
/O2 687.5[MFLOPS]
/O2 /arch:SSE /arch:SSE2 407.5[MFLOPS]
ICC Version 9.0 Build 20050430Z Package ID: W_CC_P_9.0.019
/Qipo /O3 877.6[MFLOPS]
/Qipo /QxW /O3 1021.6[MFLOPS]
icl9.0、AMDに対応という割には/QxNが相変わらず使えないんだが。
- 29 :
- >>28
>/O2 /arch:SSE /arch:SSE2 407.5[MFLOPS]
VCだとSSE2使って性能落ちるんかい!
ICが優秀な場合もあるんだねえ〜。あ、でもICにipo(グローバル最適化?)
つけるんならVC8にも/GL,/LTGCつけてあげてよ。
さらにガイドオプティマイズ組み合わせればSSEはともかく結果ひっくり返るかもよ。
- 30 :
- >>29
MSC Version 14.00.50215.44 for 80x86
/O2 /GL 689.7[MFLOPS] (/LTGCは無いみたい)
ちなみにVC6(Version 12.00.8804)
/O2 880.5[MFLOPS]
- 31 :
- >>30
/GLはコンパイル時に、/LTGCはリンク時に付けます(両方必要)
ただ、IDEのプロパティからプログラム全体の最適化でリンク時のコード生成を
選んだのならどっちもついてると思う。
>VC8 /O2 /GL 689.7[MFLOPS]
>VC6 /O2 880.5[MFLOPS]
何かが間違ってる気もしますが、こちらの実感としても
VC6のサイズオプティマイズ(O1)が一番バランスいいという
ケースもあるので、プログラムの性質によってはそういう
結果になるのかも…うーむ。
EXEのサイズはやっぱりICの方がかなり大きい?
- 32 :
- > MSC Version 14.00.50215.44 for 80x86
これって何についてくるコンパイラ? VS2005?
- 33 :
- >>32
VS2005ベータ2
- 34 :
- ICCは実行ファイルでかい。かなりインライン展開とかループの
アンロールとか多いのではなかろうかと思っている。
ところでICC9.0ってANSI/ISO C++に完全準拠したの?以前は説明に例外事項
が出ていたけど9.0のマニュアルにはそうしたことは出てないんですが。
- 35 :
- とりあえずドライストーンをコンパイルして試そうぜ。
イソテルとマイクロンフトの結果も出てるから比較しやすいじゃんぐ。
ttp://pcweb.mycom.co.jp/special/2005/compiler/menu.html
- 36 :
- >ttp://pcweb.mycom.co.jp/special/2005/compiler/menu.html
この記事大丈夫か? ICCがVC必須とかデバッガがIDE上で動くとか
平気で書いてるが…
ベンチマークもいいけど、皆の作成している、現実的な状況での
有用性を知りたい。
- 37 :
- Windows版は文字通りコンパイラだけでリンカが付属してないから少なくともVC++が必要だぞ。
- 38 :
- >>37
xilink6.exeはリンカじゃなかったのか…?
Qipoの面倒だけ見て後はVCのリンカへ丸投げか。
まあ、今はMSからVCただでダウンロードできるからいいのか。
- 39 :
- >>34
アンロールはデフォルトでオフになっているようです。
- 40 :
- >>39
じゃあ何であんなにでっかいんでしょうねぇ?
下手するとVCのデバッグビルドにも匹敵するような
大きさのEXEを吐かないか?
- 41 :
- サイズは少々でかくても速ければいいんだが、
VC++に比べて今一つなんだよなぁ。
- 42 :
- でかさを相するほどは早くないんだよねえ。
VCに負ける場合もあるし(っていうかICが勝ってる実感ほとんどないんよ)
ならばHTやマルチプロセッサ環境(ICの得意分野?)で圧倒的に
役に立ってるよ!って香具師いたら、リポートキボンヌ
- 43 :
- >>40
でかいって、10倍や100倍になってしまうの?
倍くらいの大きさで速くなるのなら別にいいと思う。
- 44 :
- >>39
デフォルトでQunrollですよ、8.1/9,0は。
>>43
倍にもならないです。プログラムによってICCが出力するファイルがMSCより
小さくなることもあります。
- 45 :
- さすがに10倍にはならないけど、VC++で120KB程度ならICCでは
340-400KBくらいにはなる。3-4倍くらいかな。それで10秒かかる計算が
9秒で終わるようになっても嬉しくないわけで、投資する価値があるかと。
ただ、小数計算が多いと整数並みに速くはなるみたいだから
そういう処理が多い人は効果を実感できるんじゃないかな。
- 46 :
- >>43 >>44
各種最適化オプション(高速化のため)を組み合わせると
VCの2〜3倍、ものによっては4倍近くならない?
>倍にもならないです。プログラムによってICCが出力するファイルがMSCより
>小さくなることもあります。
小さくなる事例は見たこと無いなあ…どのぐらいの規模なの?
こちらのはVCで600〜800KB(Ox,GLなど)がICで2MB(Qipo,Qax)近くなる
(デバッグ情報は含んでない、念のため)
- 47 :
- >>46
Qaxつかったらファイルサイズが大きくなるのは当たり前では?
2種類のコードが含まれるわけでしょ。
MSCのオプションを/Ox /GL、ICCを/Qipo /O3(SSE使わない)でコンパイルして
速度とファイルサイズを比較した方がいいとおもうけど。
- 48 :
- >>46
http://www5e.biglobe.ne.jp/~liquor/raytrace/
ここのソースをコンパイルしたらICCがMSCよりファイルサイズが
小さくなったのであのように書きました。
>47にならって、
ICC9.0 Build 20050430Z(/Qipo /O3)がファイルサイズ61440byte、実行時間942[ms]
MSC14.・・・(/GL /Ox)が90112byte、実行時間953[ms]
- 49 :
- >>47
こっちとしてはコンパイラの得意技使ってでも高性能たたき出して
欲しいんいだわ。サイズ2倍3倍になってもコンスタントに2割3割
速くなればうれしい状況もあるし。
Qaxはずしてサイズ縮まったとしてもVCと比べて似たような結果になるだけだ
ったらICを検討する価値ない。(確かに縮まるがVCよりはこっちのケースでは
数百キロでかい)
あと、Qaxをはずしたコードが早くなったらそれこそ笑っちゃうじゃない。
だからQaxをつけた状態でVCに比して速度的に? だったらIC何やってんの?
って思う。実際今そう。
>>48
検証ありがとう^^;
実行時間は1%じゃ誤差の範囲かなあ。吐かれたコードのキャッシュへの
たまたまの乗り具合で変動しちゃうこともあるし。
ファイルサイズについては良いですね。 総じてこういうケースなら
ICをサイズ最適化用のコンパイラとして評価することもできるんだけど、
いかんせんこっちのケースではどうしようもない。
ベンチじゃなくて、ご自身がご飯食べているコードで幸せになりましたか?
そういう生の声が聞きたい。
- 50 :
- >>48
>http://www5e.biglobe.ne.jp/~liquor/raytrace/
ソース見てみましたが、これじゃサイズとして参考にならないと思う。
文句ばかり言って気を悪くしたらごめんなさい。
プログラムが小さすぎて、EXEにくっつくランタイムの大きさとかの差が
もろに出てしまってるのでは?
VC8のランタイムは、VC6,7(ICはこっちを使ってるでしょ?)に比べてかなり
大きいような気がする。
- 51 :
- Aviutlプラグインフィルタ自作していますが、VS2003付属のコンパイラ
より3割ほど速くなりました。
ICCはとてもいいコンパイラですね。
- 52 :
- >>51
指定オプションおしえて
あと、プログラムは浮動少数使いまくり?
- 53 :
- >>52
VSのオプション設定に加えたのは/fastだけ。
単精度使いまくりです。
- 54 :
- Ogg Vorbisの最適化やってるけどサイズはGCCとICLではあまり差が出ない。
最もSSE最適化を使っているのでP3以上のCPU専用コードでビルドしていて
SSE非対応CPU用のコードを含んでいないせいかもしれない。
速度の方はやっぱりICLが速いけど手動SSE最適化を進めるとGCCとの差が短くなる傾向にある。
8.1と9.0では有意な速度差は見られなかった。
- 55 :
- それならそうかもね。
- 56 :
- >>53
プププレスコ?
- 57 :
- >>53
総じて
・でかい
・ある程度規模のあるアプリでは速度差はあまり無い
・浮動小数演算に向いている
かな。今のところ
>>54
>GCCとICLではあまり差が出ない。
GCCとICはどっちもVCよりかなりでかいとどこかで見た気がする。
LINUX?
>手動SSE最適化を進めるとGCCとの差が短くなる傾向にある。
それでもICLの方が早いの?
相当がんばれば手動SSEの方が早くなると思う。まあ、それやっちゃうと
ICはいらんがな。
SSE無しと比べてどのくらい早いですか?
- 58 :
- 24分59秒の曲をAthlonXP 1700+でエンコードした場合
GCC SSE最適化なし 2分53秒09 8.6657倍
GCC SSE最適化あり 2分31秒97 9.8700倍
ICL SSE最適化あり 2分29秒00 10.0667倍
GCC 手動最適化 1分28秒99 16.8555倍
ICL 手動最適化 1分18秒27 19.0533倍
GCCとICLの自動SSE最適化であまり差が無いのはAthlonでの傾向だと思う。
ICLの手動最適化ではプロファイラを使用した2パスコンパイルを実施している。
ICLは基本性能に加えて
小数点演算のSSE/SSE2によるレジスタオペレーション(GCCでもできる)
ベクタライズ化
が優れているんだけどコンパイラによる自動ベクタライズ化では単純な処理しか
できなくてシャッフルを使ったデータの組み換えや条件分岐の置換などは無理。
VC7に関してはあまり使ってないのでよくわからないけど以前見た感じでは
SSEビルトイン命令の最適化が今ひとつだった。
- 59 :
- EM64T版でインラインアセンブラは可能ですか?
- 60 :
- >自動ベクタライズ化では単純な処理
そうそう。出力見ていてベクトル化が成功したとか出ると
おおーっ、と感動したが、該当するソースを見てみると
なんだこれか、これはどうでもいいよ、みたいな。
簡単なものしか成功しないみたいだった。
- 61 :
- >>59
不可
- 62 :
- >>58
>GCC SSE最適化なし 2分53秒09 8.6657倍
>ICL SSE最適化あり 2分29秒00 10.0667倍
おお、早くなってますね! モノによっては効くんだ、ICLのSSE最適化。
VC8での性能も知りたいところだなあ。VC8はガイドプロファイリングオプティマイズ
がかなり賢いから、もしそういうの好きだったら競争させて見てはどうかな
- 63 :
- >>50
>VC8のランタイムは、VC6,7(ICはこっちを使ってるでしょ?)に比べてかなり
ICL、MSCともに同じコマンドプロンプト上で実行しているので
インクルードファイル、ライブラリともに同じものを使っていると思います。
- 64 :
- >>63
例えばレイトレベンチではなくて、
#include "stdio.h"
main(){
printf("hello");
}
だったら似通ったサイズになりますか?
さすがにこれだけだと、生成コードに大差は無いでしょうから。
- 65 :
- それだけ小さいと、main()以外のものが多すぎて比較にならない希ガス。
- 66 :
- リリースビルドで変更箇所/O1 /OPT:NOWIN98のみ
icc9.0:28672バイト
vc.net2002:27648バイト
インテルだめぽ
orz
- 67 :
- >>65
>それだけ小さいと、main()以外のものが多すぎて比較にならない希ガス。
むしろそれが狙い。これやって大きさが変わるようなら、63殿の状況で
ICがVCとは違うものを引っ張ってきている可能性大
>>66
もしかして64に対する返信? ほとんど変わらないんだったら、
http://www5e.biglobe.ne.jp/~liquor/raytrace/
に対してはインテル優秀と言えるのでは。
何でだめぽなの?
- 68 :
- ICL8.1(windows) を利用しているのですが sleep 文を使うとそんな命令はありませんと
怒られてしまいます。 intel compiler には sleep 文は無いのでしょうか?
もしくは適当なヘッダファイルを include する必要があるのでしょうか?
ご存知の方がいらっしゃいましたら、ご教授よろしくお願いいたしますm(__)m
- 69 :
- >>68
<Windows.h>にはSleep関数がある。
- 70 :
- スリープみたいな石鹸♪花王石鹸ホワイト♪
- 71 :
- >>69
ありがとうございます!Sleep を使用する事にします。
- 72 :
- 次の質問は、「Sleep(10)しても10秒止まってくれないのは何ででしょう」かな?
- 73 :
- 誰か、HTかマルチプロセッサ環境で、ループの自動並列化が
役に立った香具師いるかい?
どんなアプリかも教えてほしい
- 74 :
- ICCを手放しでほめてるやつがいてきもいな
- 75 :
- 二日ぶりのレスがそれかよ〜
手放しでほめてるやつんなんていないんじゃない?
- 76 :
- >>74
よくわからんけど、君がキモイ
- 77 :
- athlon64などAMDのプロセッサで使用した際の最適化は他のコンパイラと比較してどうなのでしょうか?
- 78 :
- 3DNow!叩かないからUnko
SSEはおまけ程度だし
- 79 :
- そこで PathScaleですよ
- 80 :
- 久々に進んでると思ったら('A`)
>>76
ムキになるほど心当たりがあるってことだろ
釣られるんじゃね
- 81 :
- IA64スレでちとやってたけど、ICはVCと単純に入れ替えただけじゃあ
さほどうまみが無いという結論になりますた。
この上にある単精度演算の優位性と、あとは組み込みSIMD関数
を使った時の自動命令スケジューリングが命のようです。
- 82 :
- 工作員が入り込んでいるようですね。
- 83 :
- VS2005 beta2手に入れたので、Apache2.0.54 Win32をビルドして
ab.exeで速度をはかってみました。
やり方はhttp://pc8.2ch.net/test/read.cgi/mysv/1048494944/
icc8.1と比べVS2005は12%ダウンですた。
>>82
君はどこの工作員?
- 84 :
- >>83
どっちもコンパイルオプションキボンヌ
- 85 :
- 両方ともApacheに入っていた同じプロジェクトファイル使っていて
速度に関するオプションは/O2だけかと思います。
- 86 :
- ↑>>84
- 87 :
- >>85
もし暇で面倒でなかったら、どちらも最大全力ガR勝負させてみてくれい。
広域最適化やガイドオプチ、インテルの方はQax系も…めんどうだなorzわがままスマソ
- 88 :
- >>84
ごめん逆。12%アップの間違い。
iccとvsでapcacheのディレクトリをそれぞれ作ったんだけど
それぞれ逆のディレクトリにビルドしてしまったorz
- 89 :
- >>88
逆って……またひとつインテルだめぽ伝説がorz
- 90 :
- >>74
使ってもいないのに、文句たれているやつが一番キモイと思います。
- 91 :
- >>87
あまりにもプロジェクト数が多いので、オプション書き直すのが大変です。
すみませんが、ご自分でお試しください。
- 92 :
- 8.1から9.0でほとんど違いはないけど、アセンブラ出力してみると
微妙に違う。依存関係のある演算はなるべく間をおくようになっている。
例えばこんな感じ。
addpsxmm2, xmm4
mulpsxmm2, xmm7
por xmm3, xmm1
↓
addpsxmm2, xmm4
por xmm3, xmm1
mulpsxmm2, xmm7
CPUのスケジューラでやってくれそうなことだけど、効果あるのかな?
- 93 :
- >>92
効果があるなんてもんじゃない。
例えば手動で組むときもそれやんないとCの汎用ルーチンより
遅くなることも珍しくない
つーか今までやってなかったのか?
- 94 :
- >>92
>>93は、オウトオブオーダーをCPUがやってくれたとしても
さらに効果あるよ、ということ。オレの実経験上の話だけど。
- 95 :
-
,.ィ , - 、._ 、
. ,イ/ l/  ̄ ̄`ヽ!__
ト/ |' { `ヽ. ,ヘ
N│ ヽ. ` ヽ /ヽ / ∨
N.ヽ.ヽ、 , } l\/ `′
. ヽヽ.\ ,.ィイハ | _|
ヾニー __ _ -=_彡ソノ u_\ヽ、 | \
.  ゙̄r=<‐モミ、ニr;==ェ;ュ<_ゞ-=7´ヽ > インテルのコンパイラが速いというのは
. l  ̄リーh ` ー‐‐' l‐''´冫)'./ ∠__ アポーが写真屋の一部のフィルターの処理だけ比べて
゙iー- イ'__ ヽ、..___ノ トr‐' / Pen4より速いと宣伝するのと同じくらい信用出来ないことなんだよ!
l `___,.、 u ./│ /_
. ヽ. }z‐r--| / ト, | ,、
>、`ー-- ' ./ / |ヽ l/ ヽ ,ヘ
_,./| ヽ`ー--‐ _´.. ‐''´ ./ \、 \/ ヽ/
-‐ '''"  ̄ / :| ,ゝ=< / | `'''‐- 、.._
/ !./l;';';';';';';\ ./ │ _
_,> '´|l. ミ:ゝ、;';';_/,´\ ./|._ , --、 | i´!⌒!l r:,=i
. | |:.l. /';';';';';|= ヽ/:.| .|l⌒l lニ._ | ゙ー=':| |. L._」 ))
l. |:.:.l./';';';';';';'! /:.:.| i´|.ー‐' | / | |. ! l
. l. |:.:.:.!';';';';';';';'| /:.:.:.:!.|"'|. l' │-==:|. ! ==l ,. -‐;
l |:.:.:.:l;';';';';';';';| /:.:.:.:.:| i=!ー=;: l | l. | | / //
l |:.:.:.:.:l;';';';';';';'|/:.:.:.:.:.:.!│ l l、 :| | } _|,.{:: 7 ))
l |:.:.:.:.:.:l;';';';';'/:.:.:.:.:.:.:.:| |__,.ヽ、__,. ヽ._」 ー=:::レ' ::::::|; 7
. l |:.:.:.:.:.:.l;';';'/:.:.:.:.:.:.:.:.:.|. \:::::\::::: ヽ ::::::!′ :::| .:/
- 96 :
- 3DNowとかAMD系の命令は使えますか?
- 97 :
- 9.0は警告が少なくなったような気がするが。
- 98 :
- インテルのコンパイラに変えたら
20パーセントも速くなりました。
やっぱりハイパースレッディングに対応させたのが良いですね。
こんなに素晴らしいコンパイラを提供出来るインテルは
凄いと思います。
と、一度言ってみたい。
- 99 :
- >>98
それチョウチン記事と一緒
- 100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
-