3

私はWindowsプラットフォームでCUDAを使用しています。Windowsプラットフォームでは、ParallelNsightとVisualProfilerの両方にアクセスできます。どちらもかなり優れていますが、プロファイリングとトレースに関してほぼ同様の機能を備えています。誰かが私にそれらがどのように異なっているか、そしてどちらがウィンドウズプラットフォームに適しているかを私に言うことができますか?基本的にプロファイリング用のツールが必要になります。

4

3 に答える 3

6

Nsight Visual Studio Edition 2.2 には、Visual Profiler に比べて次の利点があります。

全体

  1. Visual Studio 2008 SP1 および 2010 への統合 (VS Express Edition は統合パッケージをサポートしていないため、Professional Edition が必要です)。

  2. ローカルおよびリモート分析セッション。リモート セッションは、アプリケーションとリソースをリモート システムにコピーするように構成することもできます。

  3. ターゲット アプリケーションまたはプロセス ツリーから情報を収集します。

  4. レポート ビューでは、より高度なグループ化とフィルタリングがサポートされています。データ テーブルは、Excel にエクスポートできます。

トレース活動

  1. プロセス、スレッド、モジュールの有効期間、スレッド コンテキストの切り替え、スレッド待機の理由、CPU 使用率、プロセス CPU 使用率、スレッド使用率などの OS アクティビティをトレースします。

  2. CUDA、OpenGL 2.x-3.x、DirectX 9-11、および OpenCL 1.1 の API および GPU 作業トレースを収集し、すべての情報をタイムラインに表示します。

  3. トレースされたすべての API 呼び出し、またはトレースされた API 呼び出しがエラーを返した場合のみのコール スタック トレースのコレクション。

  4. コンテキストごとに割り当てられたメモリを表示する CUDA ソフトウェア カウンター。

  5. どの情報を追跡するかについての追加の制御。あまりにも多くの情報をトレースすると、アプリケーションが CPU バウンドになる可能性があるため、これは重要です。

  6. NVIDIA Tools Extensions Library と D3D Performance Markers からのユーザー注釈のタイムラインとツリー表示。

CUDA プロファイリング アクティビティ

  1. CUDA プロファイラーは、カーネルをキャプチャし、アプリケーションに対して透過的に何度も再生する方法を提供します。これにより、アプリケーションを 1 回起動するだけで、非決定論的なアプリケーションでプロファイリング データを収集できます。Visual Profiler <= 5 では、アプリケーションを何度も再起動できるように、アプリケーションが決定論的である必要があります。

  2. アプリケーションのパフォーマンスを制限しているものを理解するのに役立つ十分な占有率とワープ ストールの理由があるかどうかを理解するための最も重要なメトリックであるワープ適格を含む、Visual Profiler でまだサポートされていない多くの有用なメトリックの収集をサポートします。

Visual Profiler には次の利点があります。

  1. クロスプラットフォーム。

  2. 収集された情報を確認するためのエキスパート システムを提供します。

  3. 結果内の CUDA ベスト プラクティス ガイドへのリンク。

  4. イベントをクリックすると、タイムラインに CPU イベントと GPU イベントの相関関係が表示されます。

  5. CUDA 5.0 は、新しいコマンド ライン プロファイラー (nvprof) をサポートします。

  6. CUDA 5.0 は、分岐分岐のソース相関と、不適切なアクセス パターンによるメモリ アクセスをサポートします。

  7. CUDA 5.0 プロファイラーは、Nsight Eclipse Edition に統合されています。

  8. Tesla PM カウンターのサポートが向上しました。

CUDA 5.0 の Visual Profiler は、Nsight 1.5 および 2.x で使用可能な多くの機能を追加します。

  • タイムラインに表示できる範囲とマーカーでアプリケーションに注釈を付けるための NVIDIA ツール拡張ライブラリ。

  • Fermi および Kepler GPU での同時カーネル トレース。

どちらのツールも、アプリケーションの分析に非常に役立つ情報を提供します。各ツールの最新バージョンを使用することをお勧めします。

Nsight VSE の今後のバージョンには、CUDA カーネルの実行を調査するための多くの新機能が含まれます。詳細については、http://developer.download.nvidia.com/GTC/PDF/GTC2012/PresentationPDF/S0430-GTC2012-Developing-CUDA-Nsight.pdf を参照してください

于 2012-09-20T18:38:54.713 に答える
3

編集 (心変わり): NVIDIA Parallel Nsight と Visual Profiler の両方を再評価した結果、パフォーマンス分析には NVIDIA Parallel Nsight の方がはるかに優れていることがわかりました。

理由は、@ Jeff Davis の回答でさらに説明されています。

于 2012-02-25T21:43:05.487 に答える
1

Parallel Nsight には、Visual Studio に直接組み込まれるという利点があり、Windows 開発者にとって自然なワークフローを備えています。

  • Parallel Nsight 2.2 では、ターゲットが「localhost」に設定されると、モニターが自動的に開始されます。これは、分析と CUDA プロファイリング、および CUDA デバッグの両方に当てはまります。

  • モニターの起動には短時間 (お気に入りの Web ブラウザーを起動するのにかかる時間とほぼ同じ) かかりますが、それは 1 回だけです。モニターが終了するか、マシンが再起動されるまで、モニターを再起動する必要はありません。

于 2012-05-10T22:09:01.563 に答える