我有 2 台配备 4 个特斯拉 K40 GPU 的服务器。
我已经成功创建了一个 kubernetes 集群,安装了 kubeflow 1.0 以及其正常运行所需的一切。
我可以成功创建一个具有 4 个 GPU 的 Jupyter 笔记本服务器并在其上使用 keras 多 gpu 模型,并且一切正常。
我可以使用 8 个 gpu(4 个来自一台服务器,4 个来自另一台服务器)来创建 jupyter 笔记本服务器或运行任何 gpupod,还是只有一个 gpupod 可供我使用 4 个?
当我尝试使用 8 个 GPU 时,我得到了0/2 nodes are available: 2 Insufficient nvidia.com/gpu
答案1
我可以使用 8 个 gpu(4 个来自一台服务器,4 个来自另一台服务器)来创建 jupyter 笔记本服务器或运行任何 gpupod,还是只有一个 gpupod 可供我使用 4 个?
不可以,Kubernetes pod 一次只能使用一台机器(节点)的资源。
您可以了解更多这里。
作为一种解决方法,您可以在一个集群上运行 jupyter 服务器,但根据您正在使用的框架,通过一些最少的代码更改在来自多个集群的 GPU 上进行训练。
kubeflow 甚至为此提供了一些不错的 UI 支持。以下是一些可以了解更多信息的来源:
答案2
kubeflow jupyter notebook 是一个 pod,一个简单的训练作业就可以放大到您的 kubernetes 集群中一个 GPU 节点所拥有的空闲 GPU 的数量。
到向外扩展横向扩展训练并在训练作业中利用更多 GPU,您需要使用分布式训练框架。Kubeflow 提供工作为了这个目的。