Nvidia GPU池化-长途GPU
目次1 背景
2 长途GPU
2.1 Fungible
2.2 rCUDA
2.3 Bitfusion
2.4 OrionX
3 其他
3.1 技术难点
3.2 GPU热迁徙
1 背景
Nvidia GPU得益于在深度学习范畴强大的盘算能力,使其在数据中心常年处于绝对的统治职位。只管借助GPU虚拟化实现多任务混布,提高了GPU的利用率,缓解了长尾效应,但是GPU利用率的绝对值还是不高,长尾征象依然存在。
网卡池化、存储池化、内存池化、CPU池化等一系列相近根本设施范畴的技术演进,让大家对GPU池化也产生了一些想法。面对依赖PCIe和NVLink实现小范围连接的GPU呆板,人们迫切盼望能跨TOR、跨机房以致跨地区调用GPU,从而低落集群团体的GPU碎片率,GPU池化应运而生,而其中关键的技术难点在于实现长途GPU。
此外,GPU池化不仅可以结合GPU虚拟化实现GPU资源的极致共享,也可以突破CPU与GPU的配比极限,理论上可以实现恣意配比。
2 长途GPU
在深度学习范畴,Nvidia GPU的软件调用栈大致如下图所示,从上至下分别为:
[*] User APP:业务层,如练习或推理任务等
[*] Framework:框架层,如tensorflow、pytorch、paddle、megengine等
[*] CUDA Runtime:CUDA Runtime及周边生态库,如cudart、cublas、cudnn、cufft、cusparse等
[*] CUDA User Driver:用户态CUDA Driver,如cuda、nvml等
[*] CUDA Kernel Driver:内核态CUDA Driver,参考官方开源代码,如nvidia.ko等
[*] Nvidia GPU HW:GPU硬件
https://i-blog.csdnimg.cn/blog_migrate/629ba022cc088428108f45b050bb9bfe.png
现在长途GPU主要通过DPU大概在CUDA Runtime/Driver层拦截API实现。
2.1 Fungible
Fungible通过DPU和PCI vSwitch经网络连接GPU,替代传统的PCIe直连方式,GPU连接数目也超过传统的8:1,到达了55:1。
https://i-blog.csdnimg.cn/blog_migrate/79780c42a34048867fcc10fe5ff38109.png
经过测试,连接2个GPU的DPU方案对性能的影响较小。在某些情况下,DPU解决方案的延长更高,带宽也比PCIe低。假如将10个GPU连接到一个DPU上,那么物理带宽就会减少。
https://i-blog.csdnimg.cn/blog_migrate/2b1c12ea73a8d22e486ba8a6a44079dc.png
23年1月份,Fungible被微软收购,加入微软的数据中心根本设施工程团队,专注于提供多种DPU解决方案、网络创新和硬件体系改进。
2.2 rCUDA
西班牙Universitat Politecnica de Valencia并行架构组的一个开发项目,提供了一套长途GPU虚拟化解决方案,支持以透明的方式并发长途使用支持CUDA的设备。不仅可以部署在集群中,允许单个非MPI应用步伐使用集群中的全部GPU,从而提高GPU利用率并低落总体成本,而且还可以在虚拟机中运行应用步伐访问安装在长途物理机中的GPU。其最新的研究成果和计划都会放在官网,有兴趣的可以访问官网详细了解。
2.3 Bitfusion
Bitfusion提供的GPU资源池的工作原理是在CUDA Driver层面上截获了全部的CUDA服务访问,然后把这些服务请求和数据通过网络传递给Bitfusion Server,在服务器这一端再把这些服务请求交给真正的CUDA Driver来处理。
https://i-blog.csdnimg.cn/blog_migrate/5d6acfe6241b99fbfdf79ce78af221b9.png
19年7月份,戴尔旗下的云盘算公司VMware收购Bitfusion,之后这套方案被集成到vSphere平台中,主要分为两部分:
[*] Bitfusion Server:把GPU安装在vSphere服务器上(要求vSphere 7以上版本),然后在上面运行Bitfusion Server,Bitfusion Server可以把物理GPU资源虚拟化,共享给多个用户使用。
[*] Bitfusion Client:Bitfusion Client是运行在其他vSphere服务器上的Linux虚机(要求 vSphere 6.7 以上版本),呆板学习工作负载运行在这些虚拟机上,Bitfusion会把它们对于GPU的服务请求通过网络传输给Bitfusion Server,盘算完成后再返回结果。对于呆板学习工作负载来说,长途GPU是完全透明的,它就像是在使用本地的GPU硬件。
https://i-blog.csdnimg.cn/blog_migrate/3a379248af6339dec2ba9f1277fc364f.png
2.4 OrionX
19年4月份,国内AI加速器虚拟化及资源池化服务商趋动科技成立,初创团队来自于Dell EMC中国研究院,主要为用户提供AI加速器虚拟化和资源池化软件及解决方案。其研发的Orion vGPU软件是一个为云大概数据中心的GPU提供资源池化和虚拟化能力的体系软件。通过高效的通讯机制,使得CUDA应用可以运行在云大概数据中心内任何一个物理机,容器大概虚拟机内无需挂载物理GPU,同时为这些应用步伐提供在GPU资源池中的硬件算力。
OrionX主要通过拦截CUDA Runtime/Driver及其周边生态库的API实现,核心分为以下几个部分:
[*] Orion Controller:负责整个GPU资源池的资源管理。其响应Orion Client的vGPU请求,并从GPU资源池中为Orion Client端的CUDA应用步伐分配并返回Orion vGPU资源。
[*] Orion Server:负责GPU资源化的后端服务步伐,部署在每一个CPU以及GPU节点上,接管本机内的全部物理GPU。当Orion Client端应用步伐运行时,通过Orion Controller的资源调度,创建和Orion Server的连接。Orion Server为其应用步伐的全部CUDA调用提供一个隔离的运行环境以及真实GPU硬件算力。
[*] Orion Client:模仿了NVidia CUDA的运行库环境,为CUDA步伐提供了API接口兼容的全新实现。通过和Orion其他功能组件的配合,为CUDA应用步伐虚拟化了一定数目的虚拟GPU(Orion vGPU)。使用CUDA动态链接库的CUDA应用步伐可以通过操纵体系环境设置,使得一个CUDA应用步伐在运行时由操纵体系负责链接到Orion Client提供的动态链接库上。由于Orion Client模仿了NVidia CUDA运行环境,因此CUDA应用步伐可以透明无修改地直接运行在Orion vGPU之上。
https://i-blog.csdnimg.cn/blog_migrate/bff8e0bcacc4fcf8a2385d1f80e5d187.png
3 其他
3.1 技术难点
由于Nvidia的闭源性,长途GPU存在不少的技术难点,比如Kernel Launch机制、Context机制、隐蔽API等,同时工程上也存在一些难点,比如数以千计API拦截的开发和维护等,可参考cuda hook开源代码。
3.2 GPU热迁徙
GPU池化配合虚拟化可以更好地实现云服务的弹性伸缩,但在集群资源紧张大概碎片率较高时,弹性伸缩的成功率偏低,此时亟需GPU任务的热迁徙技术,配合集群的统筹调度,提高云服务弹性伸缩的成功率。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]