前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >没错,AI原生云GPU算力圈的"super爱豆"就是他

没错,AI原生云GPU算力圈的"super爱豆"就是他

作者头像
Henry Zhang
发布2023-04-04 09:14:25
1.9K0
发布2023-04-04 09:14:25
举报
文章被收录于专栏:亨利笔记

相关信息:

招聘云原生开发工程师

2021智能云边开源峰会:云原生、人工智能和边缘计算

Bitfusion 如何在 vSphere 中使用 PVRDMA 功能?

导读:

后疫情时代助力复工复产,AI应用百花齐放,GPU算力需求井喷式增长。然而K形算力剪刀差给庞大的AI原生云带来沉重的成本负担,一方面是单机GPU算力不足而全局算力过剩,另一方面是GPU算力不足而CPU算力过剩。幸好有他(“super爱豆”)腾云而来,让AI算力像水一样在云原生平台内自由流动,他们的格言是“我不生产算力,我只是算力的搬运工”。

本文阅读需要10分钟,点击文末 “点击进入留言区” 可以给作者留言。

需求和痛点

   AI与云“搭配”已经成为行业共识,AI算力的硬件表现为GPU物理卡资源,云原生基础设施的表现为Kubernetes编排系统以及所承载的业务pod,Kubernetes云原生编排软件已经成为事实上部署和管理AI工作负载的首选平台。在云原生AI平台深度融合模式呼之欲出之际,AI算力与云原生基础设施的生产资料关系仍制肘着AI原生云生产力的发展。

传统GPU资源供给模式

制约关系具体表现为:

       1、AI算力的上线受限:

       单个POD的最大算力广度受限于本地单台服务器GPU硬件资源容量。

       2、AI算力的下线受限:

      单个POD的最小算力粒度止步于本地单台服务器的单张GPU硬件资源容量,无法继续细化分配。

这种生产关系模型将对云原生AI平台的深度融合发展带来巨大的挑战:

       1、GPU算力资源的局部浪费:

       GPU算力没有池化,业务POD只能本地调用GPU卡,并且单个POD会独占一张GPU卡,这样单台服务器的GPU卡经常会出现利用率不足的情况,造成局部浪费。

       2、GPU算力全局过剩但局部不足:

       数据中心多台服务器的GPU总体算力充足,但是由于单台服务器的业务POD只能使用本机的GPU卡,所以当某个业务POD需要超过单台服务器GPU算力资源时,本机服务器的GPU资源无法满足业务POD的算力资源需求,制约应用的灵活部署调度。

       3、CPU算力与GPU算力出现K形两极发展:

      单台服务器CPU算力过剩想运行更多业务POD时,但发现本机GPU算力不足也不能继续运行业务。最后出现CPU空闲GPU过度繁忙,只能继续新增GPU服务器,周而复始加剧形成K形的两极发展剪刀差。

云原生AI融合平台方案

为解决原生云上使用AI算力的挑战,重构AI算力与云原生基础设施之间的新型生产关系,加速AI算力在云原生基础设施之间的广泛流动,业界开始探索GPU资源池方案,并涌现出许多创新的项目,其中表现最为优异的解决方案产品就有VMware Bitfusion。

       Bitfusion GPU资源池方案基于虚拟化软件对服务器的GPU物理卡进行池化管理和GPU切片,通过万兆网络通道提供给本机或远端云主机使用,结合Kubernetes device plugin插件为任意K8S集群的AI业务POD提供并发共享的GPU算力。

‍‍‍‍‍‍

bitfusion GPU资源池供给模式

方案简介:

       这个方案包括以下部分:

       1、Bitfusion 服务器:

      把 GPU 安装在 vSphere 服务器上 (要求 vSphere 7 以上版本),然后在上面运行 Bitfusion Server (以 OVA 格式提供的 virtual appliance),Bitfusion Server 可以把物理 GPU 资源虚拟化,共享给多个用户使用。

       2、Bitfusion 客户机:

      Bitfusion Client 是运行在本地和远程vSphere 服务器上的 Linux 虚机 (要求 vSphere 6.7 以上版本), 机器学习 ML (Machine Learning) 工作负载运行在这些虚拟机上(或者虚拟机上的k8s pod内),Bitfusion 会把它们对于GPU 的服务请求通过网络传输给 Bitfusion Server,计算完成后再返回结果。对于 ML 工作负载来说,远程 GPU 是完全透明的,它就像是在使用本地的 GPU 硬件。

        Bitfusion的详细配置介绍可以参考微信文章:Bitfusion 工作原理

      3、device plugin插件

      上面两个组件的搭建已经可以完成虚拟机应用或者虚拟机里的容器应用的GPU池化共享使用,但为提供更好地融合体验,bitfusion没有止步于此,针对k8s云原生平台开发了device plugin和webhook,device plugin和webhook分别内置在独立的 Docker 镜像中。bitfusion-device-plugin 作为DaemonSet 运行在kubelet所在的每个工作节点上。bitfusion-webhook 作为Deployment 运行在Kubernetes主节点上。

