在TensorFlow中更改默认GPU
python
tensorflow
5
0

根据文档,默认GPU是ID最低的GPU:

如果系统中有多个GPU,则默认情况下将选择ID最低的GPU。

是否可以从命令行或一行代码更改此默认设置?

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

文档中所述 ,您可以使用tf.device('/gpu:id')指定默认设备以外的设备。

# This will use the second GPU on your system
with tf.device('/gpu:1'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')

c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)
收藏
评论

为了清楚CUDA_VISIBLE_DEVICES ,使用环境变量CUDA_VISIBLE_DEVICES

要仅在GPU 1上运行脚本my_script.py ,请在Linux终端中使用以下命令:

username@server:/scratch/coding/src$ CUDA_VISIBLE_DEVICES=1 python my_script.py 

更多示例说明了语法:

Environment Variable Syntax      Results
CUDA_VISIBLE_DEVICES=1           Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1         Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1"       Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3       Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES=""          No GPU will be visible

仅供参考:

收藏
评论

Suever的答案正确显示了如何将您的操作固定到特定的GPU。但是,如果您在同一台计算机上运行多个TensorFlow程序,建议您在启动进程之前设置CUDA_VISIBLE_DEVICES环境变量以公开不同的GPU。否则,TensorFlow将尝试在所有可用的GPU上分配几乎整个内存,这将阻止其他进程使用这些GPU(即使当前进程未使用它们)。

请注意,如果您使用CUDA_VISIBLE_DEVICES ,则设备名称"/gpu:0""/gpu:1"等将在当前进程中引用第0和第1个可见设备。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号