阿里云容器服务共享GPU调度支持算力分配

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: ACK Pro集群支持为应用申请GPU显存和算力,能够帮助您更精细化的使用GPU的显存和算力资源。本文介绍如何使用算力分配功能。前提条件已创建ACK Pro版集群,且集群版本为1.20.11。关于Kubernetes的升级操作,请参见升级ACK集群K8s版本。已安装共享GPU组件,且Chart版本>1.2.0。关于安装共享GPU组件的具体操作,请参见安装并使用共享GPU组件和资源工具。cGP

ACK Pro集群支持为应用申请GPU显存和算力,能够帮助您更精细化的使用GPU的显存和算力资源。本文介绍如何使用算力分配功能。

前提条件

  • 已创建ACK Pro版集群,且集群版本为1.20.11。关于Kubernetes的升级操作,请参见 升级ACK集群K8s版本
  • 已安装共享GPU组件,且Chart版本>1.2.0。关于安装共享GPU组件的具体操作,请参见 安装并使用共享GPU组件和资源工具
  • cGPU版本≥1.0.6。关于cGPU的升级操作,请参见 升级节点cGPU版本
  • 目前cgpu不兼容5xx系列的GPU驱动(以5开头的驱动,例如: 510.47.03 )。

使用限制

  • cGPU服务的隔离功能不支持以UVM的方式申请显存,即调用CUDA API cudaMallocManaged(),有关该方式的更多信息,请参见NVIDIA官方文档。请使用其他方式申请显存,例如调用cudaMalloc()等。
  • 共享GPU调度目前支持 仅申请显存 同时申请显存和算力 两种任务,这两种任务不能同时存在于一个节点上,即一个节点只运行 仅申请显存 的任务,或者只运行 同时申请显存和算力 的任务。
  • 为任务申请算力时,有如下限制:
  • 每一张GPU提供的算力按100计量,代表这张卡的100%算力,例如申请20代表使用GPU卡的20%算力。
  • 申请的算力值应为5的倍数,最小为5。如果不为5的倍数,任务将一直处于Pending。
  • 目前只有以下地域支持GPU显存算力分配功能。如果您需要使用该功能,请确保集群所在地域在此范围内。

地域

地域ID

华北2(北京)

cn-beijing

华东2(上海)

cn-shanghai

华东1(杭州)

cn-hangzhou

华北(张家口)

cn-zhangjiakou

华南1(深圳)

cn-shenzhen

西南1(成都)

cn-chengdu

华南2(河源)

cn-heyuan

中国(香港)

cn-hongkong

印度尼西亚(雅加达)

ap-southeast-5

新加坡

ap-southeast-1

美国(弗吉尼亚)

us-east-1

美国(硅谷)

us-west-1

日本(东京)

ap-northeast-1

  • 共享GPU调度支持算力分配的调度器于2022年3月1日上线,在此之后创建的集群将使用新版本调度器,但是在此之前已有集群的调度器不会自动升级到新版本,需要您手动进行操作。若您的集群创建时间早于2022年3月1日,请按照如下操作进行处理:
  1. 提交工单 申请新版共享GPU调度内测。
  2. 卸载旧版共享GPU组件。如果已安装旧版共享GPU组件(仅支持显存共享,Chart版本≤1.2.0),请按照以下步骤进行处理。
    1. 在控制台左侧导航栏中,单击 集群
    2. 集群列表 页面中,单击目标集群名称或者目标集群右侧 操作 列下的 详情
    3. 在集群管理页左侧导航栏中,选择 应用 > Helm
    4. Helm 页面,单击ack-ai-installer右侧 操作 列下方的 删除
    5. 在弹出的 删除应用 对话框,单击 确定
  1. 安装新版共享GPU组件。具体操作,请参见 安装并使用共享GPU组件和资源工具

创建支持算力分配的节点池

  1. 在控制台左侧导航栏中,单击 集群
  2. 集群列表 页面中,单击目标集群名称或者目标集群右侧 操作 列下的 详情
  3. 在集群管理页左侧导航栏中,选择 节点管理 > 节点池
  4. 节点池 页面右侧,单击 创建节点池 。部分参数配置说明如下,关于配置项的详细说明,请参见 节点池配置

