在 minikube 中使用 AMD GPU
本教程展示了如何在 minikube 中启动对 AMD GPU 的支持。
支持由 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。