NSIGHT Systemsは、アプリケーションでのCPU-GPUの相互作用を視覚化および分析するために設計された強力なツールであり、パフォーマンスボトルネックと最適化の機会に関する洞察を提供します。これらの相互作用を視覚化する方法は次のとおりです。
###システム全体のパフォーマンス分析
NSIGHTシステムは、CPUイベントとGPUイベントの両方を含むシステム全体のアクティビティデータをキャプチャし、統一されたタイムラインに表示します。このタイムラインにより、開発者はシステムのさまざまなコンポーネントが時間の経過とともにどのように相互作用するかを確認することができ、アプリケーションのワークフローで相関、依存関係、およびボトルネックを簡単に識別できるようになります[3] [4]。
CPUアクティビティの視覚化
NSIGHT Systemsは、スレッド状態、利用、およびアルゴリズムの実行を表示することにより、CPUアクティビティを視覚化します。これにより、開発者はCPUリソースがどのように使用されているか、潜在的なボトルネックが存在する場所を理解するのに役立ちます。このツールは、マルチプロセスツリー分析をサポートし、ユーザーが複数のプロセスとスレッドのアクティビティを同時に追跡できるようにします[1] [3]。
GPUアクティビティの視覚化
GPUアクティビティの場合、NSIGHT Systemsは、ストリーミングマルチプロセッサ(SM)の最適化、メモリ転送、カーネルの実行など、GPUワークロードに関する詳細な洞察を提供します。 CUDA、Vulkan、OpenGLなどのさまざまなGPU APIのトレースをサポートし、開発者がGPUの計算タスクとグラフィックスタスクを詳細に分析できるようにします[3] [4]。このツールは、SM使用、テンソルコアアクティビティ、命令スループットなどのメトリックを含むGPUメトリックサンプリングも提供します。これらのメトリックは、GPUリソースの使用における十分な活用または非効率性を特定することにより、開発者がGPUのパフォーマンスを最適化するのに役立ちます[1] [3]。
CPUイベントとGPUイベントを相関させます
Nsight Systemsの重要な機能の1つは、CPUイベントとGPUイベントを相関させる機能です。同じタイムラインでCPUアクティビティとGPUアクティビティの両方を視覚化することにより、開発者はCPU操作がGPUのパフォーマンスにどのように影響し、その逆にどのように影響するかを確認できます。この相関は、データ転送の遅延や同期の問題など、CPUとGPU間の相互作用のために発生するボトルネックを特定するために重要です[3] [4]。
###低いオーバーヘッドとスケーラビリティ
Nsight Systemsは、オーバーヘッドが低い状態で動作するように設計されており、プロファイリングプロセスがアプリケーションのパフォーマンスに大きな影響を与えないようにします。これにより、ワークステーションからデータセンター、クラウド環境まで、さまざまなNVIDIAプラットフォームで実行されている複雑で大規模なアプリケーションの分析に適しています[3] [6]。
###ユーザーインターフェイスとナビゲーション
このツールは、開発者がスクロールバー、マウスホイール、キーボードショートカットを使用してタイムラインビューをナビゲートできるようにするユーザーフレンドリーなGUIを提供します。このインターフェイスにより、ユーザーは特定の時間範囲またはイベントにズームインし、パフォーマンスの問題の詳細な分析を促進できます[5] [9]。
全体として、NSIGHT SystemsはCPU-GPUの相互作用の包括的なビューを提供し、開発者がアプリケーションを最適化して、幅広いプラットフォームでより良いパフォーマンスと効率性を提供することができます。
引用:
[1] https://extremecomputingtraining.anl.gov/wp-content/uploads/sites/96/2022/11/atpesc-2022-track-6-talk-2-keipert-nvidia.pdf
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
[4] https://indico.cern.ch/event/962112/contributions/4047370/attachments/2159916/3643963/nsight%20systems%20-%20x86%20introduction%20-%20cern.pdf
[5] https://www.youtube.com/watch?v=tgchxcfm-yo
[6] https://docs.nersc.gov/tools/performance/nvidiaproftools/
[7] https://www.youtube.com/watch?v=kkanp0kl_hk
[8] https://docs.nvidia.com/nsight-systems/userguide/index.html
[9] https://www.youtube.com/watch?v=dudgo66iadu
[10] https://dev-discuss.pytorch.org/t/using-nsight-systems-to-profile-gpu-workload/59