为什么要用k8s管理以GPU为代表的异构资源?
- 加速部署:通过容器构建避免重复部署机器学习复杂环境
- 提升集群资源使用率: 统一调度和分配集群资源
- 保障资源共享:利用容器隔离异构设备,避免互相影响
如何利用容器运行GPU程序
- 构建支持GPU容器镜像
- 利用docker run 将改镜像运行起来,并把GPU设备和依赖库映射到容器中
如何准备GPU容器镜像
- 直接到dockerhub使用官方深度学习容器镜像
简单 便捷 安全 可靠 如 TensorFlow - 基于Nvidia 的CUDA镜像基础构建
官方镜像无法满足需求时 需要定制修改
device plugin的工作机制
-
资源的上报和监控
image.png -
Pod的调度和运行
image.png
device plugin 机制的缺陷
- 设备调度发生在kubelet层面,缺乏全局调度视角
- 资源上报信息有限导致调度精度不足
- 调度策略简单,并且无法配置,无法应对复杂需求
https://www.bilibili.com/video/BV1BJ411i7Yo?from=search&seid=8227645815944614357
网友评论