Python 2.7 Tensorflow的CPU/GPU内存使用率

Python 2.7 Tensorflow的CPU/GPU内存使用率,python-2.7,tensorflow,multi-gpu,Python 2.7,Tensorflow,Multi Gpu,我想在服务器上运行一个同样使用Tensorflow的Python脚本。当我在没有会话配置的情况下运行它时,进程分配了所有GPU内存,阻止任何其他进程访问GPU 服务器规格如下所示: 中央处理器:2x12cores@2.5千兆赫 内存:256GB 磁盘:2x240GB SSD,6x4TB@7200RPM, GPU:2x Nvidia Titan X 这个服务器是由其他同事共享的,所以我不允许分配所有的GPU内存 config = tf.ConfigProto() config.gpu_opti

我想在服务器上运行一个同样使用Tensorflow的Python脚本。当我在没有会话配置的情况下运行它时,进程分配了所有GPU内存,阻止任何其他进程访问GPU

服务器规格如下所示:

  • 中央处理器:2x12cores@2.5千兆赫
  • 内存:256GB
  • 磁盘:2x240GB SSD,6x4TB@7200RPM,
  • GPU:2x Nvidia Titan X
这个服务器是由其他同事共享的,所以我不允许分配所有的GPU内存

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)
在Tensorflow的网站上,我找到了设置所用GPU内存阈值的说明

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)
关于这些,我有两个问题: 1.如果分配的GPU内存不够,进程会自动使用CPU吗,还是会崩溃? 2.如果进程希望使用GPU,但GPU已完全分配,会发生什么情况

多谢各位

  • 如果分配的GPU内存不足,TF将抛出内存不足错误并崩溃

  • TF在这种情况下也会崩溃


  • Tensorflow提供了一些选项,以替代其分配所有可用GPU内存的默认行为(这样做是为了避免内存碎片并更高效地运行)。这些选择包括:

    • config.gpu\u选项。允许\u增长
      -当配置为
      True
      时,将根据需要动态分配更多内存,但不会释放内存
    • config.gpu\u选项。每个进程\u gpu\u内存\u分数
      -当配置为0和1之间的双精度时,将仅静态分配可用内存的该分数,而不是所有内存

    有关更多详细信息,请参阅。

    使用cuda visible devices env var分配一个gpu,并让同事分配另一个gpu。Tensorflow不能很好地处理使用同一gpu的多个进程