在 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 是否可用于集群。

  1. 创建以下 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
    
  2. 检查 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 主机。

由于在 Windows 上支持 minikube 上 GPU 的唯一可能性是在服务器操作系统上,而用户通常不会在该操作系统上运行 minikube,因此我们没有投入时间尝试支持 Windows 上 minikube 的 GPU。