インテルC++コンパイラ9.0発表!

■ このスレッドは過去ログ倉庫に格納されています
2005/06/16(木) 00:54:56
結構前からインテルのFTPサイトからダウソ出来たがようやく正式に出荷だ。
8.0と8.1は糞だったが9.0は実行速度もアプし、コンパイル時間も短くなった。
インテラーな人は来いノシ
2005/07/17(日) 09:43:10
>>152 >>153
そういうこと? どっちもデフォの状態として

VC : char : signed , 'a' : unsigned
ICC : char : signed , 'a' : signed

のような気がするんだけど。

半角アルファベットだと差は無いけど、漢字とかをシフトして
両者の違いに気がついた
155148
垢版 |
2005/07/17(日) 15:22:56
>>154

VC++ .NET2003では、char はデフォルトでは signed char のようです。
/J オプションで unsigned char になるようですね。

ICCでも、この点は同じオプションで指定できるということのようですね。

今のところ、VC++ IDEベースで、ICCを使おうと考えているので、
プロジェクトファイルを VC →ICC へ変更して使えば、
コンパイルオプションは、そのまま引き継がれそうです。
2005/07/17(日) 16:04:07
charは同じだけど、'あ'って全角の文字定数を書くと、
ICCはsigned short っぽい動作をするのではないか。
VCはunsigned short。前出のスイッチの問題じゃないと思う
157148
垢版 |
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でのコンパイルですが、一部のレジスタ変数で警告がでる他はコンパイル時間も速く、思ったより快適でした。
158148
垢版 |
2005/07/18(月) 23:01:44
↑の全角の文字定数問題!? は、まだ確認していません。

画像処理結果で算出される浮動小数点パラメータですが、VC++ .NET2003の結果と
ICCの結果は、数値演算レベルでは完全に一致はしませんでした。
SIMD命令関係で、丸め込まれているだけかも知れません。
画像処理結果として、影響がでる範囲ではありませんでしたので、今回の用途では問題にはなりません。

正直、画像処理アルゴリズム側のソースは、Cレベルの記述でも、もっと最適化できると思われる
レベルのソースでかなり悲惨な内容です。グレースケール画像自体を float で持っていたりして
内容的にも浮動小数点演算の固まりのようなソースなので、
こういう状態のソースには ICC は強いのかも知れません。orz
2005/07/18(月) 23:41:34
>浮動小数点パラメータですが、VC++ .NET2003の結果とICCの結果は、
>数値演算レベルでは完全に一致はしませんでした。
そう、違う。よく比較してみると結構違ってたりするので注意が必要。
2005/07/19(火) 00:00:56
効果ある人もいるんだ…ウラヤマスイ

おれはコンパイル時間かかるは実行性能落ちるわで散々。
今んところ導入は見送っているよ

>Cレベルの記述でも、もっと最適化できると思われる
得てしてコンパイラの最適化ってのはこんなもんでしょうねぇ

おれんところのはやはり画像処理系だけど、手でがりがりにチューニングしている。
もちろんSIMDなんかも自前で使っている。この状態だとVCの方がいい結果を出す
2005/07/19(火) 07:39:32
>>145
SSEを使用しない場合__intel_cpu_indicator = 1(というか8bit以内)
じゃないといけないのでは?
-1だと、SSE使用のパスに分岐してしまうような。
2005/07/19(火) 09:18:29
>>161
>>142
>先にIntelチェックをしてから、CPUの機能をチェックしているので
とあるのでSSEチェックよりも前の話かと思ったんだけど…?
2005/07/19(火) 10:57:05
>>162
>(拡張命令を)使わないなら
>__intel_cpu_indicator = -1;
ここが間違いではないかと言っているのです。

