Docker容器中的CUDA版本是否可以与主机不同?

10

我想在另一台CUDA版本为9.0的机器上运行使用CUDA 8.0和TensorFlow-1.2编写的代码。因此,我使用Docker生成了一个容器,并使用以下命令来运行代码:

FROM nvidia/cuda:8.0-cudnn5-devel
当我在这个容器中运行代码时,出现以下错误:
CUDA driver version is insufficient for CUDA runtime version

那么,它是错的吗?如何解决这个问题?


1
这不是错误的,应该可以工作。如果您正在使用普通的Docker容器和运行时,则可能存在问题。使其正常工作的方法是使用nvidia容器运行时与您的Docker安装一起使用。有了它,我经常轻松地执行您在此尝试执行的操作。 - Robert Crovella
@RobertCrovella,谢谢。但实际上,结果有些问题。我在这个容器中检测到了60个对象,但实际结果应该是11个。在我的原始机器上,我得到了正确的结果,但在这个容器中得到了错误的数字。我不知道原因。 - Lily.chen
这听起来现在完全是另一个问题。 我正在回答关于“CUDA驱动程序版本不足以支持CUDA运行时版本”的问题。 - Robert Crovella
@RobertCrovella,感谢您关于“CUDA驱动程序版本不足以支持CUDA运行时版本”的问题。我已经解决了这个问题。同时,我知道错误的结果并不是由CUDA引起的。 - Lily.chen
2
@Lisa.chen,你能否分享一下你是如何解决这个问题的?我也遇到了同样的问题! - Rachit Tayal
1个回答

12
任何人看到这条信息,这里的问题是主机上的CUDA驱动程序库版本太旧,无法支持容器内部的CUDA运行时库。CUDA驱动程序是您在主机上安装的NVIDIA驱动程序的一部分。
CUDA驱动程序不具备向前兼容性,因此主机需要至少与您在容器中尝试使用的CUDA运行时版本一样新。为了获得最广泛的选项,您应该将主机上的NVIDIA驱动程序和CUDA驱动程序更新到最新的稳定版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接