問題タブ [nvvp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cuda - NVIDIA Visual Profiler はカーネルの同時実行を表示できますか?
タイミング情報を収集するために NVIDIA Visual Profiler がプログラムをシリアル化することを多くのフォーラムで読みました。
ただし、ビジュアル プロファイラーのコンテキスト タブでは、 「GPU 上のメモリ コピーとカーネルの間に時間の重複はありません」などのアドバイスが表示されます。または、メモリとカーネルの実行に重複がある場合は、重複の時間が表示されます。また、次のウェビナー (スライド 6 ) を見ると、オーバーラップするカーネルの出力トレースを見ることができます。
プロファイラーがカーネルの同時実行に関する情報を表示できるかどうかを知りたいです (つまり、3 つの異なるストリームを使用して 3 つのカーネルを並行して実行する場合、プロファイラーはこれが実際に GPU で発生しているかどうかを示すことができます)。もしそうなら、ビジュアルプロファイラーのどこでこの情報を入手できますか?
optimization - Cuda プロファイラーが奇妙なギャップを示していますか?
最適化を開始する前に、プロファイルの結果が何を意味するのかを理解しようとしています。私はCUDAとプロファイリング全般に非常に慣れていないため、結果に混乱しています。
具体的には、一見空いているように見える計算のチャンクの間に何が起こっているのかを知りたいです。CPU と GPU を上から下に見ていくと、コードの大部分で何も起こっていないように見えます。Thread1
これらは、と に何もない列のように見えますGeForce
。これは正常ですか?ここで何が起こっているのですか?
実行は、nvprof を使用して無負荷でマルチコア マシンで実行されました。-arch=sm_20 -m32 -g -G
GPU コードはCUDA 5 用にコンパイルされています。
c++ - Cuda ゼロコピーのパフォーマンス
ゼロコピーを利用した CUDA アプリケーションのパフォーマンスを分析した経験のある人はいますか (ここを参照: Default Pinned Memory Vs Zero-Copy Memory ) メモリ モデル?
ゼロコピー機能を使用するカーネルがあり、NVVP を使用すると、次のように表示されます。
平均的な問題サイズでカーネルを実行すると、0.7% の命令リプレイ オーバーヘッドが発生するため、大きな問題はありません。そして、この 0.7% はすべてグローバル メモリ リプレイ オーバーヘッドです。
問題のサイズを実際に大きくすると、95.7% の命令リプレイ オーバーヘッドが発生します。これはすべて、グローバル メモリのリプレイ オーバーヘッドによるものです。
ただし、通常の問題サイズのカーネル実行と非常に大きな問題サイズのカーネル実行の両方のグローバル ロード効率とグローバル ストア効率は同じです。この指標の組み合わせをどうするかはよくわかりません。
主に確信が持てないのは、NVVP のどの統計が、ゼロ コピー機能で何が起こっているかを確認するのに役立つかということです。どのタイプの統計を見ればよいかについてのアイデアはありますか?
python - C拡張を介してPythonパッケージに実装されているCUDAコードを(視覚的に)プロファイリングする方法は?
CUDA ビジュアル プロファイラー (nvvp) にはプロファイリング用の実行可能エントリが必要ですが、私の CUDA コードは C 拡張を介して Python パッケージに実装されています。このpythonパッケージでCUDAプロファイリングを行う方法はありますか? ありがとう!
cuda - nvvp と nsight のプロファイラーでは異なる結果が得られますか?
gst_inst_128bit 命令を試してみたい。同じプログラムで、nvvp は多くの gst_inst_128bit コマンドを実行します。nsight のプロファイラでは、4 回の gst_inst_32bit 命令が取得されます。それらは同じプログラムである必要があります。この状況はどのように発生する可能性がありますか?
実験は、Linux、CUDA 5.0、GTX 580 で試行されました。プログラムは、カーネル関数で 1 つの配列から別の配列にデータをコピーするだけです。
カーネル:
cuda - cudaプロファイリングでこのシリアル化動作を回避する方法はありますか?
CUDA ストリームが重複していない によると、「プロファイラーはストリーミングをシリアル化して、正確なタイミング データを取得します」。ここで問題は、cuda プロファイリング (nvvp など) でこのシリアル化動作を回避する方法はありますか? Fermin M2090 と cuda-4.0 を使用しています。
cuda - リモート X セッションでの CUDA Visual プロファイラー
GTX480を搭載したUbuntu 11.10サーバー、CUDA-5.0を実行しています。Windows 8 で Xming と Cygwin/X を使用してビジュアル プロファイラーをリモートで実行しようとしています。エラーや警告なしで黙って終了します。
xorg-server、xinit、およびopensshパッケージを使用して、Cygwin/Xのデフォルト構成をインストールしました。さらにパッケージが必要ですか?
グローバルなロード/ストア効率、リプレイ、DRAM 使用率が必要なため、コマンド ライン プロファイラーは使用したくありません。これらはビジュアル プロファイラーでより明確に表示されます。
誰もこれを試したことがありますか?助けていただければ幸いです。