トップページ⇒linux
985コメント403KB

intel compiler for Linux

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/29 17:53ID:5k7yf0ai

intel 社の Web ページ
URL:<http://developer.intel.com/software/products/eval/>;
の、"Non-Commercial Unsupported Software(非商用、サポート無し)" から、
RedHat系Linux 6.2 または 7.1 に対応した IA-32 や IA-64向きの
最適化C++,Fortran9x用のコンパイラ(version 5.0.1) が無料で
ダウンロードできるようになっています。
(詳しいライセンス条件は、ダウンロード時に表示される文書を
参照してください。)

intel 自身が作ってますので、インテル系のCPUの資源を活用できる
実行ファイルが生成されるます。(AMD の Athlon も Pentium III と
みなしてコンパイルオプションを選べばMMX機能などを使うことが可能です。)

以下は、「無料永続版」を入手した後で、それを実際に使えるようにする
ための設定方法の記述です。
C++ と fortran9x を両方ともインストールする例を書いていますが、
どちらかだけしか必要ない場合は、片方を省略することができます。

例は RedHat6.2 系統向けになっていますが、7.x 向けの場合でも大体同様です。
(Web ページからダウンロードしてくるファイルが違うだけです。)

ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
0002201/11/29 17:56ID:u2JQMD7w
2get
0003login:Penguin01/11/29 17:56ID:5k7yf0ai
---------------------------------- 説明開始------------------------------

例えばダウンロードして来たファイルが次のような名前であったとします。
(RedHat6.2 向けの例です)
# ls
cc010817rh62.tar
fc010821rh62.tar


STEP-1)
tarファイルを展開します。
( cc-work, fc-work は 実際には任意の作業用ディレクトリ名です。)

# mkdir cc-work
# (cd cc-work; tar xvf ../cc010817rh62.tar; )
# mkdir fc-work
# (cd fc-work; tar xvf ../fc010821rh62.tar; )

=========
STEP-2a)
ディレクトリ cc-work の下でスクリプト install を実行する。
# ( cd cc-work; ./install )
RPM shows no Intel packages as installed.
Which of the following would you like to install?
1. Intel(R) C++ Compiler for the Itanium(TM)-based applications, Version 5.0.1, Build 20010705
2. Intel(R) C++ Compiler for 32-bit applications, Version 5.0.1 Build 010730D0
3. Linux Application Debugger, Version 5.0.1, Build 20010720.
x. Exit.
指示に従って項目 2 のコンパイラを入れる。
たずねてくるディレクトリパスなどはデフォルトを選んでください。変えることもでき
ますが、その場合はあとの説明はそれに伴って多少変わります。
0004login:Penguin01/11/29 17:57ID:5k7yf0ai

=========
STEP-2b)

同様にして ディレクトリ fc-work の下でスクリプト install を実行する。
# ( cd fc-work; ./install )
指示に従って項目 2、3の コンパイラ と デバッガ を入れる。
たずねてくるディレクトリパスなどはデフォルトを選ぶ。

ここまでが前準備です。

=======

STEP-3)
システムファイル /etc/ld.so.conf に次の一行を追加する。
――――――
/opt/intel/compiler50/ia32/lib
――――――
そして、ダイナミックリンクライブラリのキャッシュを再構築するために
/sbin/ldconfig を実行しておきます。このときにwarning が出ても、無視
してください。

STEP-4)
ダウンロード時に 書き込んだ連絡用Email アドレス宛に送られて来た
ライセンス設定情報をファイル l_for.lic , l_cpp.lic にいれて作り,
それをディレクトリ /opt/intel/licenses/ にコピーします。

注:ライセンスファイルの感じはたとえば l_for.lic だったら、

------------------ はじまり
License id: XXXXXXXXXXXXXXXXXX-X

FEATURE l_for intelpto 5.01 permanent uncounted HOSTID=ANY ck=XXX \
SN=NCORNC SIGN=XXXXXXXXXXXX
------------------ おわり

といったぐあいです。 (ライセンスのキーの番号は実際とは変えてあります。)
0005login:Penguin01/11/29 17:57ID:5k7yf0ai

STEP-5)
次のようにして,シンボリックリンクを張ります。
(cd /usr; ln -s /opt/intel/compiler50 intel)


