通过浪潮AIStation实现细粒度高性能的GPU资源共享

作者 | 张荣国

供稿 | 浪潮

GPUGraphics Processing Unit),即图形处理器,是一种由大量核心组成的大规模并行计算架构,专为同时处理多重任务而设计。GPU在大规模并行运算上具有巨大优势,为大数据、人工智能训练和推理任务以及图像渲染等场景提供了显著的计算性能加速支持,但在实际使用中会产生资源管理困难、利用率低等问题。AIStation是浪潮推出的一款人工智能开发平台,可实现GPU资源的精细化调度。本文将重点介绍浪潮AIStation推理平台的GPU共享技术能力和应用场景。

GPU计算资源的运维痛点

对于人工智能开发人员、AI系统研究机构或进行数字化转型的新型/传统企业来说,在使用GPU计算资源时通常会面临如下几个问题:

  1. GPU资源管理困难。GPU相对CPU价格较贵,作为高价值硬件资源,GPU很难做到像网络、存储一样的运维、管理一体化。在实际应用环境下,经常出现多进程、多人员、多任务复用同一GPU资源的情况,长时间的资源等待严重降低了业务流程的推进效率,降低了产品迭代的速度;
  2. GPU资源使用效率低。算力需求较小的AI服务(on-premise或cloud)通常无法满负载使用一块GPU卡,并且用户在使用GPU资源时也需要显性地区分不同型号的GPU,以适配不同架构、型号GPU的计算核心、驱动和其他版本组件,为用户带来了更高的使用门槛;
  3. GPU资源快速申请、回收困难。在生产环境中,AI服务对GPU资源的申请与释放需要基于任务负载的使用周期,以及不同任务在波峰/波谷时对GPU资源的使用量,按照在线请求数量(QPS)进行自动扩缩容,才能够满足线上AI服务的实时高并发、低延迟的需求;

为了彻底解决上述问题,工业界已经提出了多种GPU共享方案。并且在云原生趋势下,利用云原生技术和标准Docker进行容器化部署,已经成为业内云服务对异构计算资源的通用方法。

表1 业界现有的GPU共享方案

方案

方案代表

优势

劣势

CUDA劫持

rCUDA、VCUDA等

Nvidia开源CUDA API,可以进行定制化开发;

  1. CUDA库升级活跃,方案需要不断适配;
  2. 难以覆盖所有场景,隔离不一定准确;
  3. 安全性低,用户可以绕过限制;
  4. 无法提供算力精准限制能力;

CUDA聚合

Nvidia MPS

  1. 多任务共享下性能最好;
  2. 当资源满足时,JCT不受影响;
  1. 错误之间相互传递,生产环境、训练场景落地困难;
  2. 没有显著的隔离性;
  3. 无法进行二次开发;

内核劫持

cGPU等

  1. 安全性高;
  2. 共享性能损耗小;
  3. 固定操作系统适配工作少;
  1. 依赖操作系统型号与版本;
  2. 二次开发难度高,迁移困难;

Mdev框架

Nvidia vGPU

Nvidia官方组件,可靠性高,安全性高;

  1. 不支持容器化,虚拟机上使用受限;
  2. 无法动态调整资源比例;
  3. 有一定的共享损耗;
  4. 无法进行二次开发;

Nvidia MIG

Nvidia MIG

显存、缓存和计算核心完全隔离;

  1. 只能分成7个实例;
  2. 每个实例的显存、缓存和计算核心对一些应用来说仍然过剩;

如何将多个任务同时运行在同一张GPU卡上,同时对共享资源进行严格的隔离,是业界的一个重要研究方向。此外,业内需求还包括如何在生产环境中对细粒度GPU资源(小于整卡的显存、计算核心)进行扩缩容(即多个任务运行在一张GPU中,此GPU中的任务同样需要在负载增加时,能够运行在不同的GPU卡上),以及适配多版本官方组件。上述需求不但要考虑技术方面的实现,还要根据实际生产过程中的不同类型指标进行资源的自动伸缩。针对以上亟待解决的问题,AIStation推理平台提供了稳定GPU细粒度资源的分配、调度和管理能力,为企业用户带来了高效利用GPU资源的最佳解决方案。