あと、拡張命令を使う場合も-512(0xfffffe00)だとまずいです。理由は(ry
2005/07/20(水) 06:39:49
>>163
オリジナルの__intel_cpu_indicator_initみると、CPUの認識で
__intel_cpu_indicatorに入れる値はSSE2以降が0x400、SSE3以降が0x800と
なるみたいですね。
2005/07/24(日) 14:28:55
バージョンごとに変えてきていたりして。
2005/07/24(日) 17:21:54
うひゃあ、こりゃ使えんなあ
2005/07/31(日) 23:10:13
毎日毎日文句言ってintelチェック無しのを送ってもらった
2005/08/02(火) 00:50:27
AMD乙
169デフォルトの名無しさん
垢版 |
2005/08/04(木) 03:22:24
アップデートあげ
170デフォルトの名無しさん
垢版 |
2005/08/04(木) 23:07:49
ねえ、VC8って何のこと。.NET2005のこと?
おせーてつかーさい。
2005/08/06(土) 21:11:31
http://ads.slashdot.jp/banner/fxbn3002ja.gif?1123329845250
172デフォルトの名無しさん
垢版 |
2005/08/30(火) 09:36:34
ICCではVCの __assume() みたいなこと出来ないんですか?
2005/08/31(水) 08:57:13
使えます
2005/09/01(木) 08:46:09
なあ、最新版はAMD対応って書いてあるんだが
intelチェックが外れただけだったりするんだろうか
175デフォルトの名無しさん
垢版 |
2005/09/01(木) 16:20:11
バイナリーをfcコマンドで比較して
差分を検討汁!
2005/09/01(木) 18:46:27
>>174
外れていないわけだが
2005/09/01(木) 19:05:10
fcコマンドってなんですか?
2005/09/01(木) 19:19:14
fc:ファイルとファイルを比較するコマンド
>C:\ fc a.txt b.txt > c.txt
とするとc.txtにa.txtとb.txtの違いが保存される。
バイナリーファイルの比較も出来る。
2005/09/01(木) 21:45:06
おーいそんなことわざわざ説明するなよ
2005/09/02(金) 00:53:37
pc8が復活して久々に見に来たけど、ぜんぜん話題が進んでない。
プログラマは専ブラ使わないのねw
181デフォルトの名無しさん
垢版 |
2005/09/21(水) 21:15:14
インテルから評価版のアンケート来てるぞ。
じゃんじゃん書いてやれ。
2005/09/21(水) 22:44:12
コンパイヲ
ユソパ丁ヲ
2005/10/06(木) 14:38:25
保守
184デフォルトの名無しさん
垢版 |
2005/11/06(日) 16:34:49
AMDも自社製品向けの最適化コンパイラ出せばいいのに。
ライバルのICCで最適化する必要が有るじゃダメだろ。

gccで最適化ってマカー並みだな。
185デフォルトの名無しさん
垢版 |
2005/11/07(月) 12:21:46
amdでも他のコンパイラより最適化は強力ですか?
2005/11/07(月) 13:30:37
PathScaleだっけか、Opteron最適化を売りにしているよね。
Windows版がないようだけど。
2005/11/07(月) 22:33:58
amdはヴィジュアルスタジオを推奨してるよ
2005/11/07(月) 22:48:50
>>184
最適化コンパイラ作るにはそれなりの人材と資金がいるから大変なんだよ。
IntelもCompaq(DEC)などからかき集めてきたみたいだし。

AMDも自社のCPU用に最適化した数値演算ライブラリ(AMCL)なら出してるけどね。
2005/11/08(火) 13:58:46
それなりの人材と資金を投入しても他社のものと
大して代わり映えのしないものしか作れないと
いうのも問題だ。
2005/11/09(水) 08:02:25
Opteron上でSolaris 10 + Sun Studio 10という開発環境を使うというのはどうでしょう?
2005/11/11(金) 17:24:29
SunはOpteron機のSPECfp2000計測に
自動並列化オプションでコンパイルしてスコアを伸ばしているね。
http://www.spec.org/cpu2000/results/res2005q4/cpu2000-20050906-04678.html
Intelなどの他のコンパイラにも自動並列化機能はあったと思うけど、
SPECfp2000で使われているのって見たことないな。
192デフォルトの名無しさん
垢版 |
2005/11/12(土) 03:10:12
>>145
リンカに__intel_cpu_indicator_initは既にあるといわれてしまうんだけど
どうして?
2005/11/12(土) 03:37:50
ふつーは__intel_cpu_indicator_initが既にあるから
2005/11/12(土) 04:13:51
確実に適当だな
195デフォルトの名無しさん
垢版 |
2005/11/12(土) 06:40:59
>>192
/FORCEオプション付けてないというオチじゃねーだろうな
2005/12/02(金) 14:10:19
OpenMPは標準で使えるのでしょうか?
197デフォルトの名無しさん
垢版 |
2005/12/05(月) 15:33:30
インストール時に

Where is a valid FLEXlm license for this product?
Enter path to directory or file, or port@host for counted licenses, or just press 'Enter' to exit   :   

というメッセージが出るのですがこれは.licファイルのことではないのでしょうか?
.licファイルを指定しても同じメッセージが出てきて先に進めません。よろしくお願いします。
2005/12/06(火) 18:19:12
>>197
.licファイルをc:\においても駄目?
パスに日本語やスペースが入ったりすると駄目だったような気がする。
2005/12/11(日) 01:40:24
そーいえばさぁ、12月ごろに
アンケート結果を公表すると言ってたのはどうなったんだ?
インテル嘘付いてる?
まだか?
200ハーピィ
垢版 |
2005/12/24(土) 01:07:15
E・∇・ヨノシ <200ゲット♫
2006/01/10(火) 06:04:46
なぜに、sseの組み込み関数があるとベクトル化してくれないの?
2006/01/16(月) 05:09:11
ipoを有効にして、スタティックライブラリを作成したんだが、
ファイルサイズが、ipoを無効にしている場合と比べて、
およそ800倍になってしまった上に、そのライブラリを
リンクすると内部エラーが起こる。
同じ症状の人はいないか?
2006/01/16(月) 05:51:05
     )、._人_人__,.イ.、._人_人_人
   <´ 天狗じゃ、天狗の仕業じゃ! >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+     ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (       ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) )      ;;;|// ///
