虚拟化技术是一种通过抽象计算资源的方式创建独立运行环境的技术。它通过软件模拟和硬件资源的抽象与隔离,为应用程序提供了一个虚拟化的计算环境,从而实现资源的隔离、共享和动态分配。此技术显著提高了资源利用率和系统灵活性。以下是实时云渲染领域常用的虚拟化技术:
-
GPU 虚拟化:在云渲染中,GPU 虚拟化至关重要。主要有以下几种方法:
-
直通模式:该模式将物理 GPU 直接分配给虚拟机,几乎没有性能损失且无需修改硬件驱动,被许多公有云服务商广泛使用。支持直通的 GPU 可以充分发挥其性能,没有数量限制,也不影响 GPU 的功能。
-
GPU 分片虚拟化:这种方式从两个角度进行划分:时间片段和显存划分。时间片段类似于 CPU 的进程调度,将一个物理 GPU 的计算资源在多个 vGPU 之间共享,每个时间片一般在 1-10ms 之间。显存划分则是将 GPU 的显存分配给各个 vGPU,例如,将 16GB 显存的 GPU 划分为 16 个 vGPU,每个 vGPU 分配 1GB 显存。虽然性能略有损失,但这种方式提供了更大的灵活性,并且支持热迁移。
-
GPU SRIOV 虚拟化:SRIOV(Single Root I/O Virtualization)技术将一个 PCI 资源(PF)拆分成多个符合 PCI 规范的小设备(VF)。这种方式的灵活性较低,通常由硬件决定一个物理 GPU 能拆分成多少个 vGPU,且无法进一步扩展。
-
-
图形 API 虚拟化:如 OpenGL 和 DirectX 虚拟化,在图形 API 层实现虚拟化。
-
操作系统虚拟化:包括 KVM、VMware、vSphere 和 VMware Workstation 等技术。
-
多进程虚拟化:这种虚拟化在单一操作系统内部通过进程级的隔离实现,可以在一个服务器上同时运行多个渲染进程,提升 CPU 和 GPU 的资源利用率。
相比于传统的物理资源分配方式,虚拟化技术提供了以下优势:
-
资源利用率提升:将物理资源虚拟化为多个逻辑资源,提高了资源的整体利用率。
-
灵活性增强:实现了资源的隔离、共享和动态分配,提升了系统的灵活性和可扩展性。
-
安全性提高:通过资源隔离和安全控制,防止了用户之间的资源冲突和潜在的安全漏洞。
-
可靠性增强:通过资源的冗余和备份,提高了系统的可靠性和容错能力。
Paraverse平行云实时云渲染解决方案LarkXR的底层架构提供了gpu资源池化管理能力,可以通过拦截图形处理接口,对gpu的使用进行动态分配,并对上层应用进行进程级的隔离,给应用提供一个容器化的环境进行独立的运行。从而做到在高密度的gpu上,支持一机多卡,一卡多应用的共享模式,实现对gpu资源的超细粒度分配,提高了资源利用率。
另外,在短时高并发的场景下,云厂商在同一个区域同一种卡型也很难满足大规模的应用。LarkXR具有底层异构、上层同构的特性,会根据不同的卡型分配不同数量的用户请求,可以为大规模应用提供了更多的选择。