AIStation推理平台GPU共享功能简介

AIStation推理平台基于Kubernetes容器编排与计算资源发现、调度能力进行构建,支持容器化应用的生命周期管理和微服务架构,提供多种推理服务的发布方式和持续交付能力,简化推理服务上线流程,为用户提供稳定、快捷灵活的生产环境服务部署平台。

GPU共享系统为AIStation推理平台自研技术,针对使用GPU作为计算资源的应用提供多容器(或服务)共享同一块GPU加速卡的能力。用户可对多种架构的GPU加速卡进行细粒度的资源分配、调度,并通过计算请求量(QPS)、CPU使用率、内存使用率等指标自动进行扩缩容操作,能够保证推理服务快速响应在线请求、提升GPU资源的复用率,同时对底层第三方组件不具有任何侵入性,可将其轻松移植到不同的应用场景下。

AIStation提供以下GPU共享技术能力:

  1. 提供GPU显存的细粒度分配与调度能力;
  2. 提供GPU计算核心的细粒度分配与调度能力;
  3. 提供基于HPA的细粒度GPU资源扩缩容能力;
  4. 提供基于QPS的细粒度GPU资源扩缩容能力;
  5. 提供基于GPU共享的高可用部署能力;
  6. 提供多种型号GPU(V100、T4、A10 ~ A100、RTX2080 ~ 3090)共享能力;
  7. 极低的计算性能损耗(平均损耗低于1.3%);

GPU显存的细粒度分配与调度能力。用户可以将多个不同类型的服务部署在同一张GPU卡上,当多个服务的所需GPU显存能够“恰好”满足单张GPU的实际显存数量,此时GPU资源的使用率可以达到100%。如图1中的Case1所示,Container1和Container3、 Container2和Container4的组合分别可以完全满足现有GPU资源的显存额度。更多的情况为,用户可以通过配置文件设定“服务所需GPU显存资源申请额度”,AIStation将组合后能够达到最大GPU利用率的服务调度到同一张GPU卡,进而提升GPU资源的使用率。

 图1 不同场景下AIStation对显存的细粒度分配与调度

AIStation能够保证各服务之间的显存隔离。如图1中的Case2所示,AIStation通过后台算法计算出最优的调度策略,为预部署服务提供最小剩余资源与服务安全保障方案,在合理调度服务到不同GPU卡后,可以为其他服务提供空闲的GPU资源;对于跨节点的GPU资源,AIStation同样能提供细粒度分配与调度能力。

提供GPU计算核心的细粒度分配与调度能力。GPU计算资源包括显存(Memory)与计算核心(Kernel),当所部署的服务对计算核心使用率不高,或无需使用整卡的计算核心即能满足现有延迟要求时,AIStation可在单张GPU内对计算核心进行细粒度的划分并且兼顾GPU显存划分。如果同时设置GPU计算核心和显存的细粒度划分,以计算核心分配为主,单张卡的计算核心分配≤100%。

图2 AIStation对计算核心的细粒度分配与调度

提供基于HPA的细粒度GPU资源扩缩容能力。AIStation支持原生Kubernetes的水平自动扩缩容(Horizontal Pod Autoscaler),可基于CPU利用率、平均内存利用率等指标自动扩缩服务的副本数量。

图3 AIStation平台GPU共享系统的HPA

提供基于QPS的细粒度GPU资源扩缩容能力。AIStation支持实时服务请求流量的水平自动扩缩(Traffic Pod Autoscaler),可根据在线服务访问流量(QPS)指标自动增加或减少服务副本数量,用户可以配置上线服务的预设QPS,当服务请求大于(或小于)预设值时,后台程序会自动判断并执行扩缩容操作,在满足实例副本的资源申请配额条件下,按照细粒度的资源调度方式申请最佳的GPU资源。

