如需在Knative中部署需要GPU资源的任务(如AI或高性能计算),您可以在Knative Service中指定GPU规格并创建GPU实例。您还可以开启共享GPU调度能力,允许多个Pod共享GPU,提升使用率。
前提条件
已在集群中部署Knative,请参见部署Knative。
使用GPU
您可以通过在Knative Service中添加spec.template.metadata.annotations下的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虚拟化型实例规格族vgn6i-vws(NVIDIA T4),例如:ecs.vgn6i-m4-vws.xlarge、ecs.vgn6i-m8-vws.2xlarge。 
- 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时的常见问题及解决方案,请参见GPU FAQ。