CUDA コードを追加する前に、Nividia Nsight Eclipse (Linux バージョン) でプロファイリングしたい C++ コードがあります。アイデアは、最初に C++ をプロファイリングし、ホットスポットを見つけ、それらを CUDA に変換し、再度プロファイリングし、このプロセスを繰り返してコードを連続的に高速化することです。ただし、C++ のみをプロファイルすると、プロファイラーがタイムラインとプロファイル出力を生成する前に既存の CUDA コードが必要になるようです。他の誰かがこれに遭遇しましたか?
3 に答える
Nsight Eclipse Editionは、CUDAコードのみをプロファイリングできます。ホストコードをプロファイリングするために、サードパーティのプロファイリングプラグインをインストールすることをお勧めします。
Eclipse FoundationサイトからOProfile統合をインストールしてみてください(http://download.eclipse.org/releases/indigo/をHelp / Install New Software ...ダイアログに貼り付けてください)-試したばかりですが、oprofileを正しくセットアップできませんでしたコマンドライン。
nvtx (NVIDIA Tools Extension) を使用してコードを手動で計測し、タイムラインを Nsight に表示することができますが、自動プロファイリングと詳細なカウンターの場合、GPU コードのみをプロファイリングできます。
はい、Nsight Eclipse は C++ コードをプロファイリングできます。質問を言い換えると、ホスト (CPU) C++ コードのプロファイルも作成できます。デフォルトでは、GPU コードのみをプロファイリングします。CPU プロファイリングは、はるかに手動のタスクです。関数のプロファイリングは自動的には行われません。
NVTX を使用する必要があります。そのようです:
#include "nvToolsExt.h"
nvtxNameOsThread(0,"InputVideo");
nvtxRangePush(__FUNCTION__);
// .. do some CPU computing here
nvtxRangePop();
-lnvToolsExt -L/usr/local/cuda/lib64 でビルド
libnvToolsExt.so へのパスは、人によって異なります。NVTX には CUDA ツールキットが付属しています。