0Pricing
CUDA Academy · レッスン

NVTXでコードに注釈を付ける

範囲に名前を付け、読みやすいタイムラインを作ります。

「NVTXでコードに注釈を付ける」はCoddyKit上の無料CUDA Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCUDA Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CUDA Academyコースには全4レッスンが含まれています。

タイムラインにはラベルが必要

生のタイムラインには、名前のないバーが並びます。NVTXを使えば独自の名前を追加でき、プロファイラ上でコードの内容を読み取れるようになります。🏷️

NVTX とは

NVTXは NVIDIA's Tools Extension です。領域やイベントをマークする小さなライブラリで、Nsight がそのマークをタイムラインに表示します。

ヘッダーをインクルードする

まず1つのヘッダーをインクルードします。これで、ホストコードのどこからでもマーク用の呼び出しを利用できるようになります。

#include <nvtx3/nvToolsExt.h>

範囲をマークする

処理の一部分を名前付きの範囲で囲みます。push で開始し、pop で終了すると、ラベル付きのバーが1つ描画されます。

nvtxRangePush("load data");
// work here
nvtxRangePop();

Push と pop の入れ子

範囲は角括弧のように入れ子になります。外側の範囲を pop する前に内側の push を pop するため、タイムライン上でラベルがきれいに積み重なります。

瞬間的なマーカー

ある瞬間だけを示したい場合は、範囲ではなくマーカーを配置します。エポックの開始など、1つのイベントを記録できます。

nvtxMark("epoch start");

範囲に色を付ける

各範囲に色を付けると、ステージを一目で見分けられます。読み込みを青、計算を緑にする、といった設定が可能です。

読みやすいタイムライン

NVTX を使うと、Nsight の表示上で preprocess や inference などのフェーズを名前で確認できます。暗号のようなカーネルシンボルを読み解く必要がなくなります。

無効時のコストはほぼゼロ

プロファイラが接続されていないとき、NVTX の呼び出しはほぼ無償です。実質的なコストなしで、アノテーションをコードに残しておけます。

ホスト側で動作する

NVTX はホストコード、つまり処理を指揮する CPU 側のコードにアノテーションを付けます。カーネルやコピーが実行される領域を示します。

RAII ラッパー

現代的な C++ では、範囲を小さなRAIIオブジェクトで囲むことがよくあります。スコープの終了時に自動的に pop されるため、呼び出しを忘れません。

クイックチェック

Nsight のタイムラインに、名前付きのラベル付き領域を表示したいとします。

まとめ

NVTX は、正体の分からないバーを名前付きの範囲やマーカーに変えます。push と pop を数回呼び出すだけで、Nsight のタイムラインがすぐに読みやすくなります。👏

よくある質問

「NVTXでコードに注釈を付ける」レッスンは無料ですか?

はい。「NVTXでコードに注釈を付ける」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CUDA Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CUDA Academyコースには全4レッスンが含まれています。

「NVTXでコードに注釈を付ける」で何を学びますか?

範囲に名前を付け、読みやすいタイムラインを作ります。 ブラウザで直接実行するハンズオンコードでCUDA Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CUDA Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCUDA Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「NVTXでコードに注釈を付ける」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCUDA Academyレッスンでコードを書いて実行できますか?

はい。すべてのCUDA Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Nsight Systemsのタイムライン表示
  2. Nsight Computeのカーネルメトリクス
  3. 計算バウンドとメモリバウンド
  4. NVTXでコードに注釈を付ける
← CUDA Academyに戻る