【GPU虚拟化到池化技术深度分析 2024】

文末有福利!

随着大模型的兴起,对GPU算力的需求越来越多,而当前现实情况使企业往往受限于有限的GPU卡资源,即便进行了虚拟化,往往也难以充分使用GPU卡资源或持续使用资源。为解决GPU算力资源不均衡等问题,同时支持GPU算力的国产化替代,提升GPU资源的利用率,GPU算力池化需求迫在眉睫。本文分享了GPU设备虚拟化的几种路线、GPU虚拟化和共享方案以及GPU算力池化云原生实现。

智能化应用如人脸识别、语音识别、文本识别、智能推荐、智能客服、智能风控等已广泛应用于各行各业,这些应用被称为判定式AI的范畴,通常和特定的业务场景相绑定,因此在使用GPU(Graphics Processing Unit)卡的时候也通常各自独立,未考虑业务间GPU共享能力,至多实现vGPU 虚拟化切分,从而一张物理GPU卡虚拟出多张vGPU,可以运行多个判定式AI 应用。

随着大模型的兴起,对GPU算力的需求越来越多,而当前现实情况使企业往往受限于有限的GPU卡资源,难以支撑众多的业务需求,同时由于业务特性等,即便进行了虚拟化,往往难以充分使用GPU卡资源或持续使用资源,从而也造成有限的卡资源也无法有效利用。

一、从GPU虚拟化需求到池化需求

智能化应用数量的增长对GPU算力资源的需求越来越多。NVIDIA虽然提供了GPU虚拟化和多GPU实例切分方案等,依然无法满足自由定义虚拟GPU和整个企业GPU资源的共享复用需求。TensorFlow、Pytorch等智能化应用框架开发的应用往往会独占一张GPU整卡(AntMan框架是为共享的形式设计的),从而使GPU卡短缺,另一方面,大部分应用却只使用卡的一小部分资源,例如身份证识别、票据识别、语音识别、投研分析等推理场景,这些场景GPU卡的利用率都比较低,没有业务请求时利用率甚至是0%,有算力却受限于卡的有限数量。

**单个推理场景占用一张卡造成很大浪费,和卡数量不足形成矛盾,因此,算力切分是目前很多场景的基本需求。**再者,往往受限于组织架构等因素,GPU由各团队自行采购和使用,算力资源形成孤岛,分布不均衡,有的团队GPU资源空闲,有团队无卡可用。

为解决GPU算力资源不均衡等问题,同时支持GPU算力的国产化替代,协调在线和离线资源需求、业务高峰和低峰资源需求、训练和推理、以及开发、测试、生产环境对资源需求不同,实现算力的统一管理和调度复用,实现GPU资源的切分、聚合、超分、远程调用、应用热迁移等能力,提升GPU资源的利用率,GPU算力池化需求迫在眉睫。

二、GPU设备虚拟化路线

GPU设备虚拟化有几种可行方案。

首先是PCIe直通模式(PCIe Pass-through技术,pGPU),也就是将物理主机上的整块GPU卡直通挂载到虚拟机上使用。但这种方式是独占模式,GPU卡没有虚拟化切分,并不能解决多个应用运行在一张卡上的问题,因此意义不是很大。

**第二是采用SR-IOV技术,允许一个PCIe设备在多个虚拟机之间共享,同时保持较高性能。**通过SR-IOV在物理GPU设备上创建多个虚拟 vGPU来实现的,每个虚拟vGPU可以被分配给一个虚拟机,让虚拟机直接访问和控制这些虚拟功能,从而实现高效的I/O虚拟化。NVIDIA早期的vGPU就是这样的实现,不过NVIDIA vGPU需要额外的license,额外增加了成本。SR-IOV虽然实现了1:N的能力,但其灵活性比较差,难以更细粒度的分割和调度。

**第三是MPT(Mediated Pass-Through,受控的直通)模式。**MPT本质上是一种通用的PCIe设备虚拟化方案。兼顾了1:N灵活性、高性能、功能完整性,但逻辑上相当于实现在内核态的device-model,厂商通常不会公开硬件编程接口,因此采用MPT可能会形成厂商依赖。

第四用的最多的模式是API转发模式。

根据AI应用的调用层次(如下图),API转发有多个层次,包括:

  • CUDA API转发(图中①)

  • GPU Driver API转发(图中②)

  • 设备硬件层API转发(图中③)

设备硬件层API通常是难以获得的,因此目前市面上通常采用CUDA API转发模式(截获CUDA请求转发,也被称为用户态)和GPU卡驱动 Driver API转发模式(截取驱动层请求转发,也被称为内核态)。

另外AI开发框架往往和GPU卡绑定(比如华为支持CANN框架,海光支持DTK框架,英伟达则支持TensorFlow、Pytorch等框架),AI应用在使用AI框架时,也可以在AI框架层进行转发,在AI应用迁移时比较有用。


AI应用调用层次

三、GPU虚拟化和共享方案

了解了GPU设备虚拟化的方式,基于设备虚拟化技术,看下GPU虚拟化和共享的实现方式。GPU虚拟化和共享有多种方案,英伟达从官方也提供了vGPU、MIG、MPS等方案,以及非官方的vCUDA、rCUDA、内核劫持等多种方案。

四、NVIDIA VGPU方案

NVIDIA vGPU是NVIDIA提供的一种虚拟化方案,可靠性和安全性高,但不支持容器,只能虚拟化若干个vGPU ,使用不灵活;无法动态调整资源比例;有一定的共享损耗;不支持定制开发,需支付额外license费用。

vGPU 原理揭秘:

在 NVIDIA 虚拟 GPU 助力的虚拟化环境中,NVIDIA 虚拟 GPU (vGPU) 软件与 Hypervisor 一同安装在虚拟化层上。

