0

下の Nvidia Nsight 2.2 プロファイリング セッションの画像を参照してください (Win7、MSVC++ 10 Pro、CUDA 4.2、GTX 670)。

Nsightタイムライン

最初のホスト スレッド (26.8%) で、CUDA API から関数呼び出し名を取得します。ホスト プロセスの 2 番目のスレッド (13.6%) によって実行されているユーザー定義関数から関数呼び出し名を取得することは可能ですか? もしそうなら、どのように?

4

2 に答える 2

1

ポール、これはデフォルトではサポートされていません。

NVIDIA Tools Extension (NVTX) ライブラリを使用すると、コードを手動で計測できます。このライブラリは、ディレクトリ C:\Program Files\NVIDIA GPU Computing Toolkit\nvToolsExt に Nsight Visual Studio Edition (すべてのバージョン) または CUDA Toolkit 5.0 RC と共にインストールされます。NVTX は、5.0 RC の Visual Profiler でサポートされています。

ライブラリには、ライブラリの使用方法を示す 2 つのサンプルが付属しています。NvtxMultithread.cpp サンプルは、ヘルパー ライブラリを提供します。気になる機能は、

nvtxRangePushA
nvtxRangePop

または、C++ を使用している場合、ヘルパー ライブラリには、次のように使用できるスコープ付きヘルパーがあります。

nvtx::ScopedRange range(__FUNCTION__)

各関数の上部にあります。

cl.exe オプション /Gh および /GH を使用してこれを自動化することは可能ですが、これにはアセンブリの記述が必要です。

于 2012-08-01T20:47:04.810 に答える
0

このプレゼンテーションは役立つかもしれません。Parallel Nsight: 超並列アプリケーションの分析と最適化.

于 2012-07-25T06:26:45.973 に答える