6.3. 使用 Dynamic Accelerator Slicer Operator 部署 GPU 工作负载
您可以部署请求 GPU 片段由 Dynamic Accelerator Slicer (DAS) Operator 管理的工作负载。Operator 动态分区 GPU 加速器,并将工作负载调度到可用的 GPU 分片。
先决条件
- 在集群中有 MIG 支持的 GPU 硬件。
-
安装 NVIDIA GPU Operator,
ClusterPolicy会显示 Ready 状态。 - 已安装 DAS Operator。
流程
运行以下命令来创建命名空间:
oc new-project cuda-workloads创建使用 NVIDIA MIG 资源请求 GPU 资源的部署:
apiVersion: apps/v1 kind: Deployment metadata: name: cuda-vectoradd spec: replicas: 2 selector: matchLabels: app: cuda-vectoradd template: metadata: labels: app: cuda-vectoradd spec: restartPolicy: Always containers: - name: cuda-vectoradd image: nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda12.5.0-ubi8 resources: limits: nvidia.com/mig-1g.5gb: "1" command: - sh - -c - | env && /cuda-samples/vectorAdd && sleep 3600运行以下命令来应用部署配置:
$ oc apply -f cuda-vectoradd-deployment.yaml运行以下命令验证部署是否已创建并调度 pod:
$ oc get deployment cuda-vectoradd输出示例
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m运行以下命令,检查 pod 的状态:
$ oc get pods -l app=cuda-vectoradd输出示例
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
验证
运行以下命令,检查是否为部署 pod 创建
AllocationClaim资源:$ oc get allocationclaims -n das-operator输出示例
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m运行以下命令,验证 GPU 片段是否已正确分配 pod 的资源分配:
$ oc describe pod -l app=cuda-vectoradd运行以下命令,检查日志以验证 CUDA 示例应用程序是否已成功运行:
$ oc logs -l app=cuda-vectoradd输出示例
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED运行以下命令,检查环境变量以验证 GPU 设备是否已正确公开给容器:
$ oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"输出示例
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652这些环境变量表示 GPU MIG 片段已被正确分配,并出现在容器内的 CUDA 运行时。