NGC(NVIDIA GPU Cloud)にPGI CompilerのCommunity Editionのコンテナがあった。
NGCは、Pascal世代以降のGPUしかサポートしていない、と理解していたので、登録されているコンテナを使うことは諦めていた。
このPGI Compilerのコンテナは、Kepler世代以降とあったので、自分のGPU環境にも合致しているので、試しに使ってみる。
(1)NGCアカウントを取得する。
・このログインページから新規アカウントを作成する。
・NVIDIAからのメールでログインする。
パスワード入力が求められるので、パスワードを設定する。
・Generate API KeyでAPIキーを取得する。
ログインして、CONFIGURATION → Setup → GeneratAPI Keyの[Get API Key]
・Setup > API Key画面の右肩の「Generate API Key」をクリックすると、
API Key(英数字文字列が1行程度)が表示されるので、メモ(コピペ)しておく。
(2)ログインするためにAPI Keyを登録する。
・コピペしたAPI KeyをPasswordにして、次のUsernameでログインする。
$ sudo docker login nvcr.io
Username: $oauthtoken
Password: (API Keyをペースト)
・・・(略)・・・
Login Succeeded
$
(3)PGI CompilerイメージのPull/起動
・ホストマシンのディレクトリ(/home/xxxx/workspace)をコンテナ内(/workspace)で使うため、-vオプションを使って次のように起動する。
$ sudo docker run --runtime=nvidia -it --rm -v /home/xxxx/workspace:/workspace nvcr.io/hpc/pgi-compilers:ce
・・・(略)・・・
#
(4)PGI関連コマンドを使って、GPUの情報を表示する。
pgaccelinfoコマンドの実行結果。
上記は、この記事で記述したように、GTX Titanを使うように-e NVIDIA_VISIBLE_DEVICES=0を指定して起動した結果。
※ 今回は、NGCに登録されているPGI CompilerのDockerイメージが自分の環境(Kepler世代GPUで)使えることまで検証。
※ Open ACCを使う(ディレクティブを入れる)のは、また別記事にて。