一次关于GPU虚拟化的技术预研

最近领导派发了一个任务,需要研究一下GPU集群的相关技术。主要是为了解决两个方面的问题,一是目前的GPU资源使用过剩,一张显卡有24G显存,但是跑一个算法模型只用了6G,并且一个模型只能并发使用一张显卡,其他的的进程会被阻塞,效率利用低下;二是后期可以把算力集中起来,做大模型的训练。

折腾了挺久,把这一次的经历总结一下。

由于是第一次接触这一块技术,我搜寻了GPU集群的相关概念,马上找到了K8s的相关支持,支持使用设备插件把GPU资源暴露到集群,使得其他节点可以使用这些资源,详见kubernetes.io/zh-cn/docs/...; 一开始我以为这件事并没有那么复杂,问题迎刃而解。但是既然是技术预研,最好能够给出实践结果,并给出各项指标分析。在实践了之后,发现k8s的pod配置GPU的数量单位是个,也就是GPU独占,就算能够解决集群的方式,也不能解决并发使用的问题。

于是发现要提高GPU的使用率,离不开GPU虚拟化的概念。关于GPU虚拟化,网上的资料很少,还是了解大概的情况。 目前GPU虚拟化技术可以分为4个演变过程:

一:GPU的简单虚拟化,按照物理GPU的固定拆分,分成多个vGPU

二:任意虚拟化,将物理GPU从算力和显存等维度拆分,按照%切分成多个GPU

三:远程调用,AI应用服务器与物理GPU分离部署,使得应用可以调用远程的GPU服务器

四:GPU池化 , 将GPU资源统一管理,实现动态伸缩,灵活调度

按照目前的情况,实现前面三个步骤,差不多能够满足目前需求;至于池化后期业务扩展可以考虑改造。

后面分析市场上的相关方案,有nVidia的vGPU方案,有VMware的bitfusion方案,还有一些互联网公司的方案。 在分析了价格情况之后我优先选择了bitfusion方案。

方案包含多个组件, ①ESXI操作系统,可以更方便地去管理多个虚拟机,一定要在安装GPU的物理服务器上安装,不然还是识别不到显卡; ②vCenter,集群模式下多个vCenter可以管理多个ESXI,每个ESXI又可以管理多台虚拟机 ③bitfusion相关组件,包含服务端和客户端,以下是bitfusion方案的架构图,具体文档地址docs.vmware.com/cn/VMware-v...

在折腾了几天之后终于把环境装好了,虚拟机数量还是挺多的,不过好在是跑成功了。

.........(此处跳过各种调试场景)

列一下踩过的坑:①首先在bitfusion服务器需要开启显卡直通,不然虚拟机识别不到显卡 ②目前bitfusion支持的最新CUDA版本是11.5,如果CUDA环境太新,会提示驱动版本太旧,所以需要把CUDA以及各个版本依赖降一下

结果

两张显卡可以实现同时跑4个任务

但是!!

从结果来看速度慢了好几倍,猜想可能是CUDA版本和各个依赖的版本降低,导致GPU加速效果减少;bitfusion采用服务端和客户端的方式,可能会有带宽方面的瓶颈以及增加了其他方面的损耗。

不是说这个方案不好,只是说目前不太满足当前我们的场景,所以不得已放弃。如果大家用也可以选择尝试。

关于GPU虚拟化,资料确实少,普通消费级显卡虚拟化的意义不大,个人用户玩不起;而且需要硬件,软件同时支持。一般企业做这一块也会有专门的解决方案。后续可能会尝试其他方案的研究。

相关推荐
代码改善世界17 分钟前
CANN深度解构:中国AI系统软件的原创性突破与架构创新
大数据·人工智能·架构
晚霞的不甘40 分钟前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
Tadas-Gao1 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
礼拜天没时间.2 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
啊森要自信2 小时前
CANN runtime 深度解析:异构计算架构下运行时组件的性能保障与功能增强实现逻辑
深度学习·架构·transformer·cann
WindrunnerMax2 小时前
从零实现富文本编辑器#11-Immutable状态维护与增量渲染
前端·架构·前端框架
vx-bot5556662 小时前
企业微信接口在金融级业务场景下的合规架构与实践
金融·架构·企业微信
jerwey2 小时前
OpenClaw 架构与组件说明
架构·openclaw
sun03223 小时前
【架构基础】Spring中的PropertySourcesPlaceholderConfigurer介绍 (并非新知识,比较古老的一种使用方式)
java·spring·架构
静听松涛1333 小时前
大语言模型长上下文技术突破:如何处理超长文本的注意力机制与架构图解
人工智能·语言模型·架构