首先说明下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个数 其他接口比如RestartContainerGroup, DeleteContainerGroup等都保持原有参数不变; 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
apiVersion: v1 kind: Pod metadata: name: podname annotations: "virtual-kubelet.io/gpu-type" : "P4" spec: containers: resources: limits: "nvidia.com/gpu": "1" 声明ecs vm类型 这种方式为直接声明使用的ecs实例
pod声明中增加annotations:k8s.aliyun.com/eci-instance-type
这种声明的优先级会高于上一种方式
apiVersion: v1 kind: Pod metadata: name: podname annotations: "k8s.aliyun.com/eci-instance-type" : "ecs.gn5i-c4g1.xlarge"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。