GPU 管理和 Device Plugin 工作机制

46 阅读1分钟

k8s支持机器学习框架的挑战:

深度学习所依赖的异构设备及英伟达的 GPU 支持。

如何在容器环境下使用GPU应用:

(1)构建支持 GPU 的容器镜像;
(2)利用 Docker 将该镜像运行起来,并且把 GPU 设备和依赖库映射到容器中。

GPU容器镜像原理:

Nvidia 驱动需要内核源码编译,如上图右侧所示,英伟达的 GPU 容器方案是:在宿主机上安装 Nvidia 驱动,而在 CUDA 以上的软件交给容器镜像来做。同时把 Nvidia 驱动里面的链接以 Mount Bind 的方式映射到容器中。
这样的一个好处是:当你安装了一个新的 Nvidia 驱动之后,你就可以在同一个机器节点上运行不同版本的 CUDA 镜像了。

image.png 上图右侧反映了 GPU 容器启动后,容器中的 GPU 配置。右上方展示的是设备映射的结果,右下方显示的是驱动库以 Bind 方式映射到容器后,可以看到的变化。

k8s的GPU管理

image.png

查看运行结果 image.png