本文介绍如何创建并使用ECI GPU实例。
背景信息
ECI支持指定ECS GPU规格来创建GPU实例。GPU对应的Docker镜像可以直接运行在ECI GPU实例上,无需安装Tensorflow、CUDA Toolkit等软件,如tensorflow-gpu 1.13.1、NVDIA CUDA等。
当前ECI GPU支持的驱动版本为NVIDIA 418.87,可支持的CUDA Tookit版本为10.0。
支持指定的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个数。 |