在同一GPU上运行多个tensorflow进程是不安全的吗?

Ada*_*amo 7 python gpu nvidia tensorflow

我只有一个GPU(Titan X Pascal,12 GB VRAM),我想在同一个GPU上并行训练多个模型.

我尝试在单个python程序(称为model.py)中封装我的模型,并在model.py中包含代码以限制VRAM使用(基于此示例).我能够在我的GPU上同时运行3个model.py实例(每个实例占我的VRAM的不到33%).神奇的是,当我尝试使用4个模型时,我收到了一个错误:

2017-09-10 13:27:43.714908: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] coul d not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 2017-09-10 13:27:43.714973: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] coul d not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM 2017-09-10 13:27:43.714988: F tensorflow/core/kernels/conv_ops.cc:672] Check failed : stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNon fusedAlgo<T>(), &algorithms) Aborted (core dumped)

后来我在tensorflow Github上观察到人们似乎认为每个GPU运行多个tensorflow进程是不安全的.这是真的,并且有解释为什么会这样吗?为什么我能够在同一GPU上运行3个tensorflow进程而不是4个?

Ada*_*amo 6

简而言之:是的,在同一个 GPU 上运行多个进程是安全的(截至 2017 年 5 月)。以前这样做是不安全的。

链接到确认这一点的张量流源代码