NVIDIA Nsight SystemsはNVIDIAから提供されているプロファイラです。CPU/GPUの使用率、メモリ使用量、データ転送量など、プロフラムの性能評価を行うことができます。GUI上でのビジュアルプロファイリングだけでなく、CUI上でのテキストベースのプロファイリングも可能です。
SQUID では、nsight systems 2020.4 が利用可能です。
利用方法
バッチリクエストにより計算ノード上でプログラムの調査を行い、得られた結果をフロントエンド上で閲覧するという流れになります。以下で具体的な手順とジョブスクリプトについて解説します。
1.ジョブスクリプトの作成、投入
-
以下の例は、SQUID GPUノードで NVIDIA Nsight Systems を用いたプログラムの解析を行うジョブスクリプトです。
スクリプト名に特に指定はありません。
シリアル実行の場合
1 2 3 4 5 6 7 |
#!/bin/bash #PBS -q SQUID #PBS -l elapstim_req=1:00:00,gpunum_job=1 #PBS --group=【グループ名】 module load BaseGPU/2021 cd $PBS_O_WORKDIR nsys profile -o result ./a.out |
MPI並列実行の場合
1 2 3 4 5 6 7 8 9 |
#!/bin/bash #PBS -q SQUID #PBS -l elapstim_req=1:00:00,gpunum_job=2 #PBS -b 1 #PBS -T openmpi #PBS -v NQSV_MPI_MODULE=BaseGPU/2021 module load BaseGPU/2021 cd $PBS_O_WORKDIR nsys profile -o result mpirun ${NQSII_MPIOPTS} -np 2 ./a.out |
nsys profileコマンドが、NVIDIA profiler による調査を行うことを指示するコマンドです。MPI並列実行の場合、上記のように指定することで各プロセスの解析結果を一つのファイルにまとめることができます。-oオプションは解析結果を出力するレポートファイルのファイル名を指定するオプションです。指定した名前のレポートファイルが実行したディレクトリに生成されます。指定しなかった場合はhomeディレクトリにreport1.qdrepというような名前で生成されます。
ジョブスクリプトのその他の行についてはこちらをご参照ください。
作成したジョブスクリプトをqsubコマンドで投入し、計算ノード上でプロファイリングを行います。
% qsub nns.sh
3.解析結果の確認
-
ジョブの実行が終了すると、ジョブスクリプトで指定したディレクトリ内に解析結果ファイルが出力されます。
解析結果はCUI、GUIどちらでも閲覧することが可能です。特に理由がない限りは、GUIを用いて閲覧することを推奨します。
結果の閲覧はフロントエンドで行うことになるためメモリ使用量上限を2GBに制限していますが、GUIで閲覧する場合は解析結果ファイルの5~6倍のメモリ容量が必要となるため、大規模なファイルをGUIで閲覧しようとするとメモリ不足によりエラーが発生することがあります。
一時的に上限を引き上げることも可能ですので、メモリ不足のエラーが発生した場合は問い合わせフォームよりご連絡ください。
CLIでの閲覧方法
-
以下のコマンドで、CLI上でレポートを確認できます。
% nsys stats (レポートファイル名)
※事前に BaseGPU/2021 モジュールのロードが必要です。
GUIでの閲覧方法
-
GUIでの利用にはXサーバ環境が必要となります。こちらを参考に、あらかじめ起動をお願いいたします。
下記コマンドでGUIを立ち上げます。
nsys-ui
※事前に BaseGPU/2021 モジュールのロードが必要です。
立ち上がったGUI上部の [File] から [Open] を選択してレポートファイルを開くことで、レポートを確認できます。