【发布时间】:2021-07-22 22:27:03
【问题描述】:
以下代码激活 GPU 0 并加载必要的库,如 Cuda 等。
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
当不再需要 GPU 时,如何在运行脚本中关闭它?例如,因为训练模型的评估需要在 CPU 上运行。 我试图改变环境变量。
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
但是这段代码并没有在运行脚本中关闭 GPU。只能在计算初期使用。
非常感谢任何想法
提前致谢
【问题讨论】:
-
这通常不会像您已经发现的那样工作。这种方式的器件选择是粗略的。它依赖于 CUDA 运行时在初始化时采样 一次 的环境变量。此后,对 env var 的更改无效。但是 CUDA 有其他方法来选择要使用的设备,即程序化的。因此,如果你想在 TF 中切换 GPU,一个更好的方法是让你的 TF 脚本be aware of multi-gpu usage(
-
这,我的朋友,实际上是我正在寻找的东西!谢谢
-
我也尝试使用-1。然后 list_physical_devices('GPU') 显示 0 并且我的 GPU 内存没有使用,但是....我的 GPU 处理器仍在使用,我的工作运行速度提高了 3 倍(小型神经网络)。
标签: python tensorflow cuda gpu