全部產品
Search
文件中心

Container Service for Kubernetes:在Knative中使用GPU資源並開啟共用GPU

更新時間:Nov 02, 2024

如需在Knative中部署AI任務、高效能運算等需要GPU資源的工作負載,您可以在Knative Service中指定GPU規格,建立GPU執行個體。您也可以為節點開啟共用GPU調度能力,允許多個Pod共用同一個GPU,提高GPU使用率。

前提條件

已在叢集中部署Knative,請參見部署Knative

使用GPU

您可以通過在Knative Service中添加spec.template.metadata.annotation下的k8s.aliyun.com/eci-use-specs欄位指定GPU規格,然後通過spec.containers.resources.limits下的nvidia.com/gpu欄位聲明GPU資源。

樣本如下。

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-use-specs: ecs.gn5i-c4g1.xlarge  # 指定支援的ECS GPU規格。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
          ports:
          - containerPort: 8080
          resources:
            limits:
              nvidia.com/gpu: '1'    # 容器所需的GPU個數,必須指定該值,否則Pod啟動後將會報錯。

支援指定的ECS GPU規格類型系列如下:

  • GPU計算型執行個體規格類型系列gn7i(NVIDIA A10),例如ecs.gn7i-c8g1.2xlarge。

  • GPU計算型執行個體規格類型系列gn7,例如ecs.gn7-c12g1.3xlarge。

  • GPU計算型執行個體規格類型系列gn6v(NVIDIA V100),例如ecs.gn6v-c8g1.2xlarge。

  • GPU計算型執行個體規格類型系列gn6e(NVIDIA V100),例如ecs.gn6e-c12g1.3xlarge。

  • GPU計算型執行個體規格類型系列gn6i(NVIDIA T4),例如ecs.gn6i-c4g1.xlarge。

  • GPU計算型執行個體規格類型系列gn5i(NVIDIA P4),例如ecs.gn5i-c2g1.large。

  • GPU計算型執行個體規格類型系列gn5(NVIDIA P100),例如ecs.gn5-c4g1.xlarge。

    gn5配備了本地碟,您可以掛載使用本地碟,請參見建立本地碟執行個體

說明

開啟共用GPU調度能力

  1. 參見運行共用GPU調度樣本為節點開啟共用GPU調度能力。

  2. 在Knative Service中通過aliyun.com/gpu-mem欄位配置GPU顯存大小。樣本如下。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      namespace: default
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: "100"
            autoscaling.knative.dev/minScale: "0"
        spec:
          containerConcurrency: 1
          containers:
          - image: registry-vpc.cn-hangzhou.aliyuncs.com/hz-suoxing-test/test:helloworld-go
            name: user-container
            ports:
            - containerPort: 6666
              name: http1
              protocol: TCP
            resources:
              limits:
                aliyun.com/gpu-mem: "3" # 設定GPU顯存大小

相關文檔

  • 在Knative中部署AI模型推理任務時,您可以配置自動擴縮容、靈活分配GPU資源等功能,提高AI推理服務能力和GPU資源使用率,請參見在Knative中部署AI模型推理服務的最佳實務

  • 關於使用GPU的過程中可能遇到的FAQ及對應解決方案,請參見GPU FAQ