我只有一个GPU(Titan X Pascal,12 GB VRAM),我想在同一个GPU上并行训练多个模型.
我尝试在单个python程序(称为model.py)中封装我的模型,并在model.py中包含代码以限制VRAM使用(基于this example).我能够在我的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不要创建cudnn句柄:CUDNN_STATUS_INTERNAL_ERROR
2017-09-10 13:27:43.714973:E tensorflow / stream_executor / cuda / cuda_dnn.cc:338] coul
d不要破坏cudnn句柄:CUDNN_STATUS_BAD_ParaM
2017-09-10 13:27:43.714988:F tensorflow / core / kernels / conv_ops.cc:672]检查失败
:stream-> parent() – > GetConvolveAlgorithms(conv_parameters.ShouldIncludeWinogradNon
fusedAlgo< T>()&算法)
中止(核心倾倒)
我后来观察到on the tensorflow Github,人们似乎认为每个GPU运行多个tensorflow进程是不安全的.这是真的,并且有解释为什么会这样吗?为什么我能够在同一GPU上运行3个tensorflow进程而不是4个?
解决方法:
简而言之:是的,在同一GPU上运行多个过程是安全的(截至2017年5月).这样做以前是不安全的.
Link to tensorflow source code that confirms this
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。