nvproof 在分析 Python 脚本时使用所有可用的 GPU



我正在使用一台具有 2 个 GPU 的远程机器来执行具有 CUDA 代码的 Python 脚本。为了找到可以提高代码性能的地方,我正在尝试使用 nvprof .

我已经在我的代码上设置了我只想在远程机器上使用 2 个 GPU 中的一个,尽管在调用 nvprof --profile-child-processes ./myscript.py 时,每个 GPU 上都会启动一个具有相同 ID 的进程。

为了只使用一个GPU进行分析,我可以nvprof给出任何论据吗?

正如您所指出的,您可以使用 CUDA 分析器来分析 python 代码,只需让分析器运行 python 解释器,运行您的脚本:

nvprof python ./myscript.py

关于正在使用的 GPU,CUDA 环境变量 CUDA_VISIBLE_DEVICES 可用于限制 CUDA 运行时 API 仅使用某些 GPU。 你可以这样尝试:

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

此外,nvprof已记录在案,并且还通过 nvprof --help 提供命令行帮助。 查看命令行帮助,我看到一个--devices开关,它似乎至少将某些功能限制为仅使用特定的 GPU。 您可以尝试:

nvprof --devices 0 --profile-child-processes python ./myscript.py

对于较新的 GPU,nvprof可能不是最佳探查器选择。 您应该能够以类似的方式使用 nsight 系统,例如:

nsys profile --stats=true python ....

此处链接了其他"较新"探查器资源。

相关内容

  • 没有找到相关文章

最新更新