Nvidia凭借容器与Kubernetes技术将AI用GPU推向开放


【编者的话】本文主要介绍了Nvidia GPU容器化方面的投入,并对Nvidia-Docker、Nvidia和Kubernetes、Nvidia GPU云进行了详细说明,从容器运行时到注册中心再到编排引擎,Nvidia让开发者可以便捷地使用GPU软件。

机器学习和人工智能的兴起,让Nvidia在该领域一度领先。随着GPU变得越来越重要,这家芯片制造商的业务正在全面铺开。学术机构、大型云提供商和企业都依赖Nvidia的GPU来运行ML(机器学习)和HPC(高性能计算)计算任务。

尽管GPU非常流行,需求也很大,但是端到端地安装、配置和集成Nvidia GPU的整个堆栈并不容易。而这一切都始于CUDA和cuDNN驱动程序的安装

CUDA在GPU编程中起着中介的作用,对于深度学习的任务集,开发者需要使用cuDNN工具集,该工具集由CUDA深度神经网络库抽象而成,它将神经网络的数学计算部分委托给GPU处理。CUDA的安装和配置的经验并不是那么靠谱,神经网络中任何一层的一个小版本差异都可能破坏配置。将深度学习框架的版本不兼容和依赖混合在一起,就会变得一团糟。

为了简化这个过程,Nvidia已经转向了容器,它对特定的GPU集成了一个Docker运行时。Nvidia-Docker向容器公开底层GPU基础设施。由于在容器运行时奠定了坚实的基础,Nvidia将其平台扩展到了Kubernetes。CUDA和cuDNN可以从Kubernetes pod访问,以在规模上进行训练和推断任务。最后,Nvidia还建立了自己的容器注册中心,其中包含了主流深度学习框架的官方镜像,开发者可以通过扩展这些容器镜像来构建自己的镜像。

让我们看看Nvidia都有哪些投入:

Nvidia Docker

我之前讨论过Nvidia-Docker的架构安装。如前所述,这是Nvidia在容器投入的基础方面。最近,Nvidia为了支持Docker的最新版本,已经更新了运行时。Nvidia-Docker运行时可以很容易地安装在任何装有GPU和Docker引擎的Linux机器上。
b0312fa9-nvidia1.png

一旦配置好,容器化的计算任务就可以访问底层的GPU。下面是访问Nvidia Quadro P4000 GPU的容器的屏幕截图。
ba274118-nivdia2.jpg

Nvidia和Kubernetes

在GPU上运行容器只是第一步,这种集成的真正价值是通过在Kubernetes上运行可弹性伸缩的ML计算任务实现的。

在最近的计算机视觉和模式识别(CVPR)会议上,Nvidia发布了新的软件,该软件基于Nvidia GPU的Kubernetes的候选版本。据该公司称,Nvidia GPU上的Kubernetes可以让开发者和DevOps工程师在多云GPU集群上大规模地构建和部署GPU加速的深度学习训练或推理的应用程序。它支持自动化地部署、维护、调度和操作GPU加速的应用程序容器。

Nvidia GPU上有两种不同的Kubernetes风格,一种用于云服务提供商,另一种用于服务器和个人工作站。
210ea098-nvidia3.png

我有机会在装有Ubuntu 16.04操作系统的机器上部署Kubernetes集群,它是由一个简陋的Nvidia GeForce GTX 1050Ti驱动的。最初的印象非常好,令人鼓舞。除去安装驱动程序和工具包所需的时间,我在不到10分钟的时间就有了一个可运行的单节点集群。

安装和配置Kubernetes集群的整个过程并没有什么不同。Nvidia已经修改了kubeadm、kubelet和kubectl二进制文件以支持GPU。显然,每个参与集群的节点都应该有一个GPU。我将在另一篇文章中分享我的经验和踩过的坑。

下面是Nvidia GPU上运行Kubernetes的屏幕截图。
00484654-nvidia4.jpg

Nvidia GPU云

当我第一次听说Nvidia GPU云时(6月12日宣布的),我还以为Nvidia正在通过发布自己的公有云来进军这一领域。但使用GPU云,Nvidia实际上是指一个用于管理和维护深度学习框架镜像的Docker镜像注册中心。

根据Nvidia的说法,GPU云是一个完整集成的和优化的、可以在Nvidia GPU上运行的深度学习软件容器中心。这些容器都是随时可运行的,包括所有必需的依赖项,如Nvidia CUDA工具包、Nvidia深度学习库和操作系统。
edef504a-nvidia5.jpg

镜像注册中心为Caffe、TensorFlow、CNTK和MXNet等流行的深度学习框架提供了最新的镜像。不论是开发者还是数据科学家都可以注册,同时获得一个API密钥用来拉取容器镜像。
07c1bef8-nvidia6.jpg

AWS、Azure和GCP等主要云平台都预先配置了深度学习镜像,可以作为GPU实例启动,实例只需要几分钟就可使用。一旦Nvidia-Docker安装在VM中,用户就可以从Nvidia GPU云中拉取适当的容器镜像。通过对基础的Nvidia镜像扩展,用户可以自定义镜像,自定义的镜像可以被推送到GPU云上。

从容器运行时到注册中心再到编排引擎,Nvidia正在做出正确的举措,这些举措最大的好处是,可以让开发者便捷地访问GPU软件。

原文链接:Nvidia Opens GPUs for AI Work with Containers, Kubernetes (翻译:刘志超)

0 个评论

要回复文章请先登录注册