2017-04-06 7 views
0

CUDAコードを持つPythonスクリプトを実行するために、2つのGPUを持つリモートマシンを使用しています。コードのパフォーマンスを改善できる場所を見つけるために、nvprofを使用しようとしています。nvprofは、Pythonスクリプトをプロファイリングするときに使用可能なすべてのGPUを使用しています

nvprof --profile-child-processes ./myscript.pyを呼び出すと、GPUのそれぞれで同じIDのプロセスが開始されますが、リモートマシンで2つのGPUのうちの1つだけを使用したいというコードを設定しました。

nvprofには、プロファイリングに1つのGPUのみを使用するための引数がありますか?

+3

環境変数 'CUDA_VISIBLE_DEVICES =" 0 "'を使って 'nvprof'アクセスを制限することができます。たとえば、 'CUDA_VISIBLE_DEVICES =" 0 "nvprof --profile-child-processes。/ myscript.py'は、nvprofを最初のGPUに制限し、' CUDA_VISIBLE_DEVICES = "1" nvprof --profile-child-processes ./myscript.py 'は2番目のGPUなどに制限します。env varは、[here](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars)に記載されています。 'nvprof --help'は、ある種の活動を特定のGPUに制限する' --devices'スイッチを持っていることを示しています。 –

答えて

0

CUDA environment variableCUDA_VISIBLE_DEVICESは、特定のGPUのみを使用するようにCUDAランタイムAPIを制限するために使用できます。

CUDA_VISIBLE_DEVICES="0" nvprof --profile-child-processes ./myscript.py 

また、nvprofdocumentedであり、またnvprof --helpを経由して、コマンドラインのヘルプを持って:あなたはこのようにそれを試すことができます。コマンドラインのヘルプを見ると、--devicesスイッチがあり、特定のGPUだけを使用するように少なくとも一部の機能を制限しているようです。

nvprof --devices 0 --profile-child-processes ./myscript.py 
関連する問題