トップページ⇒tech
579コメント169KB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AMDも自社のCPU用に最適化した数値演算ライブラリ(AMCL)なら出してるけどね。
0189デフォルトの名無しさん2005/11/08(火) 13:58:46
それなりの人材と資金を投入しても他社のものと
大して代わり映えのしないものしか作れないと
いうのも問題だ。
0190デフォルトの名無しさん2005/11/09(水) 08:02:25
Opteron上でSolaris 10 + Sun Studio 10という開発環境を使うというのはどうでしょう?
0191デフォルトの名無しさん2005/11/11(金) 17:24:29
SunはOpteron機のSPECfp2000計測に
自動並列化オプションでコンパイルしてスコアを伸ばしているね。
http://www.spec.org/cpu2000/results/res2005q4/cpu2000-20050906-04678.html
Intelなどの他のコンパイラにも自動並列化機能はあったと思うけど、
SPECfp2000で使われているのって見たことないな。
0192デフォルトの名無しさん2005/11/12(土) 03:10:12
>>145
リンカに__intel_cpu_indicator_initは既にあるといわれてしまうんだけど
どうして?
0193デフォルトの名無しさん2005/11/12(土) 03:37:50
ふつーは__intel_cpu_indicator_initが既にあるから
0194デフォルトの名無しさん2005/11/12(土) 04:13:51
確実に適当だな
0195デフォルトの名無しさん2005/11/12(土) 06:40:59
>>192
/FORCEオプション付けてないというオチじゃねーだろうな
0196デフォルトの名無しさん2005/12/02(金) 14:10:19
OpenMPは標準で使えるのでしょうか?
0197デフォルトの名無しさん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ファイルを指定しても同じメッセージが出てきて先に進めません。よろしくお願いします。
0198デフォルトの名無しさん2005/12/06(火) 18:19:12
>>197
.licファイルをc:\においても駄目?
パスに日本語やスペースが入ったりすると駄目だったような気がする。
0199デフォルトの名無しさん2005/12/11(日) 01:40:24
そーいえばさぁ、12月ごろに
アンケート結果を公表すると言ってたのはどうなったんだ?
インテル嘘付いてる?
まだか?
0200ハーピィ2005/12/24(土) 01:07:15
E・∇・ヨノシ <200ゲット♫
0201デフォルトの名無しさん2006/01/10(火) 06:04:46
なぜに、sseの組み込み関数があるとベクトル化してくれないの?
0202デフォルトの名無しさん2006/01/16(月) 05:09:11
ipoを有効にして、スタティックライブラリを作成したんだが、
ファイルサイズが、ipoを無効にしている場合と比べて、
およそ800倍になってしまった上に、そのライブラリを
リンクすると内部エラーが起こる。
同じ症状の人はいないか?
0203デフォルトの名無しさん2006/01/16(月) 05:51:05
     )、._人_人__,.イ.、._人_人_人
   <´ 天狗じゃ、天狗の仕業じゃ! >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+     ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (       ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) )      ;;;|// ///
