全部产品
云市场

GPU 使用

更新时间:2020-01-20 13:29:05

首先说明下ECI GPU实例的设计初衷:无需要安装GPU驱动,ECI会预装GPU驱动;目前ECI GPU支持的驱动版本NVIDIA 410.79,按照NVIDIA官方给可支持到CUDA Toolkit版本是10.0。

使用时可以通过GPU对应的docker镜像直接跑在ECI上,也不需要安装tensorflow,cuda toolkit等软件,比如tensorflow/tensorflow:1.13.1-gpu, nvidia/cuda

使用方式

API

CreateContainerGroup

ECI API已经有介绍, 对于GPU的支持,需要在请求参数中增加一项

请求参数中增加:

名称 类型 是否必须 描述
InstanceType String 实例规格

Container中增加

名称 类型 是否必须 描述
Gpu Integer 容器级别gpu个数

其中InstanceType使用ECS 实例规格标识。在CreateContainerGroup创建ECI GPU实例的时候,InstanceType 是需要给定,如果这个参数未给定,但是指定了Container中的Gpu,则请求会返回错误;

ECI GPU实例是container级别的使用,所有container使用的Gpu个数加起来不能大于InstanceType中规定的个数,如果大于则CreateContainerGroup请求也会不成功

UpdateContainerGroup

与CreateContainerGroup相似,如果要更新container中gpu的数量的话,UpdateContainerGroup的API接口也需要在container中加入Gpu参数:

Container中增加

名称 类型 是否必须 描述
Gpu Integer 容器级别gpu个数
  • 其他接口比如RestartContainerGroupDeleteContainerGroup等都保持原有参数不变;

virtual kubelet使用说明

声明gpu-type

pod 声明中增加 annotations:virtual-kubelet.io/gpu-type

container 声明中增加 resources、limits、nvidia.com/gpu

virtual-kubelet.io/gpu-type 可选值为P4, V100, T4,P100

resources、limits、nvidia.com/gpu 的可选值为1、2、4、8

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: podname
  5. annotations:
  6. "virtual-kubelet.io/gpu-type" : "P4"
  7. spec:
  8. containers:
  9. resources:
  10. limits:
  11. "nvidia.com/gpu": "1"

声明ecs vm类型

这种方式为直接声明使用的ecs实例

pod声明中增加annotations:k8s.aliyun.com/eci-instance-type

这种声明的优先级会高于上一种方式

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: podname
  5. annotations:
  6. "k8s.aliyun.com/eci-instance-type" : "ecs.gn5i-c4g1.xlarge"