2013-07-31 76 views
0

我正在使用docker启动独立的应用程序。我的应用程序将使用CUDA库进行GPGPU计算。我正在考虑在它上面安装cuda,但这会让它太庞大。我不确定CUDA显示驱动程序安装是否可以在Docker镜像上成功通过。与Docker容器共享CUDA库

更好的方法是在容器上共享机器上的CUDA库,有没有办法做到这一点?

谢谢, pradeep。

+0

你肯定泊坞窗提供的PCI-E的容器通过?没有它,您的容器化应用程序将无法与主机内核驱动程序或GPU进行交互。 – talonmies

+0

@talonmies:我也不确定,我也是码头工人。所以探索让CUDA在容器中运行的方式 – pradeep

回答

1

如果你可以安装你的驱动程序为您的主机上卷,那么你可能能够与它直接从容器内用docker run -v hostdir:containerdir:rw安装它说话(见run docs

如果你不”如果将设备安装在容器外部,那么我怀疑即使通过共享库直接与您的图形卡交谈,也无法使用标准Docker配置,因为Docker中默认的LXC配置不包括sys_rawio,这是出于安全性和便携性的原因。

请参阅lxc_template.go文件以查看默认情况下已丢弃的功能列表。

+0

谢谢Andy。我确实有装置,我只是不知道安装部件。 – pradeep

+0

好吧,我已经过去了大部分的错误。编译CUDA代码也很好。我生成了一个可执行文件,但是当我运行这个东西时,它会吐出一条消息,指出所选的NVIDIA驱动程序版本不正确。将发布确切的错误消息,我现在正在尝试其他的东西。 – pradeep

+0

docker run -v/usr/bin:/ usr/bin:ro -v/usr/lib:/ usr/lib:ro -v/dev/dev:ro ubuntu nvidia-smi NVIDIA:无法打开设备文件/ dev/nvidiactl:不允许操作 – pradeep

3

我将开始与只使用

docker run --privileged ubuntu -ti --rm bash 

的--privileged是一个大铁锤,而是让你有充分权力:)