STEP-6)
コンパイラやデバッガを使いたいユーザーは各自のホームディレクトリの初期設定用
シェルスクリプトに次のような設定を入れておきます。
次の例は bash をシェルとして使う場合の $HOME/.bash_profile ファイルの場合です。

---------------
PATH=$PATH:/opt/intel/compiler50/ia32/bin
export PATH
LM_LICENSE_FILE=/opt/intel/licenses/l_cpp.lic:/opt/intel/licenses/l_for.lic
export LM_LICENSE_FILE
---------------

======
以上で、設定は終りです。
設定がうまくいっているかを試すために、一旦ログアウトしてからログインし、
(あるいはログアウトせずに
. $HOME/.bash_profile
を実行して環境変数をセットさせてもよい。)

テスト用に適当に作ったソースファイル a.c , a.f をコンパイルしたり
などしてみましょう。

# icc a.c
# ifc a.f

コンパイラの使いかたなどは次のようにすれば見ることができます。

# icc -help
# ifc -help

----------------------------------- 説明終り ------------------------------
0006login:Penguin01/11/29 17:59ID:5k7yf0ai
御清聴ありがとう。それではHappyHacking!
0007login:Penguin01/11/29 18:34ID:PuKXBXW9
宣伝?
0008 01/12/04 03:10ID:fMxgF1K0
フォートラン90が無料で使えて嬉しいユーザーはいないのかな?
インテルやAMDのCPUの最適化コンパイラ(C++、Fortran)として
メーカー自身として相当に出来がよいコードが出ると思うのだけど。
もちろん金持ちなら、有料サポート版をダウンロードして100ドル
払って使えばよいんだけど。
0009            01/12/06 02:04ID:tn79Zt8S
すまんフォートランもC++も100ドルではなくて
もっと高いらしい。無料版はお得だ。
0010            01/12/14 02:45ID:Up+Fx3Ox
インテルのCPUを使っているユーザーなんてゴミみたいなもので、
誰も関心なんかないんだよ。
0011login:Penguin01/12/14 02:48ID:XZsmMjBh
下手な煽りだな(藁
0012   02/01/12 16:22ID:9PdOKLGW
age
0013login:Penguin02/01/12 17:14ID:WmNIzC2/
これでKDEとか片っ端からコンパイルし直したら
動作早くなるの?
0014login:Penguin02/01/13 00:40ID:xXzex+Lk
pgccよりはやい?
0015login:Penguin02/01/13 01:07ID:w26vCzhJ
コンパイラオプション見ると、MMX命令を吐くとかSSE命令を吐くとか
細かく指定できるね。

だれかベンチマークとか取った人いないかな
0016login:Penguin02/01/13 02:00ID:GjoeUszr
Pen3 600MHz で nbench すると↓な感じ。
コンパイルオプションは
icc: -O3 -tpp6 -axK -xK -static
gcc: -static -O3 -march=pentiumpro

C compiler : icc (unknown version)
libc : unknown version
MEMORY INDEX : 3.132
INTEGER INDEX : 2.163
FLOATING-POINT INDEX: 4.942

compiler : gcc version 2.95.4 20011006 (Debian prerelease)
libc : unknown version
MEMORY INDEX : 2.123
INTEGER INDEX : 1.902
FLOATING-POINT INDEX: 4.386
0017login:Penguin02/01/13 02:05ID:GjoeUszr
おっと nbench のサイトを書き忘れた。
http://www.tux.org/~mayer/linux/results2.1.html
0018login:Penguin02/01/13 03:39ID:xXzex+Lk
Pen3 700MHzで nbenchとやらをしてみる。
linux-2.4.17,glibc-2.2.4

gcc:
INTEGER INDEX : 12.402
FLOATING-POINT INDEX: 11.659
==
C compiler : gcc version 2.95.3 20010315 (release)
MEMORY INDEX : 3.166
INTEGER INDEX : 3.043
FLOATING-POINT INDEX: 6.466

pgcc:
INTEGER INDEX : 12.387
FLOATING-POINT INDEX: 11.159
==
C compiler : gcc-2.95.4 (unknown version)
MEMORY INDEX : 3.272
INTEGER INDEX : 2.962
FLOATING-POINT INDEX: 6.189

icc:
INTEGER INDEX : 14.146
FLOATING-POINT INDEX: 12.318
==
C compiler : icc (unknown version)
MEMORY INDEX : 4.260
INTEGER INDEX : 3.066
FLOATING-POINT INDEX: 6.832

==の上側はORIGINAL BYTEMARK RESULTSで下側はLINUX DATA BELOW


コンパイルオプションは
gcc,pgcc:
-s -static -O3 -fomit-frame-pointer -Wall -march=i686 -fforce-addr -fforce-mem -malign-loops=2 -malign-functions=2 -malign-jumps=2 -funroll-loops

icc:
-static -O3 -tpp6 -axKMi
0019login:Penguin02/01/13 04:10ID:E8w4+80x
暗号関係のコードは、iccやはりかなり早くなるんだけど、俺が試した限りでは
iccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな
かった。
0020login:Penguin02/01/13 04:17ID:ZL7ol7tm
>15,19
OpenSSLで2.1倍速だそーだ。
ttp://moso.borogrammers.net/moso/diary/?200110c&to=200110253#200110253
0021login:Penguin02/01/13 16:15ID:lTcEUkeD
貴重な情報だ。
休み明けに試してみるよ。
f90がただだなんてうれしい。
0022login:Penguin02/01/13 16:47ID:ZL7ol7tm
SunのForteよりはgcc用のコードのコンパイルしやすいね。
動かない事が結構あるのはForteと同じ。
0023デフォルトの名無しさん02/01/13 18:41ID:8S0ngHZJ
>>22
いっている意味が分からない。
0024login:Penguin02/01/13 18:59ID:E8w4+80x
ごめんな。
00252302/01/13 19:03ID:8S0ngHZJ
あ、わかった。gcc拡張を利用したコードを、ってことだな?
0026login:Penguin02/01/13 20:24ID:E8w4+80x
>>25
そそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
0027login:Penguin02/01/13 20:33ID:E8w4+80x
誰かiccでmozillaコンパイルして漏れにクレage
0028login:Penguin02/01/13 20:56ID:C6zTZ+z/
バイナリgetしたままrpmにするの忘れてました。
0029               02/01/13 21:53ID:B/8pwAaq
Vine2.1.5でもRH6.2相当として動いた。
Debianでも動いた。
0030login:Penguin02/01/13 22:46ID:Yar5iLcv
>>27
誰かiccでLAPACKコンパイルして漏れにクレsage

っていうか自分でやってみるヨ!!できたらレポするね!!
pen4使いならこういうのも
ttp://www.hpc.co.jp/IA-Dev/IADEV-ATLAS.htm
あるんだが…
0031login:Penguin02/01/14 03:20ID:02BADL4c
どうだった?>30
00323002/01/14 03:36ID:MfJpktDa
>>31
取り敢えず手元にあったblaslapack(出どころ不明品)をifcで -O3 -tpp6 ぐらいで make
してみてこれまた手元にあったプログラムでDSYEVで100x100実対称行列
対角化してみたら激オソ。つか止まらん。
ちなみに同じ事をtitpackっていうのでもためしてみたが、-O3より-Oの方が
速かった。たぶんソースとニラメッコかつコンパイルオプション手探り
の可能性あり。
ただし行列の掛け算見たいな単純なDOループのを-O3 -tpp6 でやってみると
2倍高速化。

取り敢えず途中経過まで。
00333202/01/14 03:59ID:MfJpktDa
>>32
スマソ。これじゃ何言ってるか解らんな。
linux-2.4.16 ,glibc-2.2.4, RH7JベースでPen!!!800のSMP.
>2倍高速化
というのは g77 -O5 -mpentiumpro -march=pentiumpro -funroll-loops
との比。
今からlapackのソース見る気にならないのでまた次回
blasからじわじわ攻めていきます。
0034login:Penguin02/01/19 00:04ID:9x31aMrp
blas,lapackとも無料でintelから
出てるね。math kernel library
(mkl)として。pgfortranのlapack
より2倍はやい(p4 rambusで)。
00353302/01/19 00:55ID:umOrHyJq
>>34
Σ(゚д゚lll)ガーン

そ、そなんですか…参考になります。
忙しくて全く手つけて無かったからダメージは小さいのですが(藁
0036 02/01/19 04:15ID:EPNncPjO
Pentium4やXeonの為の最適化では、インテル社製のコンパイラに勝る
ものはいまのところないと思う。AMDとの差別化のために力入れている
ようであります。AMDはこういった面での総合的なサポートが無いのが
残念だ。GNUに金でも出して、AMDのCPU向けの最適化を入れてもらうとか、
64ビットCPU向けのコードも出せるようにすればいいのにね。
0037login:Penguin02/01/19 08:35ID:CcBGA9H/
どーもな、Fortran のほうはたまに Pentium IV 最適化
すると internal error で落ちる。Pentium III にすれば
コンパイルはとおる。
ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
0038login:Penguin02/01/19 08:39ID:CcBGA9H/
>>30
Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
0039login:Penguin02/01/19 09:06ID:CcBGA9H/
>>38
ATLASをIntel Fotranから使うにはひと工夫必要。
というのもg77のオブジェクトと Intel Fortran のオブジェクト
は同時にリンクできないからだ。ってIntelの西都に
書いてあるんだけどね。
詳しくはttp://130.54.33.30/~maho/Computer/quantum_chemistry/Gaussian98_linux_ifc.html
対角化はそんなには速くならん気がするが。

00403402/01/19 09:20ID:9x31aMrp
lapackの問題はmklをintelのサイトからとってきて

LIBS= -L/opt/intel/mkl/lib/32 -lmkl_lapack -lmkl_p4 -L/usr/lib/ -lpthread

で解決したよ。mklのdocには書いてないけど、
/usr/lib/libpthread
をリンクしないと正常に動かない。
0041login:Penguin02/01/19 11:13ID:/efnsvv4
>>40
試してみる前ですまぬがこれってintel fortranの
オブジェとリンクはできますよね。
マジ感謝してます。ありがとう!!!!!
mkl とってこないとだめかぁ。
がんばりまっす。
(私FreeBSD の方が好きだからできればFreeBSDでも
出してくれないかなぁ...)
0042login:Penguin02/01/19 11:20ID:/efnsvv4
今ダウンしてる。ほんまに感謝してます。
しかしながらatlasの方が速いと聞くとちょっと
やっぱりなんちゅうかそちらの方を使いたくなりました。
しかし安定度が低い。
0043login:Penguin02/01/19 11:46ID:/efnsvv4
>>34
今MKLでコンパイルやってます。
0044login:Penguin02/01/19 12:21ID:0xxlGOpp
pen4,rambusではatlasよりもifc+mklの方が
早かったけど。今のところ、800x800の
複素エルミート行列の対角化の速さは

pgfortran+pgfortlanのliblapack,libblas<
g77+redhat7.1についてきた/usr/lib/のblas,lapack<
ifc+mkl

でした。g77とifcの差は微妙。atlasの効果は
あまりなかったのは、/usr/libに入ってた
lapack,blasが十分最適化されていたからと
思われ。
0045login:Penguin02/01/19 13:02ID:/efnsvv4
>>44
これはすばらしい。
こっちは万単位の対角化ですわ。だからシビアなんですよね。
直接ではないけど。
とりあえず、atlasは結構バグっぽいんで使いたくない。
最近真面目にベンチは取っていないが g77 コンパイラフラグを
いろいろがんばればよいみたいなのを知って。gcc-3.0.xは
最適化は最近はどうなったかご存じですか?そもそもLapackとかでも
対角化はあまり最適化が効かないみたいですね。笑うのがg77で
最適化を全部取ってしまうと一桁以上計算時間がかかる。
pen4+rambusですか。すごいっすね。こっちはPenIIIなんすよ。
なんかデスクトップにあるようなしょうもないやつのほうがpenIVで、
今ならこっちが速かったりして :-)

アライメントの問題どうしてます?(すれちがいですまそ)

0046login:Penguin02/01/19 13:22ID:9j0IMkFv
最適化のoptionはあまりまじめにいじって
ないんだけど、ifcだと
-O3 -tpp7
というようにcpuごとに最適化するのがありました。
pp7はpen4でpenIIIはpp6だったかな?
compaqの-tune ev67のようなものですね。

直接対角化でないというと、lanczosですか?

ところでアラインメントの問題とは?
0047login:Penguin02/01/19 13:51ID:/efnsvv4
>>46
Davidson の対角化です。
僕も一応その程度ですが最適化のオプションはいじっています。
なぜかアドレスエラーが頻発するのであんまり高度にはしていません。
アラインメントは
ttp://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
ですわ。前から指摘されたらしいが僕も偶然気がついた。
Linuxにもあって、fortranでもcommand line の
スタックはそのままアラインされるんで、問題はあると思う。
fortranやintel fortranだとどうなるんだろう?

そうそう先程atlasがバグっぽいといったがウソです。
すいません。MKLを使っても全く同じエラーが出た。
今最適化をすべてオフにして挑戦中。
0048login:Penguin02/01/19 13:52ID:/efnsvv4
腹減ったのでめし食ってきます。
0049login:Penguin02/01/19 14:12ID:/efnsvv4
カレー食ってきた。カレーくさいぞ。うおおおおお。
0050login:Penguin02/01/19 14:53ID:umOrHyJq
pen3 で mkl使って実対称行列400x400対角化をやってみたけどg77とあまりかわらないよな…
pen4買えってことかな。このIntelの商売上手(とか言ってみる

ifcでモンテカルロ(Ising)やってみたらこっちはg77にくらべて1.5倍以上は出てる。
00514402/01/19 15:30ID:9hT/dXby
>>44 にも書いたけど、g77とredhat7.1に
ついてきたblas,lapackを使った結果は、
ifc+mklとほとんど一緒でした。プログラムに
よっては逆転するでしょう。
ここで自分の経験をまとめさせてください。

速い順に
ifc+mkl
≒g77+純正のlapack,blas
>pgfortran+pgfortranのlapack,blas
≒富士通のコンパイラ

ちなみにg77でもifcでも、自分でコンパイルした
lapack,blasは最適化をしたつもりでも
なかなかスピードが出ない。対角化などをしない
ときでも、内積や行列の積を含むときは必ず
/usr/lib/libblas.aかmklを使うべし。

g77ががんばってるからintelもただにしなければ
いけないんでしょうね。おかげでf90がただで
手に入るようになったわけでうれしいです。
0052login:Penguin02/01/19 15:48ID:9hT/dXby
>>47
alignmentのリンク先、みました。2年位前に、
alpha 21264 + CFLAで行列計算をさせていたとき、
行列の大きさを大きめにとると、とたんに計算が
速くなったことがあり、不思議だなと
思ってたけど、このためかもしれませんね。
どうもありがとう。

しかしファイル名を1文字から8文字用意して
ベンチを取ってから走らせなきゃいけないのかあ。
00535002/01/19 15:51ID:umOrHyJq
失礼。pen3の場合今のところmklよりg77のほうが1.5倍速いです。

私も
>おかげでf90がただで手に入るようになったわけで
と言いたかったのですが…。
取り敢えず今まで通りvf90使っておきますか。

選択肢が増えたわけだからそれぞれの癖さえ掴めばいいのですかね。
0054login:Penguin02/01/19 17:03ID:/efnsvv4
>>
基本的に4bytesのアラインだからやねんな。
mallocで取られるcとはちがい、fortranの場合は
大きな配列をスタティックにとってというはなしになるから
結構致命的になると思う。sbrkなんか使うなよなぁ。
訳解らん。
>>53
RH7.1 のgccってそんなに高速なんだ。知らなかった。
HPCのページを見てると不当にg77の評価が低くて、
かなりむかついた。それ以来あそこのデータは信用したくない。
というか、チューニングなんてマニアがごりごりやったやつと
何も考えずに組んだやつだったらそりゃちがうだろう。
どうせチップとか作ってるわけじゃないのにえらそうに。
なんだか嫌なやつらだ。
ま、ベンチとってくれてありがとう、とは思うけど。
0055login:Penguin02/01/19 17:06ID:/efnsvv4
さらにg77も出てそんなに経っても無いのに。
あ、僕があおられているだけか。

ところでRHのBLASはコンパイルはそのままで
手は加わってないんだよね?なぜATLASより遅いんだろう?
あんまり知らないですが。知ってたら教えてください。

やっぱPenIVなんやろうな。
0056login:Penguin02/01/19 17:21ID:umOrHyJq
>>54
Vine-2.0に(おまけで)付いてた富士通のフォートランはそのころのg77より
ずっと速かった覚えがあるけど、>>51 ではg77が速いって言ってるから、
多分g77の性能が上がったんだと思う。
あとそのころでもgccと富士通のCコンパイラとは互角の性能出てた。

もちろん計算の種類にもよるだろけど。
0057login:Penguin02/01/19 20:42ID:T0M+fgYB
g77はgccのバージョンを
あげると急に速くなること
あるね。

p4のmklはSSE2に対応してる。
これとほぼ同じベンチを
red hat7.1についてくるblasが
たたき出す。自分でコンパイルした
blasはへたれ。>>55 さんは
自分でコンパイルしたのですか。
それとred hatは7.1っすか。

ppc2002でのカキコは疲れるな。
0058login:Penguin02/01/19 22:16ID:CcBGA9H/
ふーむ、RH7.1付属のBlasはどーやってコンパイルしたか
分かるのでしょうか? 僕は FreeBSD or make を
そのままするんでよくわからないんです。
フラグは? レファレンスインプリメンテーションのコンパイル?
ううううーむ。ちょっと信じられない。
分かる範囲でよろしければ教えていただくとうれしいです。
0059login:Penguin02/01/19 22:33ID:CcBGA9H/
やっぱ自分で調べた。
# rpm -ivh lapack-3.0-12.src.rpm
# cd /usr/src/redhat/SPECS/
# rpm -ba lapack.spec
でビルドするんやね。
コンパイルフラグは
-O2 -march=i386 -mcpu=i686 これだけか。
多くのパッチが当たっているがそんなに重要そうではない
感じがする。mkl と比較してそんなにスピードが出るのか。
不思議じゃ。研究が一段落したらifcでもやってみるわ。
lapackのパッチは参考にする。
0060login:Penguin02/01/19 22:41ID:CcBGA9H/
g77は
/usr/bin/g77 -v
g77 version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (from FSF-g77 version 0.5.26 20000731 (Red Hat Linux 7.1 2.96-98))
Driving: /usr/bin/g77 -v -c -xf77-version /dev/null -xnone
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
GNU F77 version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (i386-redhat-linux) compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-98).
GNU Fortran Front End version 0.5.26 20000731 (Red Hat Linux 7.1 2.96-98)
__G77_LIBF77_VERSION__: 0.5.26 20000731 (prerelease)
@(#)LIBF77 VERSION 19991115
__G77_LIBI77_VERSION__: 0.5.26 20000731 (prerelease)
@(#) LIBI77 VERSION pjw,dmg-mods 19991115
__G77_LIBU77_VERSION__: 0.5.26 20000731 (prerelease)
@(#) LIBU77 VERSION 19980709

こんな感じ。
0061login:Penguin02/01/19 22:51ID:1EgeSYjk
>>59
blasに秘密がある気がするんだが。
0062login:Penguin02/01/19 23:02ID:CcBGA9H/
どういう秘密?
バイナリでしか提供されていないわけないよね。
ソースを調べると、

# grep -i BLAS lapack-20010525.patch
diff -uNr LAPACK.orig/BLAS/TESTING/cblat2.f LAPACK/BLAS/TESTING/cblat2.f
--- LAPACK.orig/BLAS/TESTING/cblat2.f Thu Nov 4 14:23:26 1999
+++ LAPACK/BLAS/TESTING/cblat2.f Fri May 25 15:57:46 2001

こんなかんじだよ?ATLAS の Whaley はなぜこんなにがんばれる?
うおーなぜだー!死ぬ程しりたい。
ちょっと風呂入って来る。

0063login:Penguin02/01/19 23:11ID:umOrHyJq
>>62
>>61 はただ lapack が blas を呼んでいる程度の意味だと思うが。
0064login:Penguin02/01/19 23:14ID:X8kahLTF
ここはATLASスレですか?
0065login:Penguin02/01/19 23:19ID:umOrHyJq
いや、lapackスレ。
ちなみに >>30 >>32 は漏れ。ちょっと責任感じてみたり…。
最初の目的は有名どころのコードをmakeしてみてicc ifc の癖掴もうと思ってたんだが…
0066login:Penguin02/01/19 23:26ID:CcBGA9H/
まだ風呂にははいっておらぬ。
すまぬ。Intel Compiler スレだ。
しかしながら、icc, ifc は最適化に優れていると聞くが
どの程度なのかはコードの実行スピードを見ない限り分からないではないか。
とりあえず、BLAS, LAPACK は、数値計算ライブラリとして重要な
位置を占めておる。それらの最適化はそれこそ我々の飯の種なのだ。
ということで、ちとマニアックな話+ifc に関係ない話をするかも
しれないが、やはりifcの性能は気になっておるんだ。
まぁ結論はなかなか出ないと思うがきいてやっておくれ。
0067login:Penguin02/01/19 23:33ID:CcBGA9H/
さっきの srpm からのビルドのログを見ると

+ cp -f /usr/src/redhat/SOURCES/Makefile.blas BLAS/SRC/Makefile
+ cp -f /usr/src/redhat/SOURCES/Makefile.lapack SRC/Makefile
...
f77 -O2 -march=i386 -mcpu=i686 -c -o dgbmv.o dgbmv.f
f77 -O2 -march=i386 -mcpu=i686 -c -o dgemm.o dgemm.f
f77 -O2 -march=i386 -mcpu=i686 -c -o dgemv.o dgemv.f
...書き込み中: /usr/src/redhat/SRPMS/lapack-3.0-12.src.rpm
書き込み中: /usr/src/redhat/RPMS/i386/lapack-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/blas-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/blas-man-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/lapack-man-3.0-12.i386.rpm

てな感じです。
たぶんblasはそのままだと思う。
006834=40=44=57=6102/01/19 23:51ID:pz4lxlEr
自分のプログラム(行列の積、Gram-Schmidtの直交化、対角化など)
では、redhatについてくる/usr/lib/libblas,liblapackを使ったのと、
自分でblas,lapackをコンパイルしたので、前者のほうがかなり
パフォーマンスがいい。それでもって、ifc+mklだと
/usr/lib/libblas,/usr/lib/liblapackを使ったのとおなじくらい。
ifc+mklはblas、lapackを最適化してるらしいので
(ttp://www.intel.com/software/products/mkl/mkl51w/mklspecs.htm)
redhatの/usr/lib/のblas,lapackもいい線いってると思ったんです。
前にも書いたけど、pen4 +rambus 512MB+redhat 7.1。
00696802/01/20 00:01ID:tTEZ7bJ8
>>67
そうですか。私のblas、lapackのmakeの
仕方が悪い(-march=i386 -mcpu=i686というオプションを
つけてないと思います)のかもしれませんね。
lapackを自分でmakeしたときnetlibの
汎用のを使いましたが、もっとintel系のlinuxに
適したものなのかな?
とりあえず、g77,pgfortran,ifcでやってみて一番
速いのを流すという方針がいいんですかね。
00706502/01/20 00:16ID:248hne5/
>>69
そですね。各コンパイラでコンパイルオプション適当に振って、
一番できのいいのを探して、それを使うのが結果として時間の
節約かも知れませんね。

ところで少し気になることは、ifcで、blasやlapackのように相当作り込まれ
たコードをコンパイルしてもそれほど効果無いようなのですが、自前の
ヘボコードなどをコンパイルすると2倍程高速化しているような気がします。

僕の場合はまず自分の腕を上げることのほうが先のようです…トホホ

0071login:Penguin02/01/20 00:25ID:5whqLm3T
風呂からあがってきました。
>>70
研究者の方ですか? そうやったら別にいいのでは。可読性のほうが
重要ですよ。二倍程度の高速化やったらコンパイラに任せた
ほうがいいかも知れませんよ。頭の体操にはいいかもしれませんが。
>>69
いろいろ流し直すのって面倒じゃないですか。だから噂程度で
ifc 万歳とか思ってたんですが、g77もがんばるわけですねぇ。
ううーむ。
00726902/01/20 08:43ID:K/B4TT8A
自分の計算は数カ月単位の
シミュレーションなんで、
結果がでてくる時間がオプション、
コンパイラで大分違うんです。
前にalpha 21264 で、手製の
lapack-blasをcxmlに変えたら
劇的に加速したこともあり、
以来、色々と試すことにしてます。
0073login:Penguin02/01/20 11:39ID:5whqLm3T
>>69
アラインメントは?
2ヵ月と4ヵ月では全然違いますよね。
00746902/01/20 13:32ID:0V/4SmC4
>>73
4月と2月で違うのって、
nelibのlapackですか。
もっと古いかも。そんなに
違うと思ってなかったんで、
無理に最新にしてなかった。
機能までアラインメントも気にして
なかったし。まだまだ、
やること、ありそうです。
■ このスレッドは過去ログ倉庫に格納されています