图4 AIStation平台GPU共享系统的TPA

极低的计算性能损耗。AIStation平台GPU共享系统的性能损耗很小,不会对用户应用的性能产生影响。其劫持调度器采用C++编写,并且采用了Pod代理来接收用户应用的GPU内存申请和GPU时间片申请请求,Pod代理可以处理绝大多数的来自用户应用的请求,只有在用户应用需要重新申请GPU时间片时,Pod代理才需要将用户应用请求转发到劫持调度器。这样的架构设计能够避免劫持调度器过于繁忙而造成系统性能下降的问题。我们进行了如下的性能损耗测试,加速卡型号:NVIDIA GPU Tesla T4,软件:TensorFlow Benchmark,深度学习模型:ResNet50,精度:FP32, BatchSize=1、4、16,性能数据如图5所示。

图5 GPU共享与GPU直通的性能对比

GPU共享与GPU直通(应用的容器直接运行在GPU上)在不同BatchSize的情况下,性能对比如下:(1)BatchSize=1时,性能损耗约为 1.3%;(2)BatchSize=4时,性能损耗约为 0.37%;(3)BatchSize=1时,性能损耗约为 0.7%,从测试数据中,可以看出GPU共享与GPU直通的性能非常接近,几乎不受影响。

AIStation基于业务场景设计

无侵入式架构设计。AIStation具备无侵入特性。业界的一些GPU共享产品要求对用户应用、CUDA Runtime、CUDA Driver、或者NVIDIA Driver做出一定的修改,这会给很多用户带来困扰,同时会带来一些业务不稳定的问题。而AIStation不需要做上述修改,可以轻松移植到其它平台中,并且只需要YAML和Docker Images即可部署,支持开箱即用。

高可用(HA)设计。AIStation平台GPU共享系统的每个控制组件都采用高可用设计,每个主节点上面都会有一个GPU共享系统Controller模块和一个GPU共享系统Scheduler模块。在同一时间,每个模块的多个实例中只有一个是Leader,这个Leader负责本模块的业务处理,如果一些硬件问题或者网络问题导致此Leader挂掉了,那么Leader选举机制会立刻选举出新的Leader,实现了控制组件的高可用机制。

精细化监控设计。AIStation可对每个用户应用Pod的GPU利用率进行实时监控。它计算每个应用Pod的GPU利用率,然后借助TSDB(时序数据库)存储这些数据,从而实现了精细化的GPU利用率实时监控。

典型案例

某金融行业客户案例

在某金融行业客户的保险业务中,用户生产环境目前包括图像识别服务、OCR识别服务及语音识别服务,用于支撑企业内部运营管理及线上业务办理,用户希望构建统一的算法应用平台,集中管理不同ISV算法应用,提高资源利用率。

生产环境的厂商应用按裸机方式或者docker方式进行烟囱式部署管理,资源利用率较低,并且大量OCR服务在服务请求波谷时,对GPU资源依然采用整卡占用的形式,严重影响GPU资源的复用效率,导致其他服务存在大量推理计算时,需要进行人为干预,如果调峰不及时还会出现请求响应不及时、计算延迟较高、计算中断等一系列问题。

 

图6 烟囱式部署与GPU共享部署对比

客户启用AIStation推理平台后,上述问题得到了根本性解决,大规模推理业务场景下的资源管理能力显著提升。其中,GPU资源的复用率提升了300%,有效缓解了“任务多、加速卡少”、“负载计算少、资源占用多”等问题,使客户能够灵活应对各种不同类型的线上推理服务,极大提升了业务系统的稳定性。

某能源行业客户案例

