在 minikube 中使用 AMD GPU
本教程展示了如何启动支持 AMD GPU 的 minikube。
支持由用于 Kubernetes 的 AMD GPU 设备插件提供。
先决条件
- Linux
- 最新的 AMD GPU 驱动程序 6.2.1 或更高版本
- minikube v1.35.0 或更高版本(仅限 docker 驱动程序)
使用 docker 驱动程序
-
确保您已安装 AMD 驱动程序,您可以通过运行
rocminfo
来检查是否已安装,如果未安装,请按照Radeon™ 驱动程序安装指南进行操作 -
删除现有的 minikube(可选)
如果您有现有的 minikube 实例,如果在安装 AMD 驱动程序之前构建的,您可能需要删除它。
minikube delete
-
启动 minikube
minikube start --driver docker --container-runtime docker --gpus amd
验证 GPU 是否可用
测试 AMD GPU 是否可用于集群。
-
创建以下 Job
cat <<'EOF' | kubectl apply -f - apiVersion: batch/v1 kind: Job metadata: name: amd-gpu-check labels: purpose: amd-gpu-check spec: ttlSecondsAfterFinished: 100 template: spec: restartPolicy: Never securityContext: supplementalGroups: - 44 - 110 containers: - name: amd-gpu-checker image: rocm/rocm-terminal workingDir: /root command: ["rocminfo"] args: [] resources: limits: amd.com/gpu: 1 # requesting a GPU EOF
-
检查 Job 输出
kubectl logs jobs/amd-gpu-check
看起来如下所示ROCk module version 6.8.5 is loaded ===================== HSA System Attributes ===================== Runtime Version: 1.14 Runtime Ext Version: 1.6 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count) Machine Model: LARGE System Endianness: LITTLE Mwaitx: DISABLED DMAbuf Support: YES ========== HSA Agents ========== ******* Agent 1 ******* Name: AMD Ryzen 7 7840U w/ Radeon 780M Graphics Uuid: CPU-XX ...
在哪里可以了解更多关于 GPU 直通的信息?
请参阅 https://wiki.archlinux.org.cn/index.php/PCI_passthrough_via_OVMF 中的优秀文档。
为什么 minikube 在 Windows 上不支持 AMD GPU?
minikube 通过 Hyper-V 或 VirtualBox 支持 Windows 主机。
-
VirtualBox 不支持 Windows 主机的 PCI 直通。
-
Hyper-V 支持 DDA(离散设备分配),但 仅适用于 Windows Server 2016
由于在 Windows 上支持 minikube 上 GPU 的唯一可能性是在服务器操作系统上,而用户通常不会在该操作系统上运行 minikube,因此我们没有投入时间尝试支持 Windows 上 minikube 的 GPU。