bitfusion device plugin运行架构图

从上面plugin架构图中看出,device plugin负责在每个k8s node上集中管理业务pod所需的GPU资源,包括bitfusion client端软件和cuda驱动的统一加载、每个pod所需GPU资源调度和GPU资源细粒度切分供给,其中GPU资源的细粒度切分可以选择GPU卡的数量和单张GPU卡的容量百分比。业务pod在自身启动的yaml配置中添加bf device plugin的配置参数即可使用。Yaml配置文件示例如下: 

业务pod调用device plugin示范yaml文件

Device plugin的详细配置说明可以参考微信文章:使用Bitfusion在K8s上共享GPU资源

方案创新点:

      1、GPU算力资源池化管理

      Bitfusion GPU资源池方案提供将多台物理服务器的GPU资源池化共享给本地服务器或远程服务器的业务系统使用,突破了GPU资源的使用位置限制,避免了集群内CPU资源和GPU资源使用的K形分化

      2、细粒度切分单块GPU卡资源

      结合k8s device plugin插件,使得多个业务pod可以并发共享使用单张物理GPU卡,单个业务pod可以分配1/X张GPU卡资源。

      3、plugin插件方式对业务POD无侵入

      device plugin以dameonset pod形成在每个k8s work node加载,业务pod镜像无需做任何修改,仅需要调整业务pod启动的yaml参数即可实现GPU资源池能力的享用。

Bitfusion GPU资源池这一创新的共享架构和技术举措,提升了集群内的GPU资源的总体利用率,避免出现局部GPU资源紧张或过度空闲,使得AI算力在云原生平台内自由流动。

应用案例

项目背景:某客户依托企业级智慧中台战略规划,推进业务数智化转型进程,按照统一规划、统一标准、统一组件的总体思路,集中打造了面向集团中心和省份边缘的云边协同统一AI平台,统一AI平台承载于k8s云原生数字化底座,基于微服务架构实现一体化的AI能力孵化及推理流程,为租户提供数据标注、模型训练、推理预测及能力开放等服务。

业务承载:统一AI平台承载公司内部所有种类繁多的人工智能应用,包括AI业务稽核、智能评标、智能内容生产运营、机房智能监控、智慧审计、智能情感认知分析、AI工程质检、AIOps等业务类型,包含多节点管理、数据准备、模型训练、推理服务、运营管理、能力开放等六个模块,整个平台对GPU算力的需求规模庞大,面临很大成本压力。

方案设计:为了充分利用集群内的整体GPU算力资源,节约GPU硬件的采购成本,提高原生云AI平台的资源调度灵活性,客户选取某一个省份边缘节点作为切入点,使用VMware bitfusion资源池产品方案为边缘节点的推理服务业务集群提供GPU算力资源。边缘AI节点推理服务业务GPU集群的拓扑结构如下:

统一AI平台边缘节点拓扑结构图

  GPU服务器(GPU算力资源池):单台服务器2路12核/384GB内存/8张32GB GPU卡,部署bitfusion server管理物理GPU卡,10GE作为计算节点业务从外部访问进来的网络通道,25GE网卡作为bitfusion GPU资源池内部东西向数据传输通道。

        B3/S2服务器(k8s集群业务服务器):单台服务器2路20核/768GB内存/无GPU卡,部署统一AI平台K8S集群和其他基础业务,通过网络访问bitfusion GPU算力资源。

         整体实施过程如下图:

统一AI平台边缘节点GPU算力池配置和运行

项目实施效果:

       1、提升GPU资源利用率:

       按照原来POD独占单张物理卡模式,单台服务器8块32GB GPU卡的物理服务器,最多只能提供给8个租户并发使用,但单个租户通常情况下不需要使用单块卡32GB的容量,造成了一边是GPU资源的利用率低,另一边是大量的租户没有GPU卡可分配,使得统一AI平台出现了GPU资源利用率全局不平衡的情况。通过基于bitfusion GPU资源池方案,实现GPU资源的按需切片,业务虚机任意位置访问GPU资源, GPU资源的利用率50%以上。

      2、节约AI平台的GPU算力成本:

     通过基于bitfusion GPU资源池方案, GPU资源利用率提升的同时,相同GPU物理服务器资源能够承接租户GPU需求增加50%以上,可以减少GPU物理服务器的采购,节约GPU服务器硬件成本。

      3、提高AI云原生平台的业务调度灵活性:

      在面对新的异构硬件设备时,提供统一接入规范,并且对上层AI服务屏蔽底层调度和资源的复杂性。业务POD在任意k8s node都可以获得任意容量任意类型的GPU硬件资源算力,提高上层AI业务调度的灵活性。

产品演进小tips:

1、BF 4.0 device plugin已经上新,心心念的异型GPU卡(比如V100和P40混合部署)标签识别功能发布

2、bitfusion device plgin对接云原生监控平台promethues的exporter,研发的兄弟们正在加紧开发中,值得期待


要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档