2. 利用方法

2.1. PGIコンパイラの実行

2.1.1. CPUプログラム

GPU非使用時のPGIコンパイラの使用方法を以下に示します。
モジュールを利用して、コンパイラの環境、パスを設定します。

$ module load pgi

PGIコンパイラのコマンド名、コマンド形式を以下に示します。

PGIコンパイラのコマンド名とコマンド形式

コマンド 言語 コマンド形式
pgfortran Fortran 77/90/95 $ pgfortran [options] source_file
pgcc C $ pgcc [options] source_file
pgc++ C++ $ pgc++ [options] source_file

2.1.2. CUDA・CUDA Fortran

GPU使用時のPGIコンパイラの使用方法を以下に示します。
モジュールを利用して、コンパイラの環境、パスを設定します。

module load cuda pgi

CUDA C、CUDA Fortranのコマンド名、コマンド形式を以下に示します。

CUDA Cのコマンド名とコマンド形式

コマンド 言語 コマンド形式
nvcc C $ nvcc -gencode arch=compute_60,code=sm_60 [options] source_file

CUDA Fortranのコマンド名とコマンド形式

コマンド 言語 コマンド形式
pgfortran Fortran 77/90/95 $ pgfortran -Mcuda=cc60 [options] source_file

2.1.3. OpenACC

PGIコンパイラを用いたOpenACCの使用方法を以下に示します。 モジュールを利用して、コンパイラの環境、パスを設定します。

$ module load cuda pgi

OpenACCのコマンド名、コマンド形式を以下に示します。

OpenACCのコマンド名とコマンド形式

コマンド 言語 コマンド形式
pgfortran Fortran 77/90/95 $ pgfortran -acc -ta=tesla,cc60 [options] source_file
pgcc C $ pgcc -acc -ta=tesla,cc60 [options] source_file
pgc++ C++ $ pgc++ -acc -ta=tesla,cc60 [options] source_file

OpenACCの主なオプションを以下に示します。

OpenACCの主なオプション

オプション 説明
-acc OpenACC指示文に基づきGPUコードを生成します。
-ta=tesla:cc60 ターゲットアーキテクチャを指定します。GPU P100用の実行バイナリを作成します。
-Minfo=accel OpenACCのコンパイラによる診断情報を出力します。
デフォルトではOpenACCの診断情報は出力されません。

2.2. GPU情報の取得

PGIコンパイラに含まれているpgaccelinfoコマンドを用いて、シェアドメモリのサイズ、ウォープサイズ等のGPUの詳細情報を得ることができます。
以下に例を示します。

$ module load pgi
$ pgaccelinfo

CUDA Driver Version:           10000
NVRM version:                  NVIDIA UNIX x86_64 Kernel Module  410.79  Thu Nov 15 10:41:04 CST 2018

Device Number:                 0
Device Name:                   Tesla P100-SXM2-16GB
Device Revision Number:        6.0
Global Memory Size:            17071734784
Number of Multiprocessors:     56
Concurrent Copy and Execution: Yes
Total Constant Memory:         65536
Total Shared Memory per Block: 49152
Registers per Block:           65536
Warp Size:                     32
Maximum Threads per Block:     1024
Maximum Block Dimensions:      1024, 1024, 64
Maximum Grid Dimensions:       2147483647 x 65535 x 65535
Maximum Memory Pitch:          2147483647B
Texture Alignment:             512B
Clock Rate:                    1480 MHz
Execution Timeout:             No
Integrated Device:             No
Can Map Host Memory:           Yes
Compute Mode:                  default
Concurrent Kernels:            Yes
ECC Enabled:                   Yes
Memory Clock Rate:             715 MHz
Memory Bus Width:              4096 bits
L2 Cache Size:                 4194304 bytes
Max Threads Per SMP:           2048
Async Engines:                 5
Unified Addressing:            Yes
Managed Memory:                Yes
Concurrent Managed Memory:     Yes
Preemption Supported:          Yes
Cooperative Launch:            Yes
  Multi-Device:                Yes
PGI Default Target:            -ta=tesla:cc60
...

ログインノードでpgaccelinfoを実行しても、ログインノードにはGPUが搭載されておりませんので何も表示されません。
qrshやqsubを用いて計算ノードで実行して下さい。
qrsh/qsubに関しましては、TSUBAME3.0利用の手引きをご参照下さい。

2.3. ライセンス使用状況の確認

PGIコンパイラのライセンス利用状況を以下のコマンドで確認できます。

$ module load pgi
$ lmutil lmstat -S pgroupd -c 27012@lice0:27012@remote:27012@t3ldap1