注意 如果您需要将集群中已存在的GPU节点切换为算力隔离模式,请先将该节点从集群中移除,然后重新加入支持算力隔离的节点池。不支持直接使用kubectl label nodes <NODE_NAME> ack.node.gpu.schedule=core_mem命令将该GPU节点切换为算力隔离模式。

配置项

说明

节点池名称

设置节点池名称。本文配置为gpu-core

期望节点数

设置节点池初始节点数量。若您不需要创建节点,请填写为0

操作系统

操作系统仅支持CentOS 7.x和Alibaba Cloud Linux 2.x。

ECS标签

为ECS实例添加标签。

自定义资源组

指定节点池所扩容节点的资源组信息。

节点标签

为集群节点添加标签。本文配置如下,关于节点标签的更多信息,请参见ACK调度GPU使用的节点标签说明

  • 开启节点GPU显存和算力隔离能力:单击 ,输入第一个节点标签的 ack.node.gpu.schedule core_mem
  • 在节点上使用Binpack算法为Pod选择GPU卡:单击 ,输入第二个节点标签的 ack.node.gpu.placement binpack

使用算力分配

支持算力分配的节点池创建完成后,在该节点池扩容1个节点。同时,为了做对比,在集群中准备一个支持申请独占GPU资源的节点,两个节点上的GPU卡型号一致(本示例中两个节点的卡型号均为Tesla-V100-SXM2-32GB)。集群节点如下:

# kubectl get nodes
NAME                        STATUS   ROLES    AGE    VERSION
cn-beijing.192.168.10.163   Ready    <none>   150m   v1.20.11-aliyun.1
cn-beijing.192.168.10.164   Ready    <none>   150m   v1.20.11-aliyun.1

其中:

  • cn-beijing.192.168.10.163:未开启共享GPU调度的节点,支持按卡的维度申请GPU资源,该节点用来做对照。使用“kubectl get nodes cn-beijing.192.168.10.163 -o yaml”可以查看其拥有的GPU资源:
status:
  ...... // 省略其他内容
  allocatable:
    ......  // 省略其他内容
    nvidia.com/gpu: "1" 节点拥有1张GPU卡
    ......
  • cn-beijing.192.168.10.164:开启共享GPU调度的节点,且支持显存和算力申请,使用“kubectl get nodes cn-beijing.192.168.10.164 -o yaml”可以查看其拥有的GPU资源:
...... // 省略其他
status:
......
  allocatable:
    aliyun.com/gpu-core.percentage: "100" # 节点拥有的总的算力份数为100份
    aliyun.com/gpu-mem: "31" # 节点拥有的总的显存为31GiB

为了验证算力分配的有效性,本次示例将在两个节点上运行同一个GPU应用,观察它们的GPU利用率是否有差别。本次示例选择的GPU应用为tensorflow benchmark项目。

两个任务的相关信息如下:

任务名称

运行的节点

GPU资源申请

tensorflow-benchmark-exclusive

cn-beijing.192.168.10.163

1张GPU卡

tensorflow-benchmark-share

cn-beijing.192.168.10.164

10GiB显存和1张卡的30%算力

tensorflow-benchmark-exclusive的yaml如下:

apiVersion: batch/v1
kind: Job
metadata:
  name: tensorflow-benchmark-exclusive
spec:
  parallelism: 1
  template:
    metadata:
      labels:
        app: tensorflow-benchmark
    spec:
      containers:
      - name: tensorflow-benchmark
        image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3
        command:
        - bash
        - run.sh
        - --num_batches=50000
        - --batch_size=8
        resources:
          limits:
            nvidia.com/gpu: 1 # 申请1张GPU卡
        workingDir: /root
      restartPolicy: Never

tensorflow-benchmark-share的yaml如下:

apiVersion: batch/v1
kind: Job
metadata:
  name: tensorflow-benchmark-share
spec:
  parallelism: 1
  template:
    metadata:
      labels:
        app: tensorflow-benchmark
    spec:
      containers:
      - name: tensorflow-benchmark
        image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3
        command:
        - bash
        - run.sh
        - --num_batches=50000
        - --batch_size=8
        resources:
          limits:
            aliyun.com/gpu-mem: 10  # 申请10GiB显存
            aliyun.com/gpu-core.percentage: 30 # 申请整张卡30%算力 
        workingDir: /root
      restartPolicy: Never

两个Job除了申请的GPU资源不一样,其他完全一样(包括启动参数,使用的镜像等)。

