本文介绍如何创建并使用ECI GPU实例。
背景信息
ECI GPU实例内置了显卡设备及CUDA驱动,因此使用ECI GPU实例时,只需使用内置了CUDA Toolkit等运行时的基础镜像即可,无需关心驱动安装。
当前ECI GPU支持的驱动版本为NVIDIA 460.73.01,可支持的CUDA Tookit版本为11.2。
ECI支持指定ECS GPU规格来创建GPU实例,支持指定的ECS GPU规格族如下:
GPU计算型实例规格族gn7i(NVIDIA A10),例如:ecs.gn7i-c8g1.2xlarge。
GPU计算型实例规格族gn7(NVIDIA A100),例如: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配备了本地盘,您可以挂载使用本地盘,更多信息,请参见创建本地盘实例。
更多信息,请参见:
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和InitContainer.N.Gpu参数来指定容器使用的GPU个数。相关参数说明如下表所示。更多信息,请参见CreateContainerGroup。
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
InstanceType | String | ecs.gn6v-c8g1.2xlarge | 指定ECS GPU实例规格。目前支持的GPU规格族包括:gn6v、gn6i、gn5i、gn5、 gn7、gn7i。支持指定多个规格(单次最多5个),各规格之间用半角逗号(,)进行分隔。例如:ecs.gn6v-c8g1.2xlarge,ecs.gn6i-c4g1.xlarge。 |
Container.N.Gpu | Integer | 1 | 指定容器使用的GPU个数。 |
InitContainer.N.Gpu | Integer | 1 | 指定初始化容器使用的GPU个数。 |
创建GPU实例时,必须同时指定InstanceType和Container.N.Gpu,并确保所有容器使用的GPU个数之和没有超过指定GPU实例规格包含的GPU个数。
您也可以调用UpdateContainerGroup更新GPU实例中各容器使用的GPU个数。更多信息,请参见UpdateContainerGroup。