• 公開日:2020年07月17日
  • | 更新日:2022年11月21日

NVIDIA® Jetson™ のソフトウェア開発のデバック方法  NVIDIA® Nsight™ Systemsについて

  • ライター:TToba

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は必要不可欠のツールとなるのではないでしょうか?ご活用いただければ幸いです。