某能源客户场景有2台8卡V100(32GB显存)GPU服务器,28人开发团队,客户希望能够合理分配这16张GPU卡给开发者做推理测试。因为人均不到一张GPU卡,如何合理高效的分配使用GPU资源,是用户急需解决的问题。

 

图7 GPU卡较少,而用户较多

用户在使用浪潮AIStation以后,通过设置GPU共享策略,将每个GPU切分为8个实例,每个实例可以使用4GB的显存,原来的16块GPU卡相当于变为了16*8=128个实例供开发用户使用,每个用户可以分到4~5个实例。每张GPU卡的利用率提升为原来的8倍。

图8 AIStation将每张GPU卡划分为8个实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云发布云原生加速器,携手生态企业拥抱数字时代

简介: 继去年推出云原生合作伙伴计划之后,阿里云正式发布云原生加速器,携手生态企业拥抱数字时代。 今天,千行百业都在拥抱云计算、拥抱云原生,进行数字化创新升级。作为国内最早实践云原生的企业,阿里巴巴…

网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?| 龙蜥技术

简介: 为了保障数据的安全性,客户端会先和服务器进行 TLS 握手,有什么办法可以减少 TLS 握手的带宽消耗呢? 编者按:BabaSSL 是一款开源的密码库产品,在 GitHub 和龙蜥社区开源,并加入到龙蜥社区…

企业级数据湖实践

简介:2021云栖大会云原生企业级数据湖专场,阿里云智能高级解决方案架构师周皓为我们带来《企业级数据湖最佳实践》的分享。 本文主要分享了数据湖的核心能力及几个最佳实践案例。 以下是精彩视频内容整理 一、统一数据存储,多引擎对接&…

浅述 Docker 的容器编排

作者 | 天元浪子来源 | CSDN博客概述作为容器引擎,Docker为容器化的应用程序提供了开放标准,使得开发者可以用管理应用程序的方式来管理基础架构,实现快速交付、测试和部署代码。随着容器的大量使用,又产生了如何协调、调度和管理…

Cloudera CDP 企业数据云测试开通指导

简介: 基于阿里云部署的 Cloudera CDP 企业数据云平台已经进入公测阶段,本文详细介绍了相关试用/试用流程。 基于阿里云部署的 Cloudera CDP 企业数据云平台已经进入公测阶段,如对该平台感兴趣,可以使用下面的流程进行试用。 如需…

重装linux之后gcc等下载不了,Redhat linux下安装gcc

一、安装步骤1、使用whichgcc命令发现gcc没有安装2、拷贝gcc-3.2.2-5.i386.rpm 尝试安装说明在这之前还需要先装binutils、cpp、glibc-devel这三个包3、拷贝binutils-2.13.90.0.18-9.i386.rpmcpp-3.2.2-5.i386.rpmglibc-devel-2.3.2-11.9.i386.rpm 到install目录分别安装rpm -i…

解决 Serverless 落地困难的关键,是给开发者足够的“安全感”

简介:越来越多的云产品都会向全托管、Serverless 形态演进。当云的产品体系 Serverless 化达到一个临界值,通过函数计算这样的 Serverless 计算服务结合其他 Serverless 形态的云服务,能够完整的实现整个应用时,Serverless 就会变…

如何通过任务调度实现百万规则报警