使用kubectl apply -f <YAML>创建两个Job,然后查看两个Job的pod运行状态。

# kubectl get po
NAME                                   READY   STATUS    RESTARTS   AGE
tensorflow-benchmark-exclusive-9plm8   1/1     Running   0          4m
tensorflow-benchmark-share-w5xt8       1/1     Running   0          4m

当两个pod处于Running以后,分别进入两个pod查看它们的GPU利用率。

进入tensorflow-benchmark-exclusive-9plm8的pod,查看其利用率,执行如下命令:

 # kubectl exec -ti tensorflow-benchmark-exclusive-9plm8 -- nvidia-smi

命令输出为:

可以看到,GPU利用率为91%,pod可用显存为32510MiB(使用的是整张卡)。

进入tensorflow-benchmark-share-w5xt8的pod,查看其利用率,执行如下命令:

 # kubectl exec -ti tensorflow-benchmark-share-w5xt8 -- nvidia-smi

命令输出为:

可以看到,该pod总共可用的显存为10487MiB(10GiB左右显存),GPU利用率为28%(在30%处上下浮动)。

对比这两个任务,有如下的结论:

  • 当算力未被限制时(申请整张卡),任务的GPU利用率能够达到90%左右。
  • 当显存和算力被限制时(申请10GiB显存和30%算力),任务最大可使用的显存为10GiB,GPU利用率被限制30%左右。

可以看到算力限制是生效的。

监控

从容器服务GPU监控大盘中可以查看任务分配的算力,从下图中可以看到tensorflow-benchmark-share-w5xt8申请了30%算力:

也可以查看该任务所在节点已分配的算力,从下图中可以看到节点的0号卡已分配30%算力:

还可以查看该节点上已分配的显存比例,从下图中可以看到该节点的0号卡已分配32.3%的显存:

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
15天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
15天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
15天前
|
人工智能 运维 Kubernetes
拥抱智算时代:阿里云容器服务智能、托管、弹性新体验
本文总结了2024云栖大会容器计算专场的演讲内容,重点介绍了阿里云容器服务的新产品体验,包括智能、托管、弹性的特点,以及如何助力客户拥抱智算时代。文中还分享了多项实际案例和技术细节,展示了阿里云容器服务在提升用户体验和解决实际问题方面的努力。
|
1月前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
2天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
4月前
|
机器学习/深度学习 编解码 人工智能
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
随着人工智能、大数据和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况,目前计算型gn6v实例云服务器一周价格为2138.27元/1周起,月付价格为3830.00元/1个月起;计算型gn7i实例云服务器一周价格为1793.30元/1周起,月付价格为3213.99元/1个月起;计算型 gn6i实例云服务器一周价格为942.11元/1周起,月付价格为1694.00元/1个月起。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,以供参考。
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
|
1月前
|
弹性计算 固态存储 Linux
阿里云服务器、轻量应用服务器、gpu云服务器收费标准与实时活动价格参考
云服务器ECS、轻量应用服务器和gpu云服务器是阿里云的主要云服务器产品,目前轻量应用服务器2核2G收费标准为60元/月,活动价格只要36元/1年或68元1年,云服务器1核1G包月收费标准最低为24.0元/月,GPU云服务器中gn6i实例4核15G配置月付1681.00/1个月起,gn6v实例8核32G配置月付3817.00/1个月起。本文为大家整理汇总了阿里云服务器、轻量应用服务器、gpu云服务器的最新收费标准与活动价格情况,以表格形式展示给大家,以供参考。
|
7天前
|
机器学习/深度学习 人工智能 编解码
阿里云GPU云服务器优惠收费标准,GPU服务器优缺点与适用场景详解
随着人工智能、大数据分析和高性能计算的发展,对计算资源的需求不断增加。GPU凭借强大的并行计算能力和高效的浮点运算性能,逐渐成为处理复杂计算任务的首选工具。阿里云提供了从入门级到旗舰级的多种GPU服务器,涵盖GN5、GN6、GN7、GN8和GN9系列,分别适用于图形渲染、视频编码、深度学习推理、训练和高性能计算等场景。本文详细介绍各系列的规格、价格和适用场景,帮助用户根据实际需求选择最合适的GPU实例。
|
1月前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。

相关产品

  • 容器计算服务