なに
nvvpでプロファイリングを行う方法としては「nvprofでプロファイルングデータを出力してnvvpで見る」方法と「nvvp内で実行してプロファイリングを行う」方法がある.後者でリモートで対象のプログラムを実行したい場合どうするかという話.
模式図

環境
- ローカルノード(nvvp実行ノード)
- OS
- ArchLinux
- uname -a
- 4.17.5-1-ARCH #1 SMP PREEMPT Sun Jul 8 17:27:31 UTC 2018 x86_64 GNU/Linux
- CUDA
- 9.2, V9.2.148
- 計算ノード(解析対象プログラム実行ノード)
- OS
- CentOS7
- uname -a
- 3.10.0-862.6.3.el7.x86_64 #1 SMP Tue Jun 26 16:32:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
- CUDA
- 9.2, V9.2.148
設定
- nvvpを開き「File」→「New Session」→「Manage connections」
「Add」を押して計算ノードへSSHで接続する際のユーザー名とパスワードを入力.
入力が完了したら「Finish」
「Connection」を今設定したリモートのものにする. - Toolkit/Script欄の左端の「Manage」を押して「Toolkit path」に計算ノードのCUDAのbinディレクトリへのパスを設定.
パスワードやマスターパスワードの設定や秘密の質問的なものの設定を聞かれたら適当に対応. - [これ以降はremoteでない場合と同じ]
「File」や「Working directory」「Argument」を対象プログラムのそれに設定. - 「Next」→「Finish」
おわり
計算ノード側でnvvpがJavaのランタイムエラーで立ち上がらなかったためこの方法を取りましたが、ほぼ不自由がないのでいい感じです.shellの.*rcを読み込んでくれているみたいなので普通に計算ノードにログインした際の環境変数がセットされていました.
参考サイト
カテゴリー:CUDA
記事作成日:2018-07-16