此软件可创建虚拟 GPU,使每个虚拟机 (VM) 都能共享安装在服务器上的物理 GPU。对于要求非常严苛的工作流程,单个 VM 可充分利用多个物理 GPU。我们的软件包含适用于各种 VM 的显卡或计算驱动。由于通常由 CPU 完成的工作分流到 GPU,因而用户可以获得更出色的体验。虚拟化和云环境可支持要求苛刻的工程和创意应用程序,以及计算密集型工作负载(例如 AI 和数据科学)。

NVIDIA 虚拟 GPU (vGPU) 软件为众多工作负载(从图形丰富的虚拟工作站到数据科学和 AI)提供强大的 GPU 性能,使 IT 能够利用虚拟化的管理和安全优势以及现代工作负载所需的 NVIDIA GPU 的性能。NVIDIA vGPU 软件安装在云或企业数据中心服务器的物理 GPU 上,会创建虚拟 GPU,这些 GPU 可以在多个虚拟机(可随时随地通过任意设备访问)之间共享。

优势:

  • 通过实时迁移 GPU 加速的 VM,您可以获得持续正常运行和前瞻性管理能力 -- 不会对用户产生负面影响或丢失数据。

  • 利用统一的虚拟 GPU 加速基础设施来运行混合 VDI 和计算工作负载,从而提高数据中心资源的利用率。

  • 拆分 GPU 资源并在多个 VM 之间共享,或者将多个 GPU 分配给单个 VM,为要求极高的工作负载提供支持。

  • 借助灵活的调度选项,实现几乎与非虚拟化环境无异的性能。

**支持虚拟化的GPU 卡介绍:**‍‍‍‍‍‍

五、NVIDIA MIG 虚拟化 多实例 GPU

MIG是多实例GPU方案。只支持Linux操作系统,需要CUDA11/R450或更高版本;支持MIG的卡有A100, H100 等比较高端的卡;支持裸机和容器,支持vGPU模式,一旦GPU卡设置了MIG后,就可以动态管理instance了,MIG设置时persistent 的,即使reboot也不会受影响,直到用户显式地切换。

借助MIG,用户可以在单个GPU卡上获得最多7倍的GPU资源,为研发人员提供了更多的资源和更高的灵活性。优化了GPU的利用率,并支持在单个GPU上同时运行推理、训练和高性能计算(HPC)任务。每个MIG实例对于应用程序都像独立GPU一样运行,使其编程模型没有变化,对开发者友好。

单个 GPU 中包含七个独立实例。

多实例 GPU (MIG) 能够提升 NVIDIA Blackwell 和 Hopper™ 系列 GPU 的性能和价值。MIG 可将 GPU 划分为多达七个实例,其中每个实例均完全独立,并具有各自的高带宽显存、缓存和计算核心。如此一来,管理员便能支持各种规模的工作负载,确保服务质量 (QoS) 稳定可靠,并让每位用户都能享用加速计算资源。

优势概览:

  • 借助 MIG,您可以在单个 GPU 上获得多达原来 7 倍的 GPU 资源。MIG 可让研发人员和开发者获享更多资源和更高的灵活性。

  • MIG 允许灵活选择许多不同的实例大小,以便针对每项工作负载提供大小适当的 GPU 实例,最终优化利用率并充分发挥数据中心投资的价值。

  • 借助 MIG,可以在单个 GPU 上同时运行推理、训练和高性能计算 (HPC) 工作负载,并使延迟和吞吐量保持稳定。与时间分片不同,各项工作负载都将并行运行,从而能够提高性能。

技术原理:

若不使用 MIG,则同一 GPU 上运行的不同作业(例如不同的 AI 推理请求)会争用相同的资源。显存带宽更大的作业会占用其他作业的资源,导致多项作业无法达成延迟目标。借助 MIG,作业可同时在不同的实例上运行,每个实例都有专用的计算、显存和显存带宽资源,从而实现可预测的性能,同时符合服务质量 (QoS) 并尽可能提升 GPU 利用率。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包 》,扫码获取~

篇幅有限,部分资料如下:
👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!

💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉国内企业大模型落地应用案例👈

💥《中国大模型落地应用案例集》 收录了52个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)


💥《2024大模型行业应用十大典范案例集》 汇集了文化、医药、IT、钢铁、航空、企业服务等行业在大模型应用领域的典范案例。

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)

👉640份大模型行业报告👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

👉获取方式:
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

相关推荐
前端组件开发几秒前
JeeSite V5.7.1 发布,Java快速开发平台,Spring Boot,Vue3,微服务
java·数据库·spring boot·微服务·oracle·开源
开心星人1 分钟前
【深度学习】注意力机制
人工智能·深度学习
想胖的壮壮21 分钟前
深度学习 - 稠密张量与稀疏张量的区别
人工智能·深度学习
MongoDB 数据平台25 分钟前
生成式AI赋能金融信贷:减少信用评分偏差
人工智能·金融
封印师请假去地球钓鱼38 分钟前
生产力工具 AI 图片生成工具介绍
人工智能·生成式图片
厚德云1 小时前
Runway开放Gen-3:比Sora更好的视频模型?
人工智能·ai·云计算·视频
渡众机器人1 小时前
自动驾驶水泥搅拌车在梁场的应用(下)
人工智能·科技·物联网·机器学习·机器人·自动驾驶·搅拌车
yuanlulu1 小时前
在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
人工智能·深度学习·lora·nlp·大语言模型·llama
易通慧谷1 小时前
金融科技在反洗钱领域的创新应用
机器学习·区块链·ai大模型·金融科技·反洗钱
白泽来了2 小时前
Golang 依赖注入设计哲学|12.6K 🌟 的依赖注入库 wire
开源·go