PGIアクセラレータのLinux上の設定(PGI 2010版)

対象 PGI 2010 コンパイラ インストール
GPU用アクセラレータ

 PGI 2010バージョンにおける、PGIアクセラレータ™ コンパイラのインストールに関して説明します。なお、アクセラレータ機能を使用するためには、NVIDIA CUDA 環境(ドライバーとToolkit)がシステムに実装されている必要があります。PGI 2010 リリースから、必要となる CUDA ライブラリ(Toolkitの一部)は、PGIソフトウェアに同梱されておりますので、PGIコンパイラのみの使用用途では CUDAドライバーのみの実装を前以て行っておく必要があります。
2009年12月22日 Copyright © 株式会社ソフテック 加藤

PGIアクセラレータ™ コンパイラのLinux上へのインストール

 2009年11月に発売した PGIアクセラレータ™ コンパイラは、従来の x64 プロセッサ・マルチコア最適化用 PGI コンパイラ機能と GPU 用コンパイラとしてのアクセラレータ機能、CUDA Fortran 機能が全て含まれております。また、2009年11月以降、GPUアクセラレータ機能がない従来の PGI コンパイラ製品も併売されております。但し、ダウンロードするソフトウェアは、「x64プロセッサ用の PGI コンパイラ」と「PGIアクセラレータ™ コンパイラ」と区別されたものではなく、一つの共用の PGI ソフトウェアのファイルを使用してインストールしていただきます。「従来の x64 プロセッサのみのコンパイラ製品」と「新 PGIアクセラレータ™ コンパイラ」は、購入いただいたライセンス製品のライセンスキーで、その使用範囲が区別されます。従って、PGIコンパイラのインストール方法は、各OSプラットフォームで、従来と同じ方法で行っていただきます。
 弊社から、製品をご購入頂いたお客様には、「インストール・マニュアル、ライセンス発行手引書」等の日本語ドキュメントを送付しますので、これを参照の上、PGIソフトウェアをインストールして下さい。また、弊社の「弊社お客様専用のサポートページ」にても、各種ドキュメントをご覧いただけます。

NVIDIA CUDAソフトウェア環境の構築

 NVIDIA CUDA ソフトウェア環境の設定は、以下のページにて説明しています。
  CUDA™ 開発環境をインストールする (Linux版)

PGI 2010 コンパイラソフトウェアの入手

 PGIコンパイラソフトウェアは、以下のページより pgilinux-100.tar.gz ダウンロードして下さい。
  http://www.softek.co.jp/SPG/ftp.html

PGIコンパイラソフトウェアのインストール

 PGIコンパイラソフトウェアは、弊社発行のインストールドキュメント等を参照いただき、インストールしていただきます。なお、インストール後、PGIライセンスキーの取得と設置並びにlmgrd ライセンスマネージャーのセットアップとその起動を行ってください。「評価版ライセンス」を使用する場合は、「試用版ライセンス取得の方法」のページをご参照の上、評価ライセンスキーの取得とそのセットアップをお願い致します。なおインストールするPGIソフトウェアは、正規版のソフトウェアと同じものです。この作業で、インストールは全て終了です。

PGIコンパイラ用の環境変数の設定

 PGIコンパイラを使用するためには、ユーザ環境での環境変数の設定が必要です。以下の FAQ をご参照下さい。
  (FAQ) PGI Linux / Mac OS 用の bash または、csh 環境において環境変数の設定の方法を教えてください

pgaccelinfo コマンドの実行

 PGIが提供するGPUボードの情報を表示するコマンド pgaccelinfo を実行してみます。ここでの例示システムは、GPUボードが2枚実装されているため、以下のような GPU 0、GPU 1 のハードウェア情報が表示されます。以下の例は、システム上に、GeForce GTX 285が0番デバイスとして見つかり、また、、GeForce GTX 280が1番デバイスとして認識されていることが分かります。また、deviceのリビジョンが 1.3 であること、デバイスメモリが 1GB 有し、30個のマルチプロセッサを搭載していることを示しています。また、この情報ボードには、その他のメモリ容量、レジスタ容量、スレッド数に関する制限値等の情報も含まれています。

[kato@photon29 ~]$ pgaccelinfo
Device Number:                 0
Device Name:                   GeForce GTX 285
Device Revision Number:        1.3
Global Memory Size:            1073020928
Number of Multiprocessors:     30
Number of Cores:               240
Concurrent Copy and Execution: Yes
Total Constant Memory:         65536
Total Shared Memory per Block: 16384
Registers per Block:           16384
Warp Size:                     32
Maximum Threads per Block:     512
Maximum Block Dimensions:      512 x 512 x 64
Maximum Grid Dimensions:       65535 x 65535 x 1
Maximum Memory Pitch:          262144B
Texture Alignment              256B
Clock Rate:                    1476 MHz
Initialization time:           31535 microseconds
Current free memory            1014923264
Upload time (4MB)               888 microseconds ( 708 ms pinned)
Download time                  1304 microseconds ( 724 ms pinned)
Upload bandwidth               4723 MB/sec (5924 MB/sec pinned)
Download bandwidth             3216 MB/sec (5793 MB/sec pinned)

Device Number:                 1
Device Name:                   GeForce GTX 280
Device Revision Number:        1.3
Global Memory Size:            1073479680
Number of Multiprocessors:     30
Number of Cores:               240
Concurrent Copy and Execution: Yes
Total Constant Memory:         65536
Total Shared Memory per Block: 16384
Registers per Block:           16384
Warp Size:                     32
Maximum Threads per Block:     512
Maximum Block Dimensions:      512 x 512 x 64
Maximum Grid Dimensions:       65535 x 65535 x 1
Maximum Memory Pitch:          262144B
Texture Alignment              256B
Clock Rate:                    1296 MHz
Initialization time:           31535 microseconds
Current free memory            1023872768
Upload time (4MB)               904 microseconds ( 711 ms pinned)
Download time                  1204 microseconds ( 728 ms pinned)
Upload bandwidth               4639 MB/sec (5899 MB/sec pinned)
Download bandwidth             3483 MB/sec (5761 MB/sec pinned)

 一方、上記コマンドを実行しても、以下のようなメッセージの場合は、適切なハードウェアあるいはボードがインストールされていないか、あるいは、/dev/nvidiactlt 等のデバイスファイルがオープンされていないことが考えられます。この場合の対処については、こちらの FAQ 記事をご覧下さい

[kato@photon28 dev]$ pgaccelinfo
No accelerators found.
Try pgaccelinfo -v for more information

 上記の GPU ボードの情報の中で、deviceのリビジョンが 1.1 あるいは、1.0 の場合は、コンパイラの初期設定ファイルが置かれている、/opt/pgi/linux86-64/{version番号}/bin/sitenvrc ファイルの中に、以下の行を追加設定します。

set COMPUTECAP=11;
あるいは、
set COMPUTECAP=10;

 以上で、PGIコンパイラの設定が終了します。

PGI GPU 用コンパイラ情報サイト