- 公開日:2020年07月17日
- | 更新日:2022年11月21日
NVIDIA® Jetson™ のソフトウェア開発のデバック方法 NVIDIA® Nsight™ Systemsについて
- ライター:TToba
- GPU
Jetson上で動作する組込みシステムを開発する上で、必ずデバックが必要となります。JetsonはLinuxベースで動作するため、デバックツールはオープンソースのツールから、NVIDIAが提供しているツールまで数多く存在しており、状況に応じて使い分ける必要があります。
◇オープンソースとして提供されているデバックツール例
gdb | C言語のデバックツール |
perf | CPU使用率を関数単位で閲覧できるなどの機能あり、ボトルネック解析に使用可能 |
strace | プログラムが使用するシステムコール及び受け取るシグナルを監視 |
itrace | プロセスが実行するライブラリ関数を監視 |
valgrind | メモリデバッグや、メモリリークの検出、スレッドエラーの検出、プロファイリングが可能 |
gprof | C/C++プロファイラ |
◇NVIDIAが提供するデバックツール
nvprof | コマンドラインのCUDA用プロファイラ |
NVIDIA Nsight System | GUIが使用可能なCUDAプロファイラ |
本稿ではNVIDIA が提供するデバックツールNsight™ Systemsについて、インストール方法からJetsonで使う場合の使い方について説明します。Jetsonを分析ターゲットとした内容ではありますが、NsightはNVIDIA が提供するGPU製品で活用することができます。ちなみに従来使われていたnvprofはCUDAのユーザーガイドに将来的には非推奨となるようで、Nsightの使用が推奨されています。
参考:https://docs.nvidia.com/cuda/profiler-users-guide/index.html
==CUDA ユーザーガイドより抜粋==
Note that Visual Profiler and nvprof will be deprecated in a future CUDA release. It is recommended to use next-generation tools NVIDIA Nsight Compute for GPU profiling and NVIDIA Nsight Systems for GPU and CPU sampling and tracing.
====
Nsightについて
Nsightは3種類のツールから構成されます。
Nsight Systems | CPUとGPUで実行されたプログラムの状態を視覚化し、アプリケーションの最適化を効率的に行うためのパフォーマンス分析ツール |
Nsight Compute | CUDAアプリケーションのカーネルプロファイラ |
Nsight Graphics | OpenGLアプリケーションのデバックと最適化ができるツール |
Jetsonに必要なSDKを一括でインストールするためのNVIDIA® Jetpack™にNsightの各種ツールは含まれています。インストール方法は後述しますが、Jetpackをインストールすればすぐに使える環境が構築可能です。
Nsight Systemsの使い方について
ここからは具体的なNsight systemsの使い方について説明していきます。
下記のようにシステムを接続します。JetpackをJetsonにフラッシュするときと同様の構成ですので、Jetsonユーザーには理解しやすい構成かと思います。
全体の接続イメージ
ホストPCへのNsightのインストール方法
ホストPCにNsightのツールをインストールしていきます。
NsightのツールはJetpackをフラッシュするためのNVIDIA SDK Managerを使って簡単にインストールすることができます。(JetsonにホストPC経由でJetpackをフラッシュした方はすでにインストール済みですので、この作業は不要です。)
①NVIDIA SDK Managerをダウンロード
以下のURLからNVIDIA SDK ManagerをホストPCへダウンロードします。
https://developer.nvidia.com/nvidia-sdk-manager
②NVIDIA SDK Managerのインストール
ファイルをダウンロード後、下記コマンドにてNVIDIA SDK Managerをインストールします。
Host $ sudo apt install ./sdkmanager-[version].deb
③NVIDIA SDK Managerの実行
Host $ sdkmanager
NVIDIA SDK Managerを起動するとNVIDIA Developerへのログインが要求されますので、SDK Managerダウンロード時に作成したアカウント情報を入力します。
Step 01画面で、Target Hardwareのチェックを外して、Continueを押す。
Step 02画面でNsightが含まれている事を確認し、使用許諾契約を確認し、同意事項にチェックを入れてContinueを押す。
ホストPC上でsudoするためのパスワードを入力するとインストールが開始します。あとはツールに従ってFinishまでボタンを押していきます。
Nsight Systemsの実行
まずは下記コマンドで起動します。
Host $ nsight-sys
GUIが起動したら、下記赤枠をクリックしてJetsonとSSHで接続する設定を実施します。
USB Device Mode で接続された JetsonのIPアドレスはデフォルト192.168.55.1となっているのでIPアドレスと設定したUsernameを入力します。(今回は”nx”と入力)
設定完了したら“Connect”をクリック
JetsonにログインするときのPasswordを入力すれば接続完了
試しにNVIDIAの用意しているCUDAサンプルで解析を実行
・解析したいプログラムのパスを記載
・解析したいオプションにチェックを実施
・Startをクリック
解析結果
以上が使い方となります。
開発したアプリケーションを最適化し、Jetsonのパフォーマンスをフル活用するためにNsight systemsは必要不可欠のツールとなるのではないでしょうか?ご活用いただければ幸いです。