【发布时间】:2017-10-15 15:13:27
【问题描述】:
我想在服务器上运行一个也使用 Tensorflow 的 Python 脚本。当我在没有会话配置的情况下运行它时,该进程分配了所有 GPU 内存,阻止任何其他进程访问 GPU。
服务器规格如下:
- CPU:2x 12cores@2.5 GHz,
- 内存:256GB,
- 磁盘:2x 240GB SSD,6x 4TB@7200RPM,
- GPU:2x Nvidia Titan X。
这台服务器是由其他同事共享的,所以我实际上不能分配所有的 GPU 内存。
在 Tensorflow 的网站上,我找到了这些指令来设置已用 GPU 内存的阈值。
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)
我有两个关于这些的问题: 1.如果分配的GPU内存不够,进程会自动使用CPU,还是会crash? 2.如果一个进程想要使用GPU,但GPU已经被完全分配了怎么办?
谢谢。
【问题讨论】:
-
使用 cuda 可见设备 env var 分配一个 gpu,让同事分配另一个。 Tensorflow 不能很好地处理使用相同 gpu 的多个进程
标签: python-2.7 tensorflow multi-gpu