🐡
NVIDIA の Profiler: Nsight Systems を Ubuntu on Docker で使う
前提
これから書くことは全て FROM nvidia/cuda:12.2.2-devel-ubuntu22.04
での話。
Dockerfile で他にやっていることは
- Japanize
- Python の導入
- 非 root ユーザーの追加
くらいで、あまり影響はないと思う。
背景
CUDA stream について詳しく調べる機会があり、 NVIDIA の Justin Luitjens さんによる CUDA Streams: Best Practices and Common Pitfalls を読んでいた(かなり勉強になった)。
そこでプロファイラの話が出てきたので使ってみることにした。
Nsight Systems
CUDA のプロファイラについて調べると、まず出てくるのは nvprof, nvvp の組み合わせ。 nvprof でプロファイリングを行い、 nvvp でそれを可視化するというもの。しかし、これらはレガシーとなっており、 Nsight Systems への移行についての話がある。
公式情報を見つけられなかったのだが、取り敢えず最新(2023年10月時点)のものは
- プロファイリング:
nsys
- 可視化:
nsys-ui
らしい。Docker イメージに元々入っているものではなかったのでインストールする。
インストール
手順は このリンク から Nsight Systems 2023.3.1 (Linux Host .deb Installer) をダウンロード(NVIDIA へのアカウント登録が必要)し、コンテナ内で
sudo apt install ./nsight-systems-2023.3.1_2023.3.1.92-1_amd64.deb
を実行してインストール。
これで nsys
と nsys-ui
が使えるようになる。
注意
可視化の際は注意が必要。私の環境では nsys-ui
は一度落とすと起動しなくなってしまい、コンテナを再起動しなければならなくなるので、見終わったからと言ってむやみに落とさないほうが良い。
Discussion