0

Linux をオペレーティング システムとして使用して nvcc で CUDA コードをコンパイルするのに慣れていたため、Visual Studio 2010 は初めてです。ちなみに、これと NVIDIA Developer Zone フォーラムのいくつかの投稿で、NVIDIA Visual Profiler を正しく使用するために、Visual Studio (デバッグ/リリース モード、2 つの違いについてはリンクを参照) での適切なコンパイルに関する警告を読みました。私の(不十分な)理解では、Visual Studio は「デバッグ」モードで自動的にコンパイルされますが、プロファイルを成功させるには「リリース」モードが必要です。

私の(簡単な)質問は次のとおりです。

1) 「デバッグ」モードから「リリース」モードに切り替えるにはどうすればよいですか? Properties -> Configuration Properties を使用して、「Active(Debug)」の代わりに「Release」を選択するだけで十分ですか? また、プロジェクトを再構築するたびに選択を繰り返さなければならないことに気付きました。

2) Visual Profiler を正しく使用するには、これで十分ですか?

事前にどうもありがとうございました。

4

2 に答える 2

2

1)間違った場所でデバッグからリリースに切り替えています。使用している設定は、表示または編集するビルド設定を選択するためのものです。Build | Configuration Managerまたは(より簡単に)ツールバーのSolution Configurationsドロップダウンボックスを使用する必要があります。Standardツールバーが表示されない場合はStandard、メニューのそばのツールバー領域を右クリックして選択します。ビルドごとに設定を再選択する必要がないことがわかります。

2) CUDA コンパイラは、デバッグ モードでも積極的に最適化します。どの構成を使用するかが重要かどうかはわかりません。どちらも機能するはずです。異なる結果が得られるかどうかを試してみることができます。

于 2013-01-09T21:37:37.367 に答える
1

構成の設定方法については、Roger Dahl の回答を参照してください。

プロファイリングにはいくつかの形式があります。

パフォーマンス プロファイリング

これは、CUDA カーネルで最適化を有効にして行う必要があります。最適化を無効にしてデバッグ情報を指定すると、CPU よりも多くの操作が実行されますが、カウンターに影響を与えるコードへの他の変更 (スタック オーバーフロー チェック) が行われます。

ソースレベルのプロファイリング

これは、デバッグ ビルドまたはリリース ビルドで実行できます。Nsight 3.0 CUDA Profiler には、C ソース、PTX、または SASS ラインごとの統計を表示するソース レベルの実験があります。CUDA 5.0 Visual Profiler は、コード相関実験をサポートしていますが、すべての行の結果を表示するわけではありません (問題のある行のみ)。最適化を無効にすると、SASS から PTX から C コードへのマッピングの行情報が大幅に正確になります。多くの分析ケースでは、これで問題ありません。ただし、C 行ごとのコード生成を理解したい場合は、完全な最適化を有効にし、SASS コードをよく見て、ガイドとして C ソースと PTX のみを使用する必要があります。

C ソース レベルの相関関係を取得するには、完全なデバッグ情報を生成するデフォルトのデバッグ構成を使用するか、-lineinfo を有効にするカスタム構成を使用する必要があります。このオプションは、次の手順を使用して有効にできます。

  1. ソリューション エクスプローラーを開く
  2. .cu ファイルまたはプロジェクト ファイルを右クリックします。
  3. Propertiesコマンドを実行する
  4. 左ペインでツリー ノードを選択しますConfiguration Properties | CUDA C/C++ | Device
  5. 右側のペインで次のように変更Generate Line Number InformationしますYes

CUDA 5.0 では、 -lineinfo はコード生成にいくつかの小さな影響を与えるため、リリース構成でこれを有効にしておくことはお勧めできません。

于 2013-01-10T04:20:21.887 に答える