Skip to main content
 首页 » 编程设计

python之如何让多个用户同时使用同一个系统运行tensorflow程序

2025年01月19日26mq0036

我需要设置一个系统,要求多个用户在同一系统上运行他们的 tensorflow 程序。为了对此进行测试,我尝试运行同一程序的两个实例。第一个实例正在运行,但第二个实例给出了 CUDA_ERROR_OUT_OF_MEMORY 错误。

但我可以看到 GPU 没有得到充分利用。如何通过更好地分配内存来解决此问题? tensorflow 框架中是否有任何内置方式允许我以这样一种方式配置它,即它可以根据同时运行的程序数量动态分配 RAM 给实例/用户?或者,如果这不可能,是否有任何调度程序可以以序列化方式为用户安排作业?或者,有什么办法可以让GPU中未使用的空间暂时用作显存?

请您参考如下方法:

我不知道是否有任何方法可以动态分配内存,但您可以通过为 session 设置 gpu 选项来阻止 tensorflow 自动分配几乎所有 GPU 内存。

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=x) 

通常可以在不显着增加训练时间的情况下减少分配的 gpu 内存。

以这种方式修复内存后,您可以使用最常见的网格引擎来安排您的作业。 oracle 绝对有效。