intel compiler for Linux
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/11/29 17:53ID:5k7yf0aiintel 社の 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 ページからダウンロードしてくるファイルが違うだけです。)
ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
00022
01/11/29 17:56ID:u2JQMD7w0003login:Penguin
01/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:Penguin
01/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:Penguin
01/11/29 17:57ID:5k7yf0aiSTEP-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:Penguin
01/11/29 17:59ID:5k7yf0ai0007login:Penguin
01/11/29 18:34ID:PuKXBXW90008
01/12/04 03:10ID:fMxgF1K0インテルやAMDのCPUの最適化コンパイラ(C++、Fortran)として
メーカー自身として相当に出来がよいコードが出ると思うのだけど。
もちろん金持ちなら、有料サポート版をダウンロードして100ドル
払って使えばよいんだけど。
0009
01/12/06 02:04ID:tn79Zt8Sもっと高いらしい。無料版はお得だ。
0010
01/12/14 02:45ID:Up+Fx3Ox誰も関心なんかないんだよ。
0011login:Penguin
01/12/14 02:48ID:XZsmMjBh0012
02/01/12 16:22ID:9PdOKLGW0013login:Penguin
02/01/12 17:14ID:WmNIzC2/動作早くなるの?
0014login:Penguin
02/01/13 00:40ID:xXzex+Lk0015login:Penguin
02/01/13 01:07ID:w26vCzhJ細かく指定できるね。
だれかベンチマークとか取った人いないかな
0016login:Penguin
02/01/13 02:00ID:GjoeUszrコンパイルオプションは
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:Penguin
02/01/13 02:05ID:GjoeUszrhttp://www.tux.org/~mayer/linux/results2.1.html
0018login:Penguin
02/01/13 03:39ID:xXzex+Lklinux-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:Penguin
02/01/13 04:10ID:E8w4+80xiccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな
かった。
0020login:Penguin
02/01/13 04:17ID:ZL7ol7tmOpenSSLで2.1倍速だそーだ。
ttp://moso.borogrammers.net/moso/diary/?200110c&to=200110253#200110253
0021login:Penguin
02/01/13 16:15ID:lTcEUkeD休み明けに試してみるよ。
f90がただだなんてうれしい。
0022login:Penguin
02/01/13 16:47ID:ZL7ol7tm動かない事が結構あるのはForteと同じ。
0023デフォルトの名無しさん
02/01/13 18:41ID:8S0ngHZJいっている意味が分からない。
0024login:Penguin
02/01/13 18:59ID:E8w4+80x002523
02/01/13 19:03ID:8S0ngHZJ0026login:Penguin
02/01/13 20:24ID:E8w4+80xそそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
0027login:Penguin
02/01/13 20:33ID:E8w4+80x0028login:Penguin
02/01/13 20:56ID:C6zTZ+z/0029
02/01/13 21:53ID:B/8pwAaqDebianでも動いた。
0030login:Penguin
02/01/13 22:46ID:Yar5iLcv誰かiccでLAPACKコンパイルして漏れにクレsage
っていうか自分でやってみるヨ!!できたらレポするね!!
pen4使いならこういうのも
ttp://www.hpc.co.jp/IA-Dev/IADEV-ATLAS.htm
あるんだが…
0031login:Penguin
02/01/14 03:20ID:02BADL4c003230
02/01/14 03:36ID:MfJpktDa取り敢えず手元にあったblaslapack(出どころ不明品)をifcで -O3 -tpp6 ぐらいで make
してみてこれまた手元にあったプログラムでDSYEVで100x100実対称行列
対角化してみたら激オソ。つか止まらん。
ちなみに同じ事をtitpackっていうのでもためしてみたが、-O3より-Oの方が
速かった。たぶんソースとニラメッコかつコンパイルオプション手探り
の可能性あり。
ただし行列の掛け算見たいな単純なDOループのを-O3 -tpp6 でやってみると
2倍高速化。
取り敢えず途中経過まで。
003332
02/01/14 03:59ID:MfJpktDaスマソ。これじゃ何言ってるか解らんな。
linux-2.4.16 ,glibc-2.2.4, RH7JベースでPen!!!800のSMP.
>2倍高速化
というのは g77 -O5 -mpentiumpro -march=pentiumpro -funroll-loops
との比。
今からlapackのソース見る気にならないのでまた次回
blasからじわじわ攻めていきます。
0034login:Penguin
02/01/19 00:04ID:9x31aMrp出てるね。math kernel library
(mkl)として。pgfortranのlapack
より2倍はやい(p4 rambusで)。
0036
02/01/19 04:15ID:EPNncPjOものはいまのところないと思う。AMDとの差別化のために力入れている
ようであります。AMDはこういった面での総合的なサポートが無いのが
残念だ。GNUに金でも出して、AMDのCPU向けの最適化を入れてもらうとか、
64ビットCPU向けのコードも出せるようにすればいいのにね。
0037login:Penguin
02/01/19 08:35ID:CcBGA9H/すると internal error で落ちる。Pentium III にすれば
コンパイルはとおる。
ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
0038login:Penguin
02/01/19 08:39ID:CcBGA9H/Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
0039login:Penguin
02/01/19 09:06ID:CcBGA9H/ATLASをIntel Fotranから使うにはひと工夫必要。
というのもg77のオブジェクトと Intel Fortran のオブジェクト
は同時にリンクできないからだ。ってIntelの西都に
書いてあるんだけどね。
詳しくはttp://130.54.33.30/~maho/Computer/quantum_chemistry/Gaussian98_linux_ifc.html
対角化はそんなには速くならん気がするが。
004034
02/01/19 09:20ID:9x31aMrpLIBS= -L/opt/intel/mkl/lib/32 -lmkl_lapack -lmkl_p4 -L/usr/lib/ -lpthread
で解決したよ。mklのdocには書いてないけど、
/usr/lib/libpthread
をリンクしないと正常に動かない。
0041login:Penguin
02/01/19 11:13ID:/efnsvv4試してみる前ですまぬがこれってintel fortranの
オブジェとリンクはできますよね。
マジ感謝してます。ありがとう!!!!!
mkl とってこないとだめかぁ。
がんばりまっす。
(私FreeBSD の方が好きだからできればFreeBSDでも
出してくれないかなぁ...)
0042login:Penguin
02/01/19 11:20ID:/efnsvv4しかしながらatlasの方が速いと聞くとちょっと
やっぱりなんちゅうかそちらの方を使いたくなりました。
しかし安定度が低い。
0043login:Penguin
02/01/19 11:46ID:/efnsvv4今MKLでコンパイルやってます。
0044login:Penguin
02/01/19 12:21ID:0xxlGOpp早かったけど。今のところ、800x800の
複素エルミート行列の対角化の速さは
pgfortran+pgfortlanのliblapack,libblas<
g77+redhat7.1についてきた/usr/lib/のblas,lapack<
ifc+mkl
でした。g77とifcの差は微妙。atlasの効果は
あまりなかったのは、/usr/libに入ってた
lapack,blasが十分最適化されていたからと
思われ。
0045login:Penguin
02/01/19 13:02ID:/efnsvv4これはすばらしい。
こっちは万単位の対角化ですわ。だからシビアなんですよね。
直接ではないけど。
とりあえず、atlasは結構バグっぽいんで使いたくない。
最近真面目にベンチは取っていないが g77 コンパイラフラグを
いろいろがんばればよいみたいなのを知って。gcc-3.0.xは
最適化は最近はどうなったかご存じですか?そもそもLapackとかでも
対角化はあまり最適化が効かないみたいですね。笑うのがg77で
最適化を全部取ってしまうと一桁以上計算時間がかかる。
pen4+rambusですか。すごいっすね。こっちはPenIIIなんすよ。
なんかデスクトップにあるようなしょうもないやつのほうがpenIVで、
今ならこっちが速かったりして :-)
アライメントの問題どうしてます?(すれちがいですまそ)
0046login:Penguin
02/01/19 13:22ID:9j0IMkFvないんだけど、ifcだと
-O3 -tpp7
というようにcpuごとに最適化するのがありました。
pp7はpen4でpenIIIはpp6だったかな?
compaqの-tune ev67のようなものですね。
直接対角化でないというと、lanczosですか?
ところでアラインメントの問題とは?
0047login:Penguin
02/01/19 13:51ID:/efnsvv4Davidson の対角化です。
僕も一応その程度ですが最適化のオプションはいじっています。
なぜかアドレスエラーが頻発するのであんまり高度にはしていません。
アラインメントは
ttp://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
ですわ。前から指摘されたらしいが僕も偶然気がついた。
Linuxにもあって、fortranでもcommand line の
スタックはそのままアラインされるんで、問題はあると思う。
fortranやintel fortranだとどうなるんだろう?
そうそう先程atlasがバグっぽいといったがウソです。
すいません。MKLを使っても全く同じエラーが出た。
今最適化をすべてオフにして挑戦中。
0048login:Penguin
02/01/19 13:52ID:/efnsvv40049login:Penguin
02/01/19 14:12ID:/efnsvv40050login:Penguin
02/01/19 14:53ID:umOrHyJqpen4買えってことかな。このIntelの商売上手(とか言ってみる
ifcでモンテカルロ(Ising)やってみたらこっちはg77にくらべて1.5倍以上は出てる。
005144
02/01/19 15:30ID:9hT/dXbyついてきた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:Penguin
02/01/19 15:48ID:9hT/dXbyalignmentのリンク先、みました。2年位前に、
alpha 21264 + CFLAで行列計算をさせていたとき、
行列の大きさを大きめにとると、とたんに計算が
速くなったことがあり、不思議だなと
思ってたけど、このためかもしれませんね。
どうもありがとう。
しかしファイル名を1文字から8文字用意して
ベンチを取ってから走らせなきゃいけないのかあ。
005350
02/01/19 15:51ID:umOrHyJq私も
>おかげでf90がただで手に入るようになったわけで
と言いたかったのですが…。
取り敢えず今まで通りvf90使っておきますか。
選択肢が増えたわけだからそれぞれの癖さえ掴めばいいのですかね。
0054login:Penguin
02/01/19 17:03ID:/efnsvv4基本的に4bytesのアラインだからやねんな。
mallocで取られるcとはちがい、fortranの場合は
大きな配列をスタティックにとってというはなしになるから
結構致命的になると思う。sbrkなんか使うなよなぁ。
訳解らん。
>>53
RH7.1 のgccってそんなに高速なんだ。知らなかった。
HPCのページを見てると不当にg77の評価が低くて、
かなりむかついた。それ以来あそこのデータは信用したくない。
というか、チューニングなんてマニアがごりごりやったやつと
何も考えずに組んだやつだったらそりゃちがうだろう。
どうせチップとか作ってるわけじゃないのにえらそうに。
なんだか嫌なやつらだ。
ま、ベンチとってくれてありがとう、とは思うけど。
0055login:Penguin
02/01/19 17:06ID:/efnsvv4あ、僕があおられているだけか。
ところでRHのBLASはコンパイルはそのままで
手は加わってないんだよね?なぜATLASより遅いんだろう?
あんまり知らないですが。知ってたら教えてください。
やっぱPenIVなんやろうな。
0056login:Penguin
02/01/19 17:21ID:umOrHyJqVine-2.0に(おまけで)付いてた富士通のフォートランはそのころのg77より
ずっと速かった覚えがあるけど、>>51 ではg77が速いって言ってるから、
多分g77の性能が上がったんだと思う。
あとそのころでもgccと富士通のCコンパイラとは互角の性能出てた。
もちろん計算の種類にもよるだろけど。
0057login:Penguin
02/01/19 20:42ID:T0M+fgYBあげると急に速くなること
あるね。
p4のmklはSSE2に対応してる。
これとほぼ同じベンチを
red hat7.1についてくるblasが
たたき出す。自分でコンパイルした
blasはへたれ。>>55 さんは
自分でコンパイルしたのですか。
それとred hatは7.1っすか。
ppc2002でのカキコは疲れるな。
0058login:Penguin
02/01/19 22:16ID:CcBGA9H/分かるのでしょうか? 僕は FreeBSD or make を
そのままするんでよくわからないんです。
フラグは? レファレンスインプリメンテーションのコンパイル?
ううううーむ。ちょっと信じられない。
分かる範囲でよろしければ教えていただくとうれしいです。
0059login:Penguin
02/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:Penguin
02/01/19 22:41ID:CcBGA9H//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:Penguin
02/01/19 22:51ID:1EgeSYjkblasに秘密がある気がするんだが。
0062login:Penguin
02/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:Penguin
02/01/19 23:11ID:umOrHyJq>>61 はただ lapack が blas を呼んでいる程度の意味だと思うが。
0064login:Penguin
02/01/19 23:14ID:X8kahLTF0065login:Penguin
02/01/19 23:19ID:umOrHyJqちなみに >>30 >>32 は漏れ。ちょっと責任感じてみたり…。
最初の目的は有名どころのコードをmakeしてみてicc ifc の癖掴もうと思ってたんだが…
0066login:Penguin
02/01/19 23:26ID:CcBGA9H/すまぬ。Intel Compiler スレだ。
しかしながら、icc, ifc は最適化に優れていると聞くが
どの程度なのかはコードの実行スピードを見ない限り分からないではないか。
とりあえず、BLAS, LAPACK は、数値計算ライブラリとして重要な
位置を占めておる。それらの最適化はそれこそ我々の飯の種なのだ。
ということで、ちとマニアックな話+ifc に関係ない話をするかも
しれないが、やはりifcの性能は気になっておるんだ。
まぁ結論はなかなか出ないと思うがきいてやっておくれ。
0067login:Penguin
02/01/19 23:33ID:CcBGA9H/+ 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=61
02/01/19 23:51ID:pz4lxlErでは、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。
006968
02/01/20 00:01ID:tTEZ7bJ8そうですか。私のblas、lapackのmakeの
仕方が悪い(-march=i386 -mcpu=i686というオプションを
つけてないと思います)のかもしれませんね。
lapackを自分でmakeしたときnetlibの
汎用のを使いましたが、もっとintel系のlinuxに
適したものなのかな?
とりあえず、g77,pgfortran,ifcでやってみて一番
速いのを流すという方針がいいんですかね。
007065
02/01/20 00:16ID:248hne5/そですね。各コンパイラでコンパイルオプション適当に振って、
一番できのいいのを探して、それを使うのが結果として時間の
節約かも知れませんね。
ところで少し気になることは、ifcで、blasやlapackのように相当作り込まれ
たコードをコンパイルしてもそれほど効果無いようなのですが、自前の
ヘボコードなどをコンパイルすると2倍程高速化しているような気がします。
僕の場合はまず自分の腕を上げることのほうが先のようです…トホホ
0071login:Penguin
02/01/20 00:25ID:5whqLm3T>>70
研究者の方ですか? そうやったら別にいいのでは。可読性のほうが
重要ですよ。二倍程度の高速化やったらコンパイラに任せた
ほうがいいかも知れませんよ。頭の体操にはいいかもしれませんが。
>>69
いろいろ流し直すのって面倒じゃないですか。だから噂程度で
ifc 万歳とか思ってたんですが、g77もがんばるわけですねぇ。
ううーむ。
007269
02/01/20 08:43ID:K/B4TT8Aシミュレーションなんで、
結果がでてくる時間がオプション、
コンパイラで大分違うんです。
前にalpha 21264 で、手製の
lapack-blasをcxmlに変えたら
劇的に加速したこともあり、
以来、色々と試すことにしてます。
0073login:Penguin
02/01/20 11:39ID:5whqLm3Tアラインメントは?
2ヵ月と4ヵ月では全然違いますよね。
■ このスレッドは過去ログ倉庫に格納されています