【问题标题】:nvprof is using all available GPU's when profiling python script在分析 python 脚本时,nvprof 正在使用所有可用的 GPU
【发布时间】:2023-03-25 22:35:01
【问题描述】:

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

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

我可以给nvprof 提供任何参数以便仅使用一个 GPU 进行分析吗?

【问题讨论】:

  • 使用环境变量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 会将其限制为第二个 GPU,等等。环境变量记录在 herenvprof --help 表明它有一个 --devices 开关,它也可以将某些活动限制在某些 GPU 上。

标签: python cuda profiling nvprof


【解决方案1】:

CUDA environment variableCUDA_VISIBLE_DEVICES 可用于将 CUDA 运行时 API 限制为仅使用某些 GPU。你可以这样试试:

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

另外,nvprofdocumented 并且还通过 nvprof --help 获得命令行帮助。查看命令行帮助,我看到了一个--devices 开关,它似乎限制了至少某些功能只能使用特定的 GPU。你可以试试:

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

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 2014-02-23
    • 2020-07-06
    • 2012-06-20
    • 1970-01-01
    • 2019-04-12
    • 2022-12-11
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多