Last Updated on 2024-10-14 by likun.gong
GPU 作为目前图形处理和 AI 任务必须的资源,这里简单记录一下在 K8S 中的程序,它们是如何使用 GPU 的。
这里以 AWS EKS 进行相关记录
- 确保使用的机器是有 GPU 硬件,例如 AWS 的 g4dn,g6 等机型就是带有 GPU 硬件的
- 在 EKS 中添加 GPU Node Group,注意使用的 AMI (操作系统镜像)需要带有 GPU 驱动和 cuda,选择 Amazon Linux 2023 Nvidia 的镜像
- 安装 k8s-device-plugin 组件,它会以 daemonset 的方式运行在节点上,如果我们的 GPU 节点配置了对应的污点,安装时需要修改对应的容忍机制
- 安装完 k8s-device-plugin 之后,我们通过
kubectl describe node
,可以在 Capacity 中可以看到可用的 GPU 数量。当我们登录 GPU 节点,执行nvidia-smi
,也可以看到 GPU 的相关信息 - 使用 GPU 感知的镜像来启动 Pod,例如
nvidia/cuda:11.0-base
,它们内部已经包含了使用 GPU 需要的库、驱动程序、工具,使得容器内的应用程序能够有效地利用GPU资源进行计算
在 deployment 中,我们需要在 requests 中标明需要的 GPU
至此,我们就可以在 k8s 的容器中调用节点的 GPU 资源了。
发表回复