【CUDA】NsightのTimelineで処理を解析しよう!

CUDA入門

CUDAでコーディングをしているとき、GPUで何が起きているか判らないですよね。
そんなときは、Nsightというツールを使って処理の解析をしましょう。

Nsightは、CUDA ToolKitをインストールしたときに一緒に使えるようになる解析ツールです。
うまく活用すれば、動作の確認などがスムーズになり、CUDAへの理解もより深まるでしょう。

この記事では、最も利用するであろうTimelineの使い方を解説します。

環境

CUDA Toolkit バージョン10.0
ディスプレイドライバのバージョン416.94

もし、Nsightで結果がうまく見れないときはドライバのバージョンなどを新しくしてみましょう。
Nsightは動作環境にシビアなので、どうしても動かないときは無駄に悩むよりはバージョンを変えたりして試してみることが大事です。

手順

Nsightの起動

Visual Studioのメニューから[Nsight]->[Start Performance Analysis…]をクリックします。

[Connect unsecurely]か[OK]をクリックします。

解析したいソフトの起動

以下のような画面が出て来たら、判りづらいですが下へスクロールしてください

スクロールすると、チェックする箇所が出てくるので[CUDA]の欄にチェックを入れて、
さらに下の[Application Control]の[Launch]をクリックして下さい。

ソフトで処理

ソフトが起動するので、解析させたい箇所が実行されるように操作しましょう。

解析をしているので、普通に動作させるよりも遅いですが、解析結果には影響しません。

解析させたい箇所の実行が終わったら、ソフトを終了しましょう。

Timelineの表示

ソフトが終了したら、以下のような画面が出るはずです。
[Timeline]をクリックしましょう。

このように、タイムラインが表示されます。

Timelineの見方

Timelineの見方は以下の通りです。

棒の部分にカーソルを合わせると、詳細情報が表示されます。
以下はHostToDeviceの情報です。
転送サイズや時間などの情報が表示されています。

なお、実行したコードはこちらで解説したコードです。

【CUDA】CUDA入門、基本的なコーディング方法を学ぼう
CUDAのコーディング方法と基礎的な知識を解説していきます。この記事を理解すれば、簡単な処理なら作れるようになるでしょう。 あまり深く突っ込んだ話をする前に、とりあえず動く処理を作ることを目指します。

まとめ

今回はシンプルな処理でTimelineの見方を解説しましたが、複数の処理を同時に実行させたときほどTimelineの真価を発揮します。

処理が意図したとおりにスケジューリングされているか確認ができれば、より高速化を図れるのでうまく活用しましょう。

マウスコンピューター/G-Tune