////|::::    +   U | |||| !! !!||| :U   ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |    ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー----−' |__////
0204デフォルトの名無しさん2006/01/26(木) 10:20:02
VC7で通ってたソース。これで、リビルド
したら、メンバテンプレートでエラー。
まさか、対応してない?
0205デフォルトの名無しさん2006/01/26(木) 14:27:04
>>204
再現する最小のコードきぼんにゅ
0206デフォルトの名無しさん2006/02/04(土) 07:07:40
-staticを付けると逆に遅くなった・・・
普通速くならないっすか?
0207デフォルトの名無しさん2006/02/04(土) 11:59:42
コードが膨れたんでは
0208デフォルトの名無しさん2006/02/04(土) 23:29:57
>普通速くならないっすか?
そうなん?
単にライブラリ無いとこでも動けるようにするってだけじゃん?
速度は関係ないような。いやむしろ遅くなるのかな
0209デフォルトの名無しさん2006/02/17(金) 17:06:28
sseを使用するように支持するにはどんなオプションをつければいいのでしょうか?
0210デフォルトの名無しさん2006/02/17(金) 17:47:49
/QxK
/QaxK
のようなもの
0211デフォルトの名無しさん2006/02/17(金) 18:06:32
CPU指定ぐらいだと精度をみるかぎり、x87の方使われてるよね
自分で組み込み関数使って書いた方がいいと思う。
0212デフォルトの名無しさん2006/02/19(日) 14:31:32
>>209は返事しないのか?
嫌な奴だな。
0213デフォルトの名無しさん2006/02/20(月) 07:12:46
boostはつかえないの???
0214デフォルトの名無しさん2006/02/20(月) 17:18:16
-fastは-O3よりも最適化されるのか?
0215>∀<)っ-{}@{}@{}@- ◆Pu/ODYSSEY 2006/02/20(月) 17:23:00
-fastって9.0から無くなってね?
0216デフォルトの名無しさん2006/02/20(月) 17:29:26
-fastってリンクできなくね?
0217デフォルトの名無しさん2006/03/03(金) 22:00:44
-fastでコンパイルすると
Fatal Error : This program was not built to run on the processor in your system.
って出て動かないぜ!


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

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

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0224デフォルトの名無しさん2006/03/26(日) 20:37:15
http://www.vector.co.jp/soft/win95/util/se072729.html
0225デフォルトの名無しさん2006/04/02(日) 06:25:04
fedora core 4 でインストールしているのですが、インクルードファイルの場所を追加したいのですが
どこに書けばよいのでしょうか?
02262252006/04/02(日) 06:34:22
環境変数INCLUDEに追加してみたのですが、インクルードすべきファイルが見つからないというエラーになってしまいます
02272252006/04/02(日) 06:39:43
なお、直接コンパイル時に -I オプションで指定してやると、問題なくコンパイルできます。
0228デフォルトの名無しさん2006/04/02(日) 08:13:01
直接コンパイル時に-Iオプションで指定してやるといいんじゃないか
02292252006/04/02(日) 08:45:42
環境変数に追加する方法を知りたいのですが・・・
0230デフォルトの名無しさん2006/04/02(日) 16:39:23
.specsのどっかに、デフォルトのオプションを追加できるよ
俺も詳しいやり方は知らね
0231デフォルトの名無しさん2006/04/03(月) 00:23:10
常にオプションが追加されても構わないのであれば icc.cfg ファイルに書くとか。
0232デフォルトの名無しさん2006/04/20(木) 00:42:19
ちと質問。
3/2リリースのでVS2005に対応したぽいけど、統合環境に組み込めるのかな?
リリースノートにはcommand-lineだけとか書いてあるように見える・・・
VS2005の強化機能は使いたいけど、ちゃんと組み込めるんだろうか
0233デフォルトの名無しさん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 にてサポートする予定です。
0234デフォルトの名無しさん2006/04/20(木) 22:32:59
>>233
�d。
そうかー9.1まで待ちかー。
でも上の方見ると、普通にVC2005の方が強力に見える・・・
OpenMPもサポートしたしねえVC。
これでMPIもサポートし出したら立つ瀬無いな。
0235デフォルトの名無しさん2006/05/10(水) 23:25:10
9.1きたよ
0236デフォルトの名無しさん2006/05/11(木) 11:45:39
9.1ダウンロードできるね。

Core2最適化オプション/QxTが追加された。
0237デフォルトの名無しさん2006/05/12(金) 11:01:59
サイズ半分速度2倍になるコンパイラきぼんぬ
0238デフォルトの名無しさん2006/05/12(金) 22:31:02
CoreDuo対応やOpenMPの強化とあるけれど
命令セットが増えたわけでもなし、いったいどこが変わっているのだろう。
今、9.0.22使っているけどライセンスが切れているのでもし十分な効果があるのならまた買わないと。
0239デフォルトの名無しさん2006/05/14(日) 08:11:59
>>237
それは無理難題を
0240デフォルトの名無しさん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

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

-ax 指定したCPU用に最適化したコードの他にIA-32汎用のコードも含め、実行時にどちらかを使う。
   とりあえず全てのIA-32系CPUで実行可能なプログラムができる。
■ このスレッドは過去ログ倉庫に格納されています