nvidia docker使用,docker调用gpu
这位供应商写的一篇文章被网络媒体编辑删除了产品宣传,但读者要注意,它可能倾向于提交者的做法。
这是一个难题:你有深度学习软件,从GPU加速中受益匪浅。你被包裹在码头工人的集装箱里,准备穿越成千上万的节点。但是等等——因为它们,容器Docker容器中的应用程序无法访问GPU。
好吧,现在他们可以了。Nvidia公司,用于开发GPU加速编程的CUDA标准,是一个发布对接生态系统,让GPU加速计算成为可能的插件。有了这个插件,可以控制Docker窗口容器中运行的应用通过Docker自带的插件系统访问GPU底层硬件。
我把它放在右边。
正如NVIDIA在其博客中指出的那样,开发人员试图解决这一问题的早期方法是在容器中安装Nvidia的GPU驱动程序,并将它们映射到外部驱动程序。聪明,因为这是解决方案,因为里面的驱动程序和外面的驱动程序必须是完全相同的版本并且它不好用。“这一要求大大降低了这些早期容器的便携性,破坏了Docker更重要的功能之一,”英伟达说。
英伟达的新方法——英伟达技术的一个名为Docker的开源停靠窗口插件——提供了一组与容器内容无关的驱动程序CUDA映像,当容器是命令行包时,它与CUDA的用户模式组件一起引入。使用这个GPU的图像停靠窗口必须是为Nvidia的CUDA Toolkit搭建的,但是Nvidia最好提供那些Docker容器。Nvidia公司甚至提供了自动备件的Ansible功能。
默认情况下,支持CUDA的容器使用所有可用的GPU,但NVIDIA- Docking Window提供了一些方法来限制应用程序仅使用特定的图形处理器。如果您已经建立了一个具有GPU阵列的系统,并希望分配特定的处理器来完成特定的工作,这将非常方便。它还在GPU访问开始成为云中托管容器的标准功能时,为云服务提供商提供自动节流,为容器GPU的数量提供了一种自产的方式。
CUDA及其不满
机器学习项目的一小部分已经开始为应用提供配备了NVIDIA CUDA支持的Dockerfiles advance插件1.0版本。这些包中有许多是机器学习的熟悉用户:谷歌的TensorFlow,微软的CNTK,以及Caffe和Theano的长期行业标准项目。
NVIDIA- Docking Window最大的缺点是CUDA是一个专有标准,而大多数GPU都是用CUDA来加速计算的。英伟达的长期竞争对手AMD提出并推动了自己的GPUOpen标准。它的目的不仅是做一个基于GPU计算的开源方法,而且是写一个只需要重新编译两个CPU就可以执行和GPU一样的软件的源码。