全部产品

创建GPU实例

本文介绍如何创建并使用ECI GPU实例。

背景信息

ECI支持指定ECS GPU规格来创建GPU实例。GPU对应的Docker镜像可以直接运行在ECI GPU实例上,无需安装Tensorflow、CUDA Toolkit等软件,如tensorflow-gpu 1.13.1、NVDIA CUDA等。

说明

当前ECI GPU支持的驱动版本为NVIDIA 440.64,可支持的CUDA Tookit版本为10.1。

支持指定的ECS GPU规格族如下:

  • GPU计算型实例规格族gn6v(NVIDIA V100),例如:ecs.gn6v-c8g1.2xlarge。

  • 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配备了本地盘,您可以挂载使用本地盘,更多信息,请参见创建本地盘实例

更多信息,请参见:

Kubernetes方式

您可以在Pod metadata中添加Annotation来指定GPU规格。指定GPU规格后,在Container的resources中需添加nvidia.com/gpu字段声明GPU资源。

注意

nvidia.com/gpu字段值为容器所需的GPU个数,创建GPU实例时必须明确指定。如果没有指定该值,Pod启动后将会报错。

示例如下:

apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: nginx-gpu-demo-1
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
      annotations:
        k8s.aliyun.com/eci-use-specs: ecs.gn5i-c4g1.xlarge  #指定支持的ECS GPU规格
    spec:
      containers:
      - name: nginx
        image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.15.10 # replace it with your exactly <image_name:tags>
        resources:
            limits:
              nvidia.com/gpu: '1'    #容器所需的GPU个数,必须指定该值,否则Pod启动后将会报错。
        ports:
        - containerPort: 80

OpenAPI方式

调用CreateContainerGroup接口创建ECI实例时,您可以通过InstanceType参数来指定GPU规格,Container.N.Gpu参数来指定容器使用的GPU个数。相关参数说明如下表所示。更多信息,请参见CreateContainerGroup

名称

类型

是否必选

示例值

描述

InstanceType

String

ecs.gn6v-c8g1.2xlarge

指定ECS GPU实例规格。目前支持的GPU规格族包括:gn6v、gn6i、gn5i、gn5。支持指定多个规格(单次最多5个),各规格之间用半角逗号(,)进行分隔。例如:ecs.gn6v-c8g1.2xlarge,ecs.gn6i-c4g1.xlarge。

Container.N.Gpu

Integer

1

指定容器使用的GPU个数。

注意

创建GPU实例时,必须同时指定InstanceType和Container.N.Gpu,并确保Container.N.Gpu的和(所有容器使用的GPU个数之和)没有超过指定GPU实例规格包含的GPU个数。

您也可以调用UpdateContainerGroup更新GPU实例中各容器使用的GPU个数。相关参数说明如下表所示。更多信息,请参见UpdateContainerGroup

名称

类型

是否必选

示例值

描述

Container.N.Gpu

Integer

1

指定容器使用的GPU个数。

InitContainer.N.Gpu

Integer

1

指定初始化容器使用的GPU个数。