在之前发布的ZStack 3.5.0版本中,ZStack新增了对于NVIDIA及AMD vGPU方案的支持,从而在云中实现支持GPU透传、vGPU两种GPU方案的完善GPU云平台解决方案,能够帮助用户在云中实现工业设计、图形渲染、教学科研、深度学习等更为丰富的GPU应用场景。
前言
随着虚拟化与云计算技术的快速发展,越来越多的用户将应用迁移到云上。在这个过程中,用户希望一些特定的业务场景既能够在云环境中获得灵活、高效的资源交付能力,又能够获取与物理机无异的资源计算性能。GPU作为一种资源设备,近几年来随着大数据、人工智能等深度学习相关应用的深入,这一技术在云中的应用需求日益加深。
本文旨在以通俗易懂的方式让各位读者对于云中的GPU方案有一定的概况性了解。
一、了解GPU
在了解GPU之前,我们需要先了解GPU与我们熟悉且常用的CPU区别:虽然两者都为了完成计算任务而设计,但各有侧重。
CPU 由专为串行顺序执行指令而设计的几个核心组成,主要是面向通用计算场景;
如:8个计算核心,每个计算核心计算力都相对较强
而 GPU 则是拥有一个由数以千计的更小核心组成的大规模并行计算架构。更侧重用于面向并行计算场景;
如:1000个计算核心,单个计算核心计算力相对一般,综合计算力强大
举一个比较容易理解的例子:
CPU可以比作一个数学教授,当解答一道或几道高难度数学问题时,效率更高;
GPU可以比作100个中学生,当解答数百上千低难度数学问题时,效率更高。
因此在实际应用场景中,GPU非常适合用于需要大量简单、重复、并行、矩阵等计算能力的场景。下面通过以下两个典型的GPU应用场景来进行需求说明。
二、GPU应用场景
1. 重GPU计算力需求场景
某市交管部门构建城市大数据智能交通调度系统以缓解绕城高速交通拥堵情况,建设规划将系统构建在云环境中,以解决部署在物理机环境中所存在的安装周期长、运维效率低下等问题,因此,如何将物理GPU设备交付给部署在云环境中人工智能应用以使用是项目的关键技术需求。
2. 轻GPU计算力需求场景
某制造型企业期望为工业设计人员部署云桌面以保护企业数据安全,还要简化桌面运维管理。但这需要依赖GPU的图形计算力以实现在云环境中运行工业设计软件这一需求。
在以上场景中,分别通过GPU透传及vGPU技术在云中交付GPU资源是满足用户需求的主要技术手段。
下面我们来进一步介绍以上两种云中GPU实现方案。
三.GPU云化方案
1. GPU透传
GPU透传主要技术原理是通过将宿主机(物理机)上GPU设备的PCI内存地址映射给云主机,从而能够绕过云环境中的虚拟化管理程序,将GPU设备直接加载给云主机进行使用。
透传后对比在物理机上使用GPU设备的优缺点如下:
优点:性能损耗<5%、功能兼容性好(如2D/3D/图形渲染/CUDA等功能)、技术实现简单(对GPU厂商无依赖)、运维成本低;
缺点:无法将GPU设备与其他云主机共享、已挂载GPU的云主机不支持热迁移;
场景:深度学习、人工智能、高性能计算等;
2. vGPU(GPU虚拟化)
在vGPU实现方案上,由于目前市场上GPU厂商分为NVIDIA、AMD,因此在对接不同品牌GPU设备时所采用的vGPU技术方案也不一样。
3. AMD vGPU方案
首先我们来看一下AMD vGPU的方案,其设计遵循了SRIOV规范,这个规范定义了以标准化的方式支持实现多个云主机共享一个PCI设备:可理解为一个PCI设备在物理层面上被切分为多个,并且每个都是符合PCI标准的PCI设备。而由于这个能力,切分后的每个单元都可以再通过PCI透传的方式分别提供给多个云主机使用。GPU作为一种典型PCI设备,自然也支持以上技术的实现,AMD vGPU方案就是如此。
在了解完原理之后,我们来看一下这种GPU虚拟化方案的优缺点:
优点:与GPU透传方案相比,性能损耗较小;功能兼容性好(如2D/3D/图形渲染/OpenCL等功能)、支持加载vGPU设备的云主机热迁移(技术上支持,云厂商各自实现情况不同);
缺点:硬件设计相对复杂同时硬件更新周期长、云平台无法有效获取设备监控信息;
场景:在虚拟桌面中运行工业设计、图形渲染,或人工智能教学科研环境中;
4. NIVDIA vGPU方案
区别于AMD vGPU所使用SR-IOV方案,Mediated Passthrough(分片透传)是NIVDIA vGPU方案所使用的关键技术。Mediated Passthrough是一种完全软件定义的GPU虚拟化解决方案,其技术原理主要为:对于与GPU性能相关的访问直接透传给云主机,把与性能无关功能的相关访问在Mdev模块中来模拟实现。Mdev是此方案的关键技术,简单解释一下,Mdev即mediated 设备框架,能够驱动VFIO框架及接口支持虚拟PCI设备,因此也就能够完全基于软件实现,将宿主机上的物理GPU切分成为多个虚拟GPU设备并进行共享。
同样,我们也来看一下此方案的优缺点:
优点:与GPU透传方案相比性能损耗较小;软件定义更灵活(如更新迭代速度更快不受限于硬件);云平台可以获取到vGPU设备监控信息;支持加载vGPU设备的云主机热迁移(技术上支持,云厂商各自实现情况不同);
缺点:依赖于GPU硬件厂商开发Mdev驱动;功能上由于是Mdev模拟,所以有所取舍。
总结
1. 区别于CPU面向通用计算场景,GPU侧重于简单、重复性、并行、矩阵等计算场景,如图形渲染、视频编解码、并行计算场景;
2. 在云中使用GPU设备主要有两种技术实现方案,GPU透传与vGPU(GPU虚拟化);
3. GPU透传方案将GPU设备透传给云主机使用,云主机独占该GPU资源,性能好、功能兼容强,适合深度学习、人工智能、高性能计算等重负载场景;
4. vGPU是一种GPU虚拟化方案,GPU资源能够被切分后分配给多个云主机共享使用。vGPU方案中NIVDIA/AMD技术实现方式有所不同,NIVDIA是软件虚拟化方案、AMD是硬件虚拟化方案,两种方案性能相当;vGPU典型场景适合应用于虚拟桌面中运行工业设计、图形渲染或人工智能教学科研等轻负载场景;
5. ZStack 3.5.0版本开始对以上GPU方案均支持;
视频演示如下:https://v.qq.com/x/page/n0904rzzd2i.html?pcsharecode=FGPCS08Y&sf=uri