|
PGI 製品にバンドルされた ACML の使用法
一般的な 1CPU 用並びに OpenMP用の ACML ライブラリのリンク方法は以下のとおりです。なお、OpenMP版のライブラリは、PGI
6.2 以降でバンドルされております。このACML ライブラリは、SSE/SSE2/SSE3 インストラクションを使用していますので、使用するハードウェア(MPU)
がSSE ハードウェアをサポートしている必要があります。現在のハードウェアがサポートしているか否かを判別するには、以下のコマンドを使用して、SSE/SSE2/SSE3
フラグが存在するか確認してください。
ACMLライブラリをリンクするためのコンパイル・オプションは次のとおりです。オプションの順番に気をつけてください。なお、ライブラリは、SSE
インストラクションを使用しているため、データ整列のために32ビット環境では、-fastsse あるいは、-Mcache_align を必ず指定してください。(64ビット環境の場合は、デフォルトでデータ整列されています ) OpenMP版の ACML ライブラリは、-mp オプション(OpenMP並列化のためのオプション)並びに、-lacml あるいは -lacml_mp を付加することにより、自動的にリンクされます。
Windows 環境での ACML ライブラリの使用に関する記事が、こちらのページにもございます。
1CPU シリアル版のACMLをリンクする場合(Linux)
pgf77 -fastsse -Mcache_align test.f -lacml
pgf95 -fastsse -Mcache_align test.f -lacml pgcc -fastsse -Mcache_align test.c -lacml
1CPU シリアル版のACMLをリンクする場合(Windows)
【32ビットWindows PGI 7.0 以降】
pgf77 -fastsse -Mcache_align -Munix test.f -lacml
pgf95 -fastsse -Mcache_align -Munix test.f -lacml pgcc -fastsse -Mcache_align -Munix test.c -lacml
※ 32ビット版 PGI6.2は ACML をバンドルしてません
※ 32ビット環境では、-Munixを必ず付加して下さい
【32ビットWindows PGI 7.1 以降】
pgf77 -fastsse -Mcache_align -Munix test.f -lacml -Bdynamic
pgf95 -fastsse -Mcache_align -Munix test.f -lacml -Bdynamic pgcc -fastsse -Mcache_align -Munix test.c -lacml -Bdynamic
※ PGI 7.1 以降は、Windowsデフォルトのリンク形式が static となった
ため、ACMLライブラリの場合は、 明示的に-Bdynamic が必要です。
※ 32ビット環境では、-Munixを必ず付加して下さい
【64ビットWindows PGI 6.2 以降】
pgf77 -fastsse -Mcache_align test.f -lacml
pgf95 -fastsse -Mcache_align test.f -lacml pgcc -fastsse -Mcache_align test.c -lacml -pgf77libs
【64ビットWindows PGI 7.1 以降】
pgf77 -fastsse -Mcache_align test.f -lacml -Bdynamic
pgf95 -fastsse -Mcache_align test.f -lacml -Bdynamic pgcc -fastsse -Mcache_align test.c -lacml -pgf77libs -Bdynamic
OpenMP版のACMLをリンクする場合(Linux)
PGI6.2の場合
pgf77 -fastsse -Mcache_align -mp test.f -lacml
pgf95 -fastsse -Mcache_align -mp test.f -lacml
pgcc -fastsse -Mcache_align -mp test.f -lacml
PGI7.0以降の場合
pgf77 -fastsse -Mcache_align -mp test.f -lacml_mp
pgf95 -fastsse -Mcache_align -mp test.f -lacml_mp
pgcc -fastsse -Mcache_align -mp test.f -lacml_mp -pgf77libs -lm
OpenMP版のACMLをリンクする場合(Windows)
PGI6.2の場合 【64ビットWindows版のみ】
pgf77 -fastsse -Mcache_align -mp test.f -lacml
pgf95 -fastsse -Mcache_align -mp test.f -lacml
pgcc -fastsse -Mcache_align -mp test.f -lacml
PGI7.0の場合 【32ビット、64ビットWindows版】
pgf77 -fastsse -Mcache_align -mp test.f -lacml_mp
pgf95 -fastsse -Mcache_align -mp test.f -lacml_mp
pgcc -fastsse -Mcache_align -mp test.f -lacml_mp -pgf77libs -lm \
-Bdynamic
(注意)32bit Windows の場合は、さらに -Munix を付加して下さい。
PGI7.1以降の場合 【32ビット、64ビットWindows版】
pgf77 -fastsse -Mcache_align -mp test.f -lacml_mp -Bdynamic
pgf95 -fastsse -Mcache_align -mp test.f -lacml_mp -Bdynamic
pgcc -fastsse -Mcache_align -mp test.f -lacml_mp -pgf77libs -lm \
-Bdynamic
(注意)32bit Windows の場合は、さらに -Munix を付加して下さい。
※ PGI 7.1 以降は、Windowsデフォルトのリンク形式が static となった
ため、ACMLライブラリの場合は、 明示的に-Bdynamic が必要です。
※ PGI 7.1 リリース 以降の Linux 版での注意 (-fPIC or -mcmodel=medium を付加した場合)
-fPIC オプションを使用してコンパイルし、-lacml (ACMLライブラリ)をリンクする際に、 “error while loading shared libraries: libacml_mv.so: cannot open shared
object file: No such file or directory.” と言うエラーメッセージが出力されます。その際は、" -lacml_mv" オプションをリンク時のコマンド列に追加してください。
|