////|::::    +   U | |||| !! !!||| :U   ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |    ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー----−' |__////
2006/01/26(木) 10:20:02
VC7で通ってたソース。これで、リビルド
したら、メンバテンプレートでエラー。
まさか、対応してない?
2006/01/26(木) 14:27:04
>>204
再現する最小のコードきぼんにゅ
2006/02/04(土) 07:07:40
-staticを付けると逆に遅くなった・・・
普通速くならないっすか?
2006/02/04(土) 11:59:42
コードが膨れたんでは
2006/02/04(土) 23:29:57
>普通速くならないっすか?
そうなん?
単にライブラリ無いとこでも動けるようにするってだけじゃん?
速度は関係ないような。いやむしろ遅くなるのかな
209デフォルトの名無しさん
垢版 |
2006/02/17(金) 17:06:28
sseを使用するように支持するにはどんなオプションをつければいいのでしょうか?
2006/02/17(金) 17:47:49
/QxK
/QaxK
のようなもの
2006/02/17(金) 18:06:32
CPU指定ぐらいだと精度をみるかぎり、x87の方使われてるよね
自分で組み込み関数使って書いた方がいいと思う。
2006/02/19(日) 14:31:32
>>209は返事しないのか?
嫌な奴だな。
213デフォルトの名無しさん
垢版 |
2006/02/20(月) 07:12:46
boostはつかえないの???
2006/02/20(月) 17:18:16
-fastは-O3よりも最適化されるのか?
2006/02/20(月) 17:23:00
-fastって9.0から無くなってね?
2006/02/20(月) 17:29:26
-fastってリンクできなくね?
217デフォルトの名無しさん
垢版 |
2006/03/03(金) 22:00:44
-fastでコンパイルすると
Fatal Error : This program was not built to run on the processor in your system.
って出て動かないぜ!


orz
2006/03/04(土) 07:59:48
>>217
-fastは/QxP /O3 /Qipo /Qprec-div-と等価なのでPentium4+SSE3でコンパイルされる。
/QxPを使用するプロセッサに応じて変更すべし。
詳しくはicl /?で。
2006/03/08(水) 06:53:44
ICC9をItanium上で使用しているのですがsleep()関数を利用するためにはどのヘッダをインクルードすればよいのでしょうか
2006/03/08(水) 07:30:31
#include <unistd.h>
2006/03/14(火) 22:59:23
オプションって内容が重複してると効果ないorまずい?
2006/03/16(木) 00:31:53
-O0と-O3両方つけてコンパイルしたものとオプションの順番変えたものの比較してくれ
2006/03/18(土) 22:36:51
TextSS のWindowsXP(Professional)64bit対応化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
224デフォルトの名無しさん
垢版 |
2006/03/26(日) 20:37:15
http://www.vector.co.jp/soft/win95/util/se072729.html
225デフォルトの名無しさん
垢版 |
2006/04/02(日) 06:25:04
fedora core 4 でインストールしているのですが、インクルードファイルの場所を追加したいのですが
どこに書けばよいのでしょうか?
226225
垢版 |
2006/04/02(日) 06:34:22
環境変数INCLUDEに追加してみたのですが、インクルードすべきファイルが見つからないというエラーになってしまいます
227225
垢版 |
2006/04/02(日) 06:39:43
なお、直接コンパイル時に -I オプションで指定してやると、問題なくコンパイルできます。
2006/04/02(日) 08:13:01
直接コンパイル時に-Iオプションで指定してやるといいんじゃないか
229225
垢版 |
2006/04/02(日) 08:45:42
環境変数に追加する方法を知りたいのですが・・・
2006/04/02(日) 16:39:23
.specsのどっかに、デフォルトのオプションを追加できるよ
俺も詳しいやり方は知らね
2006/04/03(月) 00:23:10
常にオプションが追加されても構わないのであれば icc.cfg ファイルに書くとか。
2006/04/20(木) 00:42:19
ちと質問。
3/2リリースのでVS2005に対応したぽいけど、統合環境に組み込めるのかな?
リリースノートにはcommand-lineだけとか書いてあるように見える・・・
VS2005の強化機能は使いたいけど、ちゃんと組み込めるんだろうか
2006/04/20(木) 18:53:46
>>232
ttp://www.xlsoft.com/jp/products/intel/support/intel_faq/cpp/windows/sb/xl-02162006-1.htm
>インテル コンパイラー 9.0 Windows 版は、Microsoft Visual Studio 2005 をサポート
>します。このサポートはコマンドラインからのコンパイルのみが対象です。
>
>Visual Studio 2005 IDE (統合開発環境) への統合機能は、近日中にリリース予定
>のバージョン 9.1 にてサポートする予定です。
2006/04/20(木) 22:32:59
>>233
d。
そうかー9.1まで待ちかー。
でも上の方見ると、普通にVC2005の方が強力に見える・・・
OpenMPもサポートしたしねえVC。
これでMPIもサポートし出したら立つ瀬無いな。
235デフォルトの名無しさん
垢版 |
2006/05/10(水) 23:25:10
9.1きたよ
2006/05/11(木) 11:45:39
9.1ダウンロードできるね。

