详细的GPU虚拟化技术

发布者:上海IT外包来源:http://www.lanmon.net点击数:1598

GPU的概念也与计算机系统中的CPU有关。由于人们对图形的需求越来越大,特别是在家庭系统和游戏爱好者中,传统的CPU无法满足现状,因此有必要提供特殊的处理。图形的核心处理器。
GPU是硬件图形卡的“核心”,其状态相当于CPU在计算机系统中的作用。同时,GPU还可以用作区分2D硬件图形卡和3D硬件图形卡的重要基础。通过使用CPU处理特征和3D图像,2D硬件图形主要被称为“软加速”。
3D硬件图形卡将功能和3D图像的处理能力集中到硬件图形卡中,称为“硬件加速”。目前市场上的大多数显卡都是由NVIDIA和ATI生产的。
1.1,为什么你需要有一个专用的GPU来处理图形工作,CPU不是?
GPU是并行编程模型,它与CPU的串行编程模型完全不同。因此,CPU上的许多优秀算法无法直接映射到GPU,GPU结构相当于共享存储多处理结构,因此它是在GPU上设计的。并行程序与CPU上的串行程序完全不同。 GPU主要使用立方纹理纹理贴图,硬件T&L,顶点混合,凹凸贴图贴图和纹理压缩,以及双纹理四像素256位渲染引擎。
由于图形渲染任务的高度并行性,GPU可以简单地通过添加并行处理单元和存储器控制单元来有效地增加处理能力和存储器带宽。
GPU设计与CPU完全不同。 CPU设计用于处理常见任务,因此它具有复杂的控制单元。 GPU主要用于处理计算密集型和逻辑性较低的计算任务。可以使用GPU中可用的处理单元。更多作为执行单位。因此,与CPU相比,GPU在具有大量重复数据集操作和频繁存储器访问的应用场景中具有无可比拟的优势。
1.2,如何使用GPU?
有两种方法可以使用GPU。一个是开发的应用程序通过公共图形库接口调用GPU设备,另一个是GPU本身提供API编程接口,应用程序通过GPU提供的API编程接口直接调用GPU设备。1.2.1,通用图形库
GPU用于通用图形库。现有的图形库(如OpenGL或Direct3D)用于编写着色语言方法,以控制GPU的内部渲染器以完成所需的计算。 。
目前,业界公认的图形编程接口主要包括OpenGL和DirectX接口。 OpenGL是目前可用于开发交互式便携式2D和3D图形应用程序的首选环境,是当今最广泛使用的图形应用程序标准。 OpenGL是SGI开发的计算机图形处理系统。它是图形硬件的软件界面。 GL是图形库。 OpenGL应用程序不需要关注操作环境所在的操作系统和平台。
只要它处于遵循OpenGL标准的任何环境中,它将产生相同的可视化。与OpenGL类似,DirectX(Directe Xtension)也是一个图形API。它是由Microsoft创建的多媒体编程接口,已成为Microsoft Windows的标准。为了满足GPU应用的需求,DirectX根据GPU新产品功能的扩展和进展及时定义了新版本,其功能几乎与GPU提供的功能同步。
1.2.2,GPU自己的编程接口
GPU本身提供的编程接口主要由提供GPU设备的两家公司提供,包括2006年的NVIDIA CUDA框架和AMD(ATI)的CTM(近金属)框架(备注,最初由ATI制作)GPU设备,后来被AMD收购)。 AMD的CTM框架已不再使用,主要是AMD(ATI)在2007年推出了ATI Stream SDK架构。2008年,AMD(ATI)完全转向开放的OpenCL标准,因此AMD(ATI)没有独立,专有的通用 - 用途计算框架。
2007年,NVIDIA发布了CUDA(计算统一设备架构)特定的通用计算框架。使用CUDA的通用计算编程消除了对图形API的需求,但使用了与C非常相似的方法。在CUDA编程模型中,有一个称为主机的CPU和几个称为设备或协处理器的GPU。在这个模型中,CPU和GPU协同工作并履行其职责。 CPU负责更多逻辑事务处理和串行计算,而GPU则专注于执行线程并行处理任务。 CPU和GPU各自在主机侧具有单独的存储器地址和存储器,在设备侧具有视频存储器。一些大规模应用,例如石油勘探,流体动力学模拟,分子动力学模拟,生物计算,音频和视频编解码器以及天文计算,通常在CUDA框架中使用。
由于开发成本和兼容性,我们的大多数企业级应用程序都使用通用图形库来进行GPU设备的开发调用。
1.3,GPU如何工作?
GPU有两个主要组件用于通用计算和图形处理,:顶点处理器和片段处理器。这种处理器具有流处理器的模式,即,可以读取和写入不具有大容量的闪存/存储器,并且通过直接在芯片上使用临时寄存器来操作流数据。
当GPU用于图形处理时,GPU内的顶点渲染,像素渲染和几何渲染操作可以通过流处理器完成。从图中可以看出,GPU内部的所有流处理器都相当于一个多核处理器,数据可以在不同流处理器的输入和输出之间轻松移动,而GPU调度器和控制逻辑可以动态分配流处理器以执行相应的顶点,像素,几何等,因为流处理器是通用的。
第二,GPU虚拟化
在我们的主题开头,虚拟机系统中有三种图形处理方法:一种是采用虚拟显卡,另一种是直接使用物理显卡,最后是GPU虚拟化。
2.1,虚拟图形
第一个使用虚拟图形是当前主流虚拟化系统的选择,因为专业图形硬件很昂贵。目前使用虚拟图形卡的这些技术包括:
虚拟网络计算VNC(虚拟网络计算)
Xen虚拟帧缓冲区
VMware虚拟图形显示处理器GPU(图形处理单元)
独立于虚拟机管理器的图形加速系统VMGL(VMM独立图形加速)。
VNC(虚拟网络计算)基本上属于显示系统,这意味着它可以通过网络将完整的窗口界面传输到另一台计算机的屏幕。 Windows服务器中包含的“终端服务器”是属于此原则的设计。 VNC由AT&T Labs开发,根据GPL(通用公共许可证)获得许可,任何人都可以免费使用。 VNC软件由两部分组成:VNC服务器和VNC查看器。用户必须先在远程控制的计算机上安装VNC服务器,然后才能在主机上执行VNC查看器远程控制。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部