简介:报警是一个公司的日常需求,常见的形态除了满足运维过程中的基础设施监控报警(CPU/内存/磁盘等)之外,部分公司也会在应用指标(如 QPS、RT 等)及业务指标(如 GMV/日活 等&#xf…

linux无法关机 grub2,Ubuntu关机卡住无法关机如何解决?

电脑无法关机是最让人头疼的事,在Ubuntu系统中,有时会遇到关机卡住的情况,导致关不了机,遇到这种情况千万不要强制关机,下面小编就教你如何解决这个问题。解决方案:在终端用sudo vi打开/boot/grub/grub.cfg…

不用跑项目,组件效果所见即所得,绝了!

作者 | 零一来源 | 前端印象大家好,看到一个好东西,忍不住来分享一下。我们在写需求时都会封装一些组件,然后会为该组件定义一些 props ,使其跟业务分离,变得更通用。写完组件后需要验证一下组件的效果,也就…

Kubernetes 已经成为云原生时代的安卓,这就够了吗?

简介:本文将介绍如何在 Kubernetes 上构建新的应用管理平台,提供一层抽象以封装底层逻辑,只呈现用户关心的接口,使用户可以只关注自己的业务逻辑,管理应用更快更安全。 作者:司徒放 导语:云原生…

我们如何实现“业务 100% 云原生化,让阿里中间件全面升级到公共云架构”?

简介:在今年的天猫双 11 中,中间件支撑了 5403 亿的交易量,并全面升级到了公共云架构。 此次的架构升级,是以开源为内核、以公共云为基础、以 OpenAPI 进行解偶扩展,在架构上,对开源、自研、商业化进行统一…

两台电脑usb直连 linux,两台电脑怎么传文件没有网线(两台电脑usb直连)

对于两台电脑的数据传输而言,当下可通过各类社交(QQ,陌陌、微信.....)、传输(飞鸽传书、360快传......)软件都可以实现但由于各类软件需要下载安装以及相关软件学习使用成本,迫使很多用户都放弃了这种想法那么,今天我们对两台需要…

Gartner发布2022年数据分析十二大趋势:数据和分析将成为创新起源

数据与分析将会成为创新的起源,为企业发展创新助力同时,还将有基于数据的变现、降本增效,基于数据与分析的决策能力已成为有韧性企业的最核心能力。 作者 | 宋慧 出品 | CSDN 云计算 对数据的分析已经被企业与技术界愈加重视,国际…

重拾面向对象软件设计

简介:从上个世纪五十年代冯诺依曼创造第一台计算机开始,一直到现在只有短短70年时间,从第一门计算机语言FORTRAN,到现在我们常用的C,JAVA,PYTHON等,计算机语言的演进速度远超我们所使用的任何一…

数据与AI如何提升IT运维价值?锐捷发布乐享智能运维管理平台

运维的价值如何体现,听刚刚发布锐捷乐享智能运维管理平台的锐捷网络怎么说。 编辑 | 宋慧 出品 | CSDN云计算 运维可能是 IT 技术人中最苦的岗位。 IT系统运维工作就像安全一样,平稳运行不出事故是“份内事”,出了事故则要冲到修复一线。因此…

阿里云服务网格ASM集成SLS告警

简介:随着微服务的流行,微服务的架构也在不断的发展演进,Spring Cloud 与 Dubbo为代表的微服务开发框架也得到了普及和落地;在云原生时代,无侵入的服务网格(Service Mesh)开始走向成熟&#xff…

走进英特尔中国研究院探索创新日:发布最新科研成果与创新策略

如何穿越技术周期,英特尔揭秘创新策略与最新科研进展。 “2022英特尔中国研究院探索创新日”在北京举行。此次活动以“智探索汇无界”为主题,展示了英特尔中国研究院一系列前瞻性研究项目和创新成果。活动中,英特尔研究院副总裁、英特尔中国研…

零基础玩转SLS日志查询-SLS Query Builder发布

简介:日志服务(Log Service,简称 SLS) 是阿里云提供的行业领先的日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化、告警等功能。智能查询分析是数据中台重要的一环,SLS支持秒级查询10亿到千亿级…

块存储监控与服务压测调优利器-EBS Lens发布

简介:SLS团队联合EBS团队发布了EBS Lens,针对块存储提供数据分析、资源监控的功能,可以帮助用户获取云上块存储资源信息与性能监控数据、提升云上块存储资源的管理效率、高效分析业务波动与资源性能消耗情况。 EBS监控现状 块存储是阿里云为…