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。

流程

  1. 运行以下命令来创建命名空间:

    oc new-project cuda-workloads
  2. 创建使用 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
  3. 运行以下命令来应用部署配置:

    $ oc apply -f cuda-vectoradd-deployment.yaml
  4. 运行以下命令验证部署是否已创建并调度 pod:

    $ oc get deployment cuda-vectoradd

    输出示例

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    cuda-vectoradd   2/2     2            2           2m

  5. 运行以下命令,检查 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

验证

  1. 运行以下命令,检查是否为部署 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

  2. 运行以下命令,验证 GPU 片段是否已正确分配 pod 的资源分配:

    $ oc describe pod -l app=cuda-vectoradd
  3. 运行以下命令,检查日志以验证 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

  4. 运行以下命令,检查环境变量以验证 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 运行时。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部