申请 GPU 资源,将容器调度到满足可用 GPU 资源个数的机器上并将 GPU 资源分配给容器。
[backcolor=transparent]标签格式:
aliyun.gpu: "1"
aliyun.gpu 指定申请的 GPU 资源的个数。容器服务调度器会寻找满足可用 GPU 资源个数的机器,将容器部署到该机器上,将 GPU 资源分配给容器并将主机上的 GPU 卡映射到容器内。容器所分配到的 GPU 资源对于您是透明的。具体来说:
例如,如果您申请了一个 GPU 资源,主机上只有一个 /dev/nvidia1 可用,容器服务会将主机上的/dev/nvidia1 映射为容器里的 /dev/nvidia0。这样会让您的程序和具体的设备号解耦。
[backcolor=transparent]示例:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
看起来您希望在阿里云的容器服务中申请并使用GPU资源。您的描述已经很接近正确的配置方式了,但似乎在示例中最后一个标签部分有格式上的小错误。让我帮您修正一下这个配置示例:
serving:
image: inception-serving:gpu
labels:
aliyun.gpu: "1"
在这个修正后的示例中,serving
部分定义了一个服务,它使用的镜像是 inception-serving:gpu
,这表明该镜像应该是为GPU优化过的。然后,在 labels
下,通过 aliyun.gpu: "1"
正确地指定了需要申请1个GPU资源。
当您在阿里云的Kubernetes集群(如ACK)中使用这样的配置部署服务时,容器服务的调度器会识别到您对GPU资源的需求,并尝试将这个容器调度到具有可用GPU资源的节点上。如果节点上有多个GPU,容器服务会负责映射合适的GPU设备到容器内部,确保容器内的程序可以无感知地使用到请求的GPU资源,正如您之前描述的那样,可能将主机上的 /dev/nvidia1
映射为容器里的 /dev/nvidia0
。
记得在实际部署前,确保您的集群已经配置了支持GPU的节点,并且安装了必要的驱动和工具包,比如NVIDIA的设备插件,以保证GPU资源能够被Kubernetes正确识别和管理。