1 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 00:54:56 ] 結構前からインテルのFTPサイトからダウソ出来たがようやく正式に出荷だ。 8.0と8.1は糞だったが9.0は実行速度もアプし、コンパイル時間も短くなった。 インテラーな人は来いノシ
82 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 18:26:01 ] 工作員が入り込んでいるようですね。
83 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 18:39:03 ] VS2005 beta2手に入れたので、Apache2.0.54 Win32をビルドして ab.exeで速度をはかってみました。 やり方はpc8.2ch.net/test/read.cgi/mysv/1048494944/ icc8.1と比べVS2005は12%ダウンですた。 >>82 君はどこの工作員?
84 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 18:50:01 ] >>83 どっちもコンパイルオプションキボンヌ
85 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 19:01:51 ] 両方ともApacheに入っていた同じプロジェクトファイル使っていて 速度に関するオプションは/O2だけかと思います。
86 名前:85 mailto:sage [2005/06/26(日) 19:02:15 ] ↑>>84
87 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 19:43:55 ] >>85 もし暇で面倒でなかったら、どちらも最大全力ガチンコ勝負させてみてくれい。 広域最適化やガイドオプチ、インテルの方はQax系も…めんどうだなorzわがままスマソ
88 名前:85 mailto:sage [2005/06/26(日) 21:00:53 ] >>84 ごめん逆。12%アップの間違い。 iccとvsでapcacheのディレクトリをそれぞれ作ったんだけど それぞれ逆のディレクトリにビルドしてしまったorz
89 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 21:43:51 ] >>88 逆って……またひとつインテルだめぽ伝説がorz
90 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 22:10:32 ] >>74 使ってもいないのに、文句たれているやつが一番キモイと思います。
91 名前:85 mailto:sage [2005/06/26(日) 22:16:49 ] >>87 あまりにもプロジェクト数が多いので、オプション書き直すのが大変です。 すみませんが、ご自分でお試しください。
92 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 22:49:28 ] 8.1から9.0でほとんど違いはないけど、アセンブラ出力してみると 微妙に違う。依存関係のある演算はなるべく間をおくようになっている。 例えばこんな感じ。 addpsxmm2, xmm4 mulpsxmm2, xmm7 por xmm3, xmm1 ↓ addpsxmm2, xmm4 por xmm3, xmm1 mulpsxmm2, xmm7 CPUのスケジューラでやってくれそうなことだけど、効果あるのかな?
93 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 23:29:19 ] >>92 効果があるなんてもんじゃない。 例えば手動で組むときもそれやんないとCの汎用ルーチンより 遅くなることも珍しくない つーか今までやってなかったのか?
94 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 23:31:35 ] >>92 >>93 は、オウトオブオーダーをCPUがやってくれたとしても さらに効果あるよ、ということ。オレの実経験上の話だけど。
95 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 02:23:09 ] ,.ィ , - 、._ 、 . ,イ/ 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 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 14:02:00 ] 3DNowとかAMD系の命令は使えますか?
97 名前:デフォルトの名無しさん mailto:mage [2005/06/27(月) 21:00:42 ] 9.0は警告が少なくなったような気がするが。
98 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 22:09:50 ] インテルのコンパイラに変えたら 20パーセントも速くなりました。 やっぱりハイパースレッディングに対応させたのが良いですね。 こんなに素晴らしいコンパイラを提供出来るインテルは 凄いと思います。 と、一度言ってみたい。
99 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 22:20:42 ] >>98 それチョウチン記事と一緒
100 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 23:38:32 ] >>98 一部ループが/Qparallelで90%ほど速くなりましたが。Opteronで
101 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 00:00:43 ] nandatte-
102 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 00:05:33 ] 2回ワラタ
103 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 02:01:01 ] >>100 演算量に対しメモリアクセスの少ないループなら有効ですかね? ↓みたいな。 for(i=0;i<100000000;i++) a[i] = sin(b[i]) + cos(b[i]);
104 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 08:58:54 ] わかった! for(i=0;i<100000000;i++); これが i=100000000; に最適化されたんじゃねーの?
105 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 19:12:13 ] >>103 それでは、Qparallelは有効になりません。 ループ内におけるメモリアクセスの割合がまだ大きいです。 a[i] = sin(i%123) + cos(i%456); このくらいやらないとw
106 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 20:01:46 ] 三角関数は周期関数だから
107 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 20:42:26 ] C++で、for文で宣言された変数のスコープってどうなっていますか? forブロックの中、それとも外のブロック?
108 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 20:51:40 ] 設定出来る
109 名前:デフォルトの名無しさん [2005/06/29(水) 21:23:29 ] AMD、インテルを米独禁法違反で提訴 www.amd.com/jp-ja/Corporate/VirtualPressRoom/0,,51_104_543~99722,00.html インテルは、ソフトウェア・プログラムを機械が読み取れる言語に翻訳するコンパイラを 設計する際に、AMDプロセッサ搭載コンピュータ上でプログラムを実行した場合は性能が 低下するようにした
110 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 22:54:42 ] >>109 if(AMD){ 遅いコード; } else { 速いコード; } ってコード吐き出すのかね?(ワラタ)
111 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 00:37:16 ] 安藤のCPUで速かったら、別の意味で凄いな。 というか、それならぜひとも買ってみたいぞ。
112 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 00:38:48 ] もしやバイナリーのサイズが恐ろしく巨大なのは 対AMDのコードが挿入されているとかw
113 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 00:58:59 ] とにかく、インテルのコンパイラはAMDに対応しているわけだ。
114 名前:デフォルトの名無しさん [2005/06/30(木) 09:18:59 ] このスレ読むとiccって一部の評判ほど高速化しない様だけど www.drk7.jp/MT/archives/000772.html こういう情報もあるわけで 結局どうなんですか賢者様
115 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 11:29:45 ] >>114 他のコンパイラもそんなにタコでもない、元の比較対象か状況が あまりにも特殊か、どこか間違えてるんじゃない?
116 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 12:37:32 ] >>114 自分で確認すりゃいいじゃん。
117 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 13:10:53 ] よく分からないがそのベンチマークは一カ所からのリダイレクトを計っている だけか?
118 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 13:46:16 ] 人リ〒ノレ
119 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 15:45:36 ] >>116 自分の場合、とりあえず動作する環境構築は出来たとしても、 パフォーマンスに影響を与える色々な設定を あまり熟知していないので、自分の比較検証なんてアテになりません。
120 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 16:09:14 ] その環境でも比較することは出来る。 パフォーマンスに影響を与える色々な設定をあまり熟知していないなら、 そういう使い方が自分の使い方になるわけだから、 それで比較してみれば良い。それで十分。 自分なりに検証してみることが重要。
121 名前:デフォルトの名無しさん [2005/07/08(金) 18:43:54 ] アップデートあげ Intel® C++ Compiler 9.0 for Windows* product update is now available for download. The package id is w_cc_c_9.0.020 IA32 Compiler Build 20050624Z , Itanium Compiler Build 20050628 , Intel(R) C++ compiler for EM64T-based applications, Version 9.0 Build 20050623.
122 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 22:24:36 ] 何か良くなった?
123 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 22:40:15 ] r‐┐ r‐┐ r‐┐ |_|. __ .__| |__ .| | | ̄| | ̄!'´. `ヽ |__ __| | | | | |. .r"⌒ヽ .| | |. ___ | | | | | | | | | | ,r''" .`ヽ | | | | | | | | | !__i'. ,r"⌒ヽ i| | |_| |_| |_| !、___ _ ̄ ̄ __.,| ! !、 ̄ ̄,―, ゝ、_  ̄ _ノ  ̄ ̄ ∩∩ High performance and low price ∩ (7ヌ) (/ / / / ∧_∧ || / / ∧_∧ ∧_∧ _(´∀` ) ∧_∧ || \ \( ´∀`)―--( ´∀` ) ̄ ⌒ヽ(´∀` ) // \ /⌒ ⌒ ̄ヽ、Itanium/~⌒ ⌒ / | |ー、 / ̄| //`i Xeon / |Celeron| |Pentium/ (ミ ミ) | | | | | | / \ | | | | ) / /\ \| ヽ / ノ | / ヽ ヽ、_/) (\ ) ゝ | | | | / /| / レ \`ー ' | | /
124 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 00:58:43 ] インテルコンパイラ、インストールがわかりにくい おまけにIEがデフォブラウザじゃないとインストールできない
125 名前:デフォルトの名無しさん [2005/07/13(水) 03:10:48 ] dual CPU,ハイパースレッディング環境で main thread の他に演算 作業用スレッドを 4個作って処理させています。 4個のスレッドがそれぞれ 異なる4つの(論理)CPU に割り当てられた時はとても速く動作するのですが、 同じ CPU に2つのスレッドが割り当てられたりすると、1つのCPUが遊んで しまい、処理が遅くなってしまう事があります。このような事を防ぎ、 確実に異なる CPU にスレッドを割り当てたいのですが、よい方法は ありませんでしょうか?お詳しい方がいらっしゃいましたらぜひご教授 よろしくお願いいたします。
126 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 05:04:56 ] >>124 直接、setup.exe起動すればいいのでは?
127 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 05:19:45 ] >>125 www.intel.com/cd/ids/developer/asmo-na/eng/dc/threading/knowledgebase/43838.htm
128 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:39:26 ] >>125 WinだとSetAffinityMaskとか割り振りようのAPIがある。実際そういうコード組んでる
129 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:45:11 ] >>126 ダウンロードしたやつのインストールの話なんだが、直にsetup 叩いてもうまくいかなかった。デフォブラウザがOperaだと実際 インストールが途中で失敗する。仕方ないのでIEに戻したよorz ネスケとかだとどうかな?
130 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:54:04 ] >>128 Affinityのマスクbitがどの論理CPUを示しているのわからない。 127にあるように、Affinityを変えるごとにAPIC IDを確認していくのが確実。
131 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 10:25:32 ] >>130 >>125 は分散させたいのでは。 どの論理CPUかは、前から割り振られてんじゃないの?
132 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 10:59:19 ] 2つのスレッドをそれぞれ別の物理プロセッサに割り当てたい といっていると思うのだけど。
133 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 12:23:00 ] 4個のスレッドを4個の論理CPUに分けたいのかと思った。 そうかなるほど、どの論理CPUがどの物理CPUかはわからんのか。
134 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 18:59:15 ] >>132 同じ物理CPUでも別の論理CPUなら、さほど酷いことには ならないんじゃない? 物理CPUまで別のときに比べて どれほどうまみがあるかはものによると思うけど
135 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 05:01:26 ] >>134 2つのスレッドがビジーであれば、スレッドは1つずつ論理プロセッサに 勝手に割り当てられる。
136 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 08:39:46 ] >同じ CPU に2つのスレッドが割り当てられたりすると、 これが 1・同じ物理 CPU に2つのスレッドが別の論理CPUに割り当て 2・同じ論理 CPU に2つのスレッドが同時に割り当て どっちだ??
137 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 12:52:37 ] .,Å .r-‐i'''''''''''i''''‐-、 o| o! .o i o !o .|\__|`‐´`‐/|__/| |_, ─''''''''''''─ ,、 / 、-' u -、 / U 0 \ / / i | ● ,,. .,, ● | __ . ! (_人__) ノ /´ ̄ `!. 丶_ u U ノ | `にこ匸'_ノ . '-、、,,,,,,_______,,,,,,、、-' ノ u { _.. -―| :{ ,/ / \ . / l | __ / ̄ ̄`>'´ ノ' ´ {、 \ / |/ {'´ `ヽ. " ̄\ U `ヽ. __,,.. -‐丶 u ヽ | / ヾ、.. } u' 〉、 } `ー''´ /´ ̄ `ヽ '" ̄\ ! :} )「` ノ、 ノ l\"´_,,ニ=-― <´ ヽ{ ノ( `、 | l 、_,/j `ー一''" }, ノ , '''''"" \ ヽ ⌒ヾ v | ヽ _ / } {. { l ┌n‐く ヽ/ ``\ ノ `¨´ `¨¨¨¨´ ̄`{ 0 `'^┴'ー┘|ヾ }、 u' ` --‐r'′ キングヤッタス!!
138 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 10:41:33 ] もうインテルコンパイラの話題は無いのか…オレのお試し期間ももうすぐ終了だぁ
139 名前:デフォルトの名無しさん [2005/07/15(金) 13:03:46 ] www.itmedia.co.jp/news/articles/0507/14/news031.html
140 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 13:47:47 ] >プログラムが真正のAMD製マイクロプロセッサを探知した場合には AMDなんて探知していない。 Intel以外は全部だめ。
141 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 14:04:39 ] おれんとこじゃPen系でもVC8の吐き出したやつに負けるからどうでもいいが、 でもクラッシュはホントかね。別のコードパスが実行されるって、 両方持って得る香具師ステップして確かめたことある? たとえばQaxNだと北林かそうで無いかで分けるから結果そうなるんじゃないのか。 クラッシュとかしたらソフト出荷できないからかえってコンパイラの信頼落ちるだろ?
142 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 14:27:27 ] >>141 先にIntelチェックをしてから、CPUの機能をチェックしているので 北森だろうがなんだろうが関係ないです。 うちはAthlon64だけど、全体的にVC8よりICCの方が速いですね。 もちろんIntelチェックを行わないよう細工しています。
143 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 14:57:45 ] あのEXEのでかさはマジでインテル以外の遅いコードパスが 入ってるからなのか? 信じられん 細工の詳細キボンヌ
144 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 16:57:19 ] どうせなら This program is only on Intel CPU Sorry! とか出して 止まっちゃうほうが潔いね。英語への突っ込みは無しねorz
145 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 17:25:12 ] >>143 ↓をmain()のあるソースに加えて、linkオプションに/FORCEを付ける。 extern int __intel_cpu_indicator; void __intel_cpu_indicator_init(void) { ・ ・ ・ 拡張命令使うなら __intel_cpu_indicator = -512; 使わないなら __intel_cpu_indicator = -1; }
146 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 17:47:29 ] >>145 ありがと。マジなんか… どっちでAMDでも最適化コードが使われるようになるの? __intel_cpu_indicator = -512; __intel_cpu_indicator = -1; あと、ホントにそのチェック外しても大丈夫なんかね? インテル固有オペコードとかを使っているのを他のCPUで 実行させたときにおかしくならないようにする為の細工じゃないのか
147 名前:デフォルトの名無しさん mailto:sage [2005/07/15(金) 18:43:22 ] 普通に考えりゃ __intel_cpu_indicator = -512; っすねorz
148 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 23:37:29 ] MFCのクラス(CBitmap等)を含むVC++ .NET2003で作成された クラスライブラリを、そのままインテルコンパイラで コンパイルできるのでしょうか? ソース的には、ベクトル、行列演算、三角関数等の浮動小数点演算を含む 動画画像処理系のソースなんですが、コンパイラによりどの程度の 速度差が生まれるのか興味があります。 業務に使っているPCなので、体験版・試用版のプログラムは入れられない事に 社内規約上なっていて、インテルコンパイラでコンパイルできるのであれば 購入して試してみたいと思っています。
149 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 00:45:45 ] >>148 望む情報かどうかは分からないけど VC:'a':無符号 ICC:'a':符号あり でした。スイッチとかあるかもしれないけど、両方のコンパイラで 同じ動作させるには何がしかの苦労はあるんじゃないかな 互換性は高い方だと思いますが。 >体験版・試用版のプログラムは入れられない事に 体験版入れて、気に入ったらそのまま製品版ライセンスを 購入できるのでは? XLsoftに聞いてみたらいいと思う。 性能アップしたらリポートキボンヌ
150 名前:148 mailto:sage [2005/07/17(日) 01:32:51 ] >>149 ありがとうございます。なるほど。互換性も含めて確認してみたいですね。 60日間、体験版として使った後に、気に入ったら製品版ライセンスを取得して ライセンスファイルを取得・指定すれば、即製品版になるという事のようですね。 月曜日に出社するので、試してみます。 現状の会社のPCはデュアルXeon 3.06GHzなので、SSE2/3 を含め、 デュアルコアだけでなくHT/マルチCPU環境で、 インテルコンパイラがどんな仕事をしてくれるか、楽しみです。 (大きな期待はしていません。) 結果などは、何か解りしだい書きますね。
151 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 01:45:51 ] >>150 追記 9のインストールは先に8のインストールが必要でかなり分かりにくい (おまけのその8がまともに動かない明らかにエラーのある バージョンに先祖がえり起こしてるw) そこから9へアップするのはプレミアサポートへの登録がさらに 必要だったと思う(無料だけど) 他に、体験版は30日だった気がする。IEもデフォのブラウザで必要。 じゃあガンバッテ
152 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 07:58:07 ] >>149 すくなくともVCにはcharをunsigned charにするオプションが在る。
153 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 09:24:24 ] ICCにもある。/Jオプション
154 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 09:43:10 ] >>152 >>153 そういうこと? どっちもデフォの状態として VC : char : signed , 'a' : unsigned ICC : char : signed , 'a' : signed のような気がするんだけど。 半角アルファベットだと差は無いけど、漢字とかをシフトして 両者の違いに気がついた
155 名前:148 mailto:sage [2005/07/17(日) 15:22:56 ] >>154 VC++ .NET2003では、char はデフォルトでは signed char のようです。 /J オプションで unsigned char になるようですね。 ICCでも、この点は同じオプションで指定できるということのようですね。 今のところ、VC++ IDEベースで、ICCを使おうと考えているので、 プロジェクトファイルを VC →ICC へ変更して使えば、 コンパイルオプションは、そのまま引き継がれそうです。
156 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 16:04:07 ] charは同じだけど、'あ'って全角の文字定数を書くと、 ICCはsigned short っぽい動作をするのではないか。 VCはunsigned short。前出のスイッチの問題じゃないと思う
157 名前:148 mailto:sage [2005/07/18(月) 22:59:49 ] とりあえず、速報ですが、ICC Ver9.0(30日間試用版)をダウンロードして試してみました。 環境は、Xeon 3.06GHz × 2 / Windows XP Pro/ 32bitの環境で、HTはONです。 従来、VC++ .NET 2003で平均35ms程度かかっていた画像処理タスク関数処理時間 (NTSC同期フレーム処理)が、平均23ms程度に高速化できました。 オフライン処理でbmpファイルを1000枚読ませて処理される場合などでも、明らかに速度差があります。 期待以上の結果でした。 基本的にVC++ .NET2003のIDE環境で、プロジェクトファイルをICC形式へコンバートしているので、 VC++ .NET2003のコンパイラと広域最適化、組み込み関数、Pentium4コードなどの最適化オプションは同一です。 ただし、ICC向けに拡張されている項目では「Pentium4 なんとか SSE3」にしています。 ループ処理の自動並列化(スレッド化?)の項目は、有効にすると例外処理で落ちるようになりましたので、設定していません。 VC++ .NET2003と共通のSIMD SSE、SSE2コードを使うかどうかの設定は、SSE2にすると微妙に速度が落ちたので、両社ともSSEコードで使うようにしています。 コンパイルオプションなどは、後日書ければと思います。 実行ファイルサイズですが、リリース版で VC++ .NET 2003 418KByte ICC 622KByte という結果になりました。 今回、画像処理アルゴリズムは、Static Linkライブラリ化して、分割コンパイルで リングバッファリングなどをしている メインタスクとリンクして使うようにしていますが、 画像処理アルゴリズムだけ ICC でコンパイルし、メインタスクはVC++ .NET2003で コンパイルすると、リンクは通り、実行ファイルは作成されるものの、実行すると例外処理で落ちる状態となりました。 現在は、メインタスクもアルゴリズム側も、ICC でコンパイルしています。 ICCでのコンパイルですが、一部のレジスタ変数で警告がでる他はコンパイル時間も速く、思ったより快適でした。
158 名前:148 mailto:sage [2005/07/18(月) 23:01:44 ] ↑の全角の文字定数問題!? は、まだ確認していません。 画像処理結果で算出される浮動小数点パラメータですが、VC++ .NET2003の結果と ICCの結果は、数値演算レベルでは完全に一致はしませんでした。 SIMD命令関係で、丸め込まれているだけかも知れません。 画像処理結果として、影響がでる範囲ではありませんでしたので、今回の用途では問題にはなりません。 正直、画像処理アルゴリズム側のソースは、Cレベルの記述でも、もっと最適化できると思われる レベルのソースでかなり悲惨な内容です。グレースケール画像自体を float で持っていたりして 内容的にも浮動小数点演算の固まりのようなソースなので、 こういう状態のソースには ICC は強いのかも知れません。orz
159 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 23:41:34 ] >浮動小数点パラメータですが、VC++ .NET2003の結果とICCの結果は、 >数値演算レベルでは完全に一致はしませんでした。 そう、違う。よく比較してみると結構違ってたりするので注意が必要。
160 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 00:00:56 ] 効果ある人もいるんだ…ウラヤマスイ おれはコンパイル時間かかるは実行性能落ちるわで散々。 今んところ導入は見送っているよ >Cレベルの記述でも、もっと最適化できると思われる 得てしてコンパイラの最適化ってのはこんなもんでしょうねぇ おれんところのはやはり画像処理系だけど、手でがりがりにチューニングしている。 もちろんSIMDなんかも自前で使っている。この状態だとVCの方がいい結果を出す
161 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 07:39:32 ] >>145 SSEを使用しない場合__intel_cpu_indicator = 1(というか8bit以内) じゃないといけないのでは? -1だと、SSE使用のパスに分岐してしまうような。
162 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 09:18:29 ] >>161 >>142 に >先にIntelチェックをしてから、CPUの機能をチェックしているので とあるのでSSEチェックよりも前の話かと思ったんだけど…?
163 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 10:57:05 ] >>162 >(拡張命令を)使わないなら >__intel_cpu_indicator = -1; ここが間違いではないかと言っているのです。 あと、拡張命令を使う場合も-512(0xfffffe00)だとまずいです。理由は(ry
164 名前:デフォルトの名無しさん mailto:sage [2005/07/20(水) 06:39:49 ] >>163 オリジナルの__intel_cpu_indicator_initみると、CPUの認識で __intel_cpu_indicatorに入れる値はSSE2以降が0x400、SSE3以降が0x800と なるみたいですね。
165 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 14:28:55 ] バージョンごとに変えてきていたりして。
166 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 17:21:54 ] うひゃあ、こりゃ使えんなあ
167 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 23:10:13 ] 毎日毎日文句言ってintelチェック無しのを送ってもらった
168 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 00:50:27 ] AMD乙
169 名前:デフォルトの名無しさん [2005/08/04(木) 03:22:24 ] アップデートあげ
170 名前:デフォルトの名無しさん [2005/08/04(木) 23:07:49 ] ねえ、VC8って何のこと。.NET2005のこと? おせーてつかーさい。
171 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 21:11:31 ] ads.slashdot.jp/banner/fxbn3002ja.gif?1123329845250
172 名前:デフォルトの名無しさん [2005/08/30(火) 09:36:34 ] ICCではVCの __assume() みたいなこと出来ないんですか?
173 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 08:57:13 ] 使えます
174 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 08:46:09 ] なあ、最新版はAMD対応って書いてあるんだが intelチェックが外れただけだったりするんだろうか
175 名前:デフォルトの名無しさん [2005/09/01(木) 16:20:11 ] バイナリーをfcコマンドで比較して 差分を検討汁!
176 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 18:46:27 ] >>174 外れていないわけだが
177 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 19:05:10 ] fcコマンドってなんですか?
178 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 19:19:14 ] fc:ファイルとファイルを比較するコマンド >C:\ fc a.txt b.txt > c.txt とするとc.txtにa.txtとb.txtの違いが保存される。 バイナリーファイルの比較も出来る。
179 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 21:45:06 ] おーいそんなことわざわざ説明するなよ
180 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 00:53:37 ] pc8が復活して久々に見に来たけど、ぜんぜん話題が進んでない。 プログラマは専ブラ使わないのねw
181 名前:デフォルトの名無しさん [2005/09/21(水) 21:15:14 ] インテルから評価版のアンケート来てるぞ。 じゃんじゃん書いてやれ。
182 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 22:44:12 ] コンパイヲ ユソパ丁ヲ