🐡

NVIDIA の Profiler: Nsight Systems を Ubuntu on Docker で使う

2024/02/20に公開

前提

これから書くことは全て 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 への移行についての話がある。
https://developer.nvidia.com/blog/transitioning-nsight-systems-nvidia-visual-profiler-nvprof/

公式情報を見つけられなかったのだが、取り敢えず最新(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

を実行してインストール。
これで nsysnsys-ui が使えるようになる。

注意

可視化の際は注意が必要。私の環境では nsys-ui は一度落とすと起動しなくなってしまい、コンテナを再起動しなければならなくなるので、見終わったからと言ってむやみに落とさないほうが良い。

Discussion