如需在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配備了本地碟,您可以掛載使用本地碟,請參見建立本地碟執行個體。
當前ECI GPU支援的驅動版本為NVIDIA 460.73.01,可支援的CUDA Toolkit版本為11.2。
關於ECS GPU規格類型系列的更多資訊,請參見ECS執行個體規格可購買地區總覽和執行個體規格類型系列。
開啟共用GPU調度能力
參見運行共用GPU調度樣本為節點開啟共用GPU調度能力。
在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。