Core2最適化オプション/QxTが追加された。
2006/05/12(金) 11:01:59
サイズ半分速度2倍になるコンパイラきぼんぬ
2006/05/12(金) 22:31:02
CoreDuo対応やOpenMPの強化とあるけれど
命令セットが増えたわけでもなし、いったいどこが変わっているのだろう。
今、9.0.22使っているけどライセンスが切れているのでもし十分な効果があるのならまた買わないと。
2006/05/14(日) 08:11:59
>>237
それは無理難題を
2006/06/24(土) 20:45:31
http://www.swox.com/doc/x86-timing.pdf

http://www.digit-life.com/articles2/cpu/rmma-yonah.html Table 7

こういうのに合せて並べ変えしたり、命令を変更したりするとか
2006/08/13(日) 17:54:44
環境変数でF_UFMTENDIAN=big とするのと、オプションで -convert big_endian とするのは全く同一なんですか?
2006/10/19(木) 17:28:17
"保守"
'保守'
243デフォルトの名無しさん
垢版 |
2006/12/20(水) 01:28:37
ICC9.1とVS2005SP1の組み合わせでデバッグ版のビルドが
デバッグ情報が壊れてリンクできないとエラーをはくのだができてる人います?
2006/12/20(水) 03:53:41
保守
2006/12/21(木) 11:06:13
>>243
できてるよ
2007/02/03(土) 04:53:44
&heart;
2007/03/24(土) 09:28:18
>>243
LNK 1103エラーでました。
プロジェクトのプロパティ->C/C++->最適化 
のオプションを、最大限の最適化(/Ox)で、出なくなりました。
248デフォルトの名無しさん
垢版 |
2007/04/09(月) 08:04:13
Opteronで、SSEを利用するよう指示するにはどうしたらよいのでしょうか?
2007/04/09(月) 08:08:23
つかコンパイラくらい無償で提供しろ。このけちんぼが〜
2007/04/09(月) 13:40:39
Linux版
251デフォルトの名無しさん
垢版 |
2007/04/12(木) 18:51:11
コンパイルオプションの-xWと-xaWの違いがよく分かりません
何が違うのでしょうか?
2007/04/12(木) 19:22:31
-x 指定したCPU(-xWの場合は Pentium 4)固有の命令を無条件に使用して最適化を行う。
  実行時にそのCPUがサポートしていない命令が含まれていた場合は当然動かない。

-ax 指定したCPU用に最適化したコードの他にIA-32汎用のコードも含め、実行時にどちらかを使う。
   とりあえず全てのIA-32系CPUで実行可能なプログラムができる。
2007/04/15(日) 12:33:24
valarrayをfloatで使おうとすると、
valarray<float> x;
x=x+1.0;
の様な計算でも
error: no operator "+" matches these operands operand types are: std::valarray<float> + double
というエラーが出てしまうのですが、
すべて
x=x+float(1.0);
としてやる以外解決法はないのでしょうか?        
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況