nvprof 在分析 python 脚本时使用了所有可用的 GPU
nvprof is using all available GPU's when profiling python script
我正在使用具有 2 个 GPU 的远程计算机来执行具有 CUDA 代码的 Python 脚本。为了找到可以提高代码性能的地方,我尝试使用 nvprof
。
我在我的代码中设置了我只想使用远程机器上的 2 个 GPU 之一,尽管在调用 nvprof --profile-child-processes ./myscript.py
时,每个 GPU 上都会启动一个具有相同 ID 的进程.
为了只使用一个 GPU 进行性能分析,我可以提供任何参数吗?nvprof
CUDA environment variable CUDA_VISIBLE_DEVICES
可用于限制 CUDA 运行时 API 仅使用某些 GPU。你可以这样试试:
CUDA_VISIBLE_DEVICES="0" nvprof --profile-child-processes ./myscript.py
此外,nvprof
是 documented 并且还通过 nvprof --help
提供命令行帮助。查看命令行帮助,我看到一个 --devices
开关,它似乎限制了至少一些函数只使用特定的 GPU。你可以试试:
nvprof --devices 0 --profile-child-processes ./myscript.py
我正在使用具有 2 个 GPU 的远程计算机来执行具有 CUDA 代码的 Python 脚本。为了找到可以提高代码性能的地方,我尝试使用 nvprof
。
我在我的代码中设置了我只想使用远程机器上的 2 个 GPU 之一,尽管在调用 nvprof --profile-child-processes ./myscript.py
时,每个 GPU 上都会启动一个具有相同 ID 的进程.
为了只使用一个 GPU 进行性能分析,我可以提供任何参数吗?nvprof
CUDA environment variable CUDA_VISIBLE_DEVICES
可用于限制 CUDA 运行时 API 仅使用某些 GPU。你可以这样试试:
CUDA_VISIBLE_DEVICES="0" nvprof --profile-child-processes ./myscript.py
此外,nvprof
是 documented 并且还通过 nvprof --help
提供命令行帮助。查看命令行帮助,我看到一个 --devices
开关,它似乎限制了至少一些函数只使用特定的 GPU。你可以试试:
nvprof --devices 0 --profile-child-processes ./myscript.py