gpu算力调度分配
A. CPU跟GPU是怎么协调的,
CPU和GPU在今天计算机中的作用和位置(作者:赵军)
CPU的作用: CPU 作为一台计算机的核心,它的作用被证明是无法替代的,过去是这样,今天依然是这样,将来应该还是这样,只不过可能被增加和赋予了更多更复杂的功能。
为什么CPU能够胜任计算机的核心,应付自如地控制一台复杂而精密的电脑系统 ?为什么CPU可以当之无愧地被称为电脑之“脑”而不是其他部件?这是因为CPU主要是面向执行操作系统、系统软件、调度和运行各式各样应用程序以及协调和控制整个计算机系统而设计的。CPU具有通用性的特点,也就是“全才”或者“通才”,什么都要会,当然这并不表示CPU每项任务都具有顶尖水平。
集成了百万计,千万计,甚至数亿计晶体管的CPU芯片,除了具有计算能力的电路和结构,还拥有控制和指挥其他硬件电路相配合的中央控制器,现代CPU还拥有更多具有“思维”能力的电路和结构,如逻辑判断,推测执行,预测执行等等。只有具有了这些特质,CPU才可能胜任电脑之“脑”的工作。
那么CPU靠什么来“思维、指挥和控制”呢?答案是指令集。指令集是CPU能够处理的全部指令的集合,没有指令集的芯片不可能被称为是CPU,指令集可是说是CPU的思维语言,是CPU的“智能属性”,也是它有别于其他芯片的根本属性。类似于人脑,任何人的思维过程都有语言的参与,中国人用中文思考,美国人用英文思考,如果习惯于讲方言,人们甚至用方言思考,人们在本能或者下意识状况下都是用自己最熟悉的语言思考。指令集就是电脑之脑CPU的语言,CPU就是用指令集来“思考”。
大家所熟悉的x86指令集就是我们今天大多数人使用的CPU的语言,x86指令集是由英特尔公司发明、开发并不断增强和完善的。所有英特尔架构的CPU和兼容CPU都采用x86指令集。任何程序不管采用什么高级程序设计语言编写的,都需要通过高级语言编译程序或者解释程序先翻译成 x86指令才可以被CPU执行。
如C语言,C++语言,Pascal语言等等高级程序语言都是供编程人员使用的,人们可以把自己的“思维和指令”通过高级程序设计语言表达出来,通过编译程序或者解释程序转换成CPU可以明白的指令,CPU就可以遵照人们的“思维和指令”一丝不苟、不折不扣地执行。其实编译程序和解释程序也是由CPU来执行的。
有了指令系统,CPU就可以通过它来控制、指挥、协调和调度整个计算机系统的各个子系统,让它们相互配合、有条不紊的完成各种各样的任务。
GPU的作用:除了CPU(中央处理单元,也叫中央处理器),计算机系统中还有众多的PU——处理单元,统称xPU。由于它们不具有CPU的通用性,而具有专用性,习惯上它们都叫控制器或芯片。如内存控制器,中断控制器,以太网网卡芯片,USB控制器等等,虽然这种叫法不常见,但是我们依然可以把它们也叫成: Memory PU —— 内存处理单元 Interrupt PU —— 中断处理单元 Ethernet PU —— 以太网处理单元 USB-PU —— USB 处理单元
所以现在图形计算能力比较强的图形芯片被称为GPU,即“图形处理单元”就不足为奇了。GPU具有专用性的特点,擅长图形计算和处理。
GPU的前身就是显示卡的主芯片。显示卡和显示器等等组成计算机系统中的图形子系统。最早的显示卡功能比较简单,所以也叫显示器适配 卡(简称显卡),它是连接主机与显示器的接口卡。现在的显卡都是3D图形加速卡,主芯片也被冠以GPU的新名字了。
今天显卡的主要作用并没有发生根本的变化,其作用还是将CPU的输出信息和指令转换成字符、图形和颜色等信息,传送到显示器上显示。不过,今天的显卡在执行CPU发出的图形指令时具有更强的执行能力和图形计算能力。下面我就来给大家解释一下。
早期显卡的图形处理能力非常弱,基本上只是起到传递的作用,CPU如果想在图形方式下画个简单的图形,如正方形,园等线条图形,都需要把组成图形的每个点需要显示的位置、点的大小、颜色都一一告诉显卡,显卡然后按部就班在显示器上画出来。
随着操作系统和应用程序对复杂且高质量的图形要求越来越高,CPU专职来做这些图形处理工作就力不从心了,也得不偿失,而且也会造成CPU的效率低下。因为CPU的设计是用来处理系统任务和程序调度的,不是为图形处理优化的。
于是图形加速功能就被赋予到新的显卡当中(现在主芯片可以叫GPU了),支持2D图形加速的显卡出现了,它大大缓解了CPU的图形处理压力。有了2D图形加速功能的显卡,CPU如果想画二维图形,现在只需要发个指令给显卡,如“在坐标位置(x, y) 画个长和宽为a * b大小的长方形”,显卡的图形加速器(GPU)就可以迅速在显示器上指定位置画出大小相符的图形,画完后GPU就通知CPU,“我画完了”,然后等待CPU发出下一条图形指令。
现在的GPU除了具有2D 图形加速功能,更多的是在不断加强3D图形加速的能力。 同样的道理,GPU也把繁复的3D图形处理的工作从CPU分担过来,CPU现在只要发个指令,如“画个圆球”,给GPU就可以了,GPU完成三维图形的绘制,然后通知CPU完成的情况,等待下一条指令。
有了图形加速器,CPU就从这类图形处理的任务中解放出来,可以执行其他更多的系统任务,这样就提高计算机的整体性能。
不过,并不是所有和3D图形处理相关的运算一下子都被GPU接管过去,“任务”的交接也是逐步进行的,对于GPU不能实现或者尚未实现的计算还是“有劳”CPU来完成。例如,图形的几何坐标变化和光照模型的计算(T&L)在主流的GPU都实现了,以前都是由CPU来完成的。对于当前一些集成在芯片组中的GPU,如果没有T&L的加速,仍然用“软件”方式实现T&L计算——就是CPU来完成。另外,3D图形的着色计算也逐渐转移从CPU转移到GPU中,如顶点着色和像素着色 (Vertex Shader & Pixel Shader)。
从上面的简单介绍我们可以看出,CPU和GPU工作的重点不一样,CPU担当的责任要大的多,面对的是整个计算机系统,要照顾到方方面面,除了要保证整个系统高速运行,还要确保系统稳定运行。任何错误都可能会是致命的,所以CPU很难做到“专心致志”。它会经常被打断,停下手头的工作,去处理正常的或者非正常的紧急任务, 否则系统就会崩溃。相比CPU而言,GPU的责任就要轻的多,图形计算如果出了错,并不会影响程序本身的运行,最多是屏幕上显示的图形错位了或者是颜色乱了等等,而且GPU不会为图形程序运行的结果负责。
没有GPU加速2D和3D的年代,CPU包揽了和图形计算与加速相关的所有活,“活”的不轻松,今天这些工作中的很多都由GPU来代劳了,CPU被解放出来把宝贵的CPU运算和控制资源更多的用于执行系统层面的核心任务以及其他非GPU类的应用上来。GPU相当于CPU的一位具有图形计算和处理专长的高级助理。
对于非图形方面的任务,CPU需要的是其他专长的高级助理。GPU今天在计算机系统中的贡献主要是高端3D游戏的三维图形方面的,对于其他更广泛的应用,它是无能为力的。如系统安全方面的加密解密,多媒体数字内容的加工和处理,系统的虚拟化,游戏中的人工智能等等举不胜举。
将来有机会,我会具体介绍一些“CPU和GPU擅长和不擅长的各个方面”。
B. 请问下什么是GPU的浮点运算能力主要干什么的
GPU计算能力强主要是因为他的大部分电路都是进行算术计算的单元,实际上加法器乘法器这些都是相对较小的电路,即使做很多这种运算单元,都不会占用太多芯片的面积。而且由于GPU的其他部件占得面积小,它也可以有更多的寄存器和缓存来存储数据。CPU之所以那么慢,一方面是因为有大量的处理其他程序如分支循环之类的单元,并且由于cpu处理要求有一定的灵活性,那么cpu的算术逻辑单元的结构也要复杂很多。简单的说,就为了提高分支指令的处理速度,cpu的很多部件都用于做分支预测,以及在分支预测错误的时候,修正和恢复算术逻辑单元的结果。这些都大大的增加了器件的复杂度。
另外,实际上现在的CPU的设计上也在向GPU学习,就是增加并行计算的,没有那么多控制结构的浮点运算单元。例如intel的sse指令集,到目前可以实现同时进行4个浮点运算,而且增加了很多寄存器 另外,想学习GPU计算的话,去下载一个CUDA的SDK,里面有很详细的说明文档
C. 浪潮AI最新升级的AIStation 3.0平台算力调度能力怎么样
AIStation 3.0平台是浪潮AI最新升级的AI资源平台,在AI算力调度方面已全面支持最新NVIDIA® Ampere架构芯片,支持GPU多实例的灵活划分,用户可以通过管理界面动态调整GPU算力组合,从单卡多实例的细粒度划分,到多机多卡的大规模并行计算,帮助用户最大限度释放算力资源。另外,还将提供更弹性的算力运行策略,实现运行环境与运行资源的隔离,开发者可以在不改变运行环境的情况下按需对资源进行伸缩,让开发者不必关注底层算力技术,算力随用随取,按需分配,快速响应,进一步提高开发训练效率。
D. cpu+gpu)调度是不是有问题
CG为Computer Graphics (电脑图形)的英文缩写,核心意思为数码图形。
随着时代发展,CG的含义有所拓展,但是依然没有超出这个核心意思。
CG通常指的是数码化的作品,一般服务于以下几种行业:广告、影视、动画、漫画和游戏业。
内容是纯艺术创作到广告设计,可以是二维三维、静止或动画。
随着以计算机为主要工具进行视觉设计和生产的一系列相关产业的形成。
现在CG的概念正随着应用领域的拓展在不断扩大。
如今的CG一词,既包括技术也包括艺术,几乎囊括了当今电脑时代中所有的视觉艺术创作活动,如平面印刷品的设计、网页设计、三维动画、影视特效、多媒体技术、以计算机辅助设计为主的建筑设计及工业造型设计等。
国际上习惯将利用计算机技术进行视觉设计和生产的领域通称为CG——由CG和虚拟真实技术制作的媒体文化,都可以归于CG范畴。
CG行业已经形成一个以技术为基础的可观的视觉艺术创意型经济产业。
从业人员: >就目前而言,CG的从业人员主要集中在原先的计算机专业和美术专业人员上,有着相对成熟的技术和艺术创作经验,是中国CG行业的先锋。
全国CG行业专业从业人员总数不超过10万。
CG应用领域: 主要集中在影视制作、电脑游戏制作、建筑效果图制作、广告设计以及个人艺术创作五个方面。
影视制作: 国内将CG运用于影视制作的公司主要有上海电影制片厂、上海美术电影制片厂、北京紫禁城电影制作公司等几个较有实力的影视制作公司,另外还有北京DBS(深蓝的海)数码影视制作公司等专业数码影视制作公司也从事电影、电视中电脑特技镜头的制作。
电脑游戏软件: 这一领域的代表公司是台湾大宇公司、北京新天地、晶合,上海育碧、深圳金智塔、珠海金山公司的下属西山居游戏制作室等。
这些企业目前在中国CG制作中处于龙头地位,代表了中国CG行业的领先水平。
虽然与国外的水平还有相当的差距,但是发展速度相当快。
建筑效果图: 广告行业也是目前促进中国CG发展的行业之一,有相当一部分CG艺术家都是从事这一领域的工作。
代表公司是北京的水晶石公司,它在上海、广州开设有分公司。
CG一般可以分成四个主要领域:CG艺术与设计 ,游戏软件 ,动画和漫画
E. gpu加速和gpu运算 区别
GPU加速只是GPU通用计算的一种应用而已,可以加速你的日常应用,包括解压缩、模拟等,但GPU计算是其基础。
Nvidia是目前GPU通用计算的领军企业,但不代表只有Nvidia的GPU才可以。AMD的一样可以。AMD-ATI最早的通用计算平台叫Stream,只不过支持力度没那么大,不像Nvidia CUDA那么风生水起而已。
F. win10的Gpu硬件加速对中低端显卡加速效果如何啊
指的是win10自己的图形界面使用gpu渲染吧,以前win7的aero界面是gpu渲染的,win8删掉了改回cpu渲染,这是又改回来了;
桌面图形分摊了显卡的计算力自然游戏掉帧了;网页链接
win10硬件加速GPU计划好像没什么优化?(甚至还有负优化?)
笔记本打开了这个硬件加速GPU计划,玩ow帧数并没有增加,反而还掉帧
具体参考:(其实简单理解:交操作系统--解决系统UI的卡顿)
现在很多程序都会调用GPU
到了应用程序开始普遍利用GPU加速的年代,
比如说Windows要直接用GPU加速整个UI界面的渲染了,那么再用这个全局任务队列就会有问题,比如渲染系统界面的任务前面排了一个其他程序提交的任务,那么GPU会先处理掉那个任务再回头来处理系统的需求,这会造成整个系统UI的卡顿。为了妥善地安排GPU工作的优先级,势必需要一个新的任务调度器,由它负责安排GPU任务的工作优先级。
那么WDDM就引入了那么一个任务调度器,它以高优先级线程的形式一直运行在CPU上,负责协调、优先处理和调度各种应用程序提交的工作。
G. 关于GPU的问题!
GPU概念
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。
GPU的作用
GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。
于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。
简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。
GPU与DSP的区别
GPU在几个主要方面有别于DSP架构。其所有计算均使用浮点算法,而且目前还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。
尽管有上述约束,但是GPU还是可以有效地执行多种运算,从线性代数和信号处理到数值仿真。虽然概念简单,但新用户在使用GPU计算时还是会感到迷惑,因为GPU需要专有的图形知识。这种情况下,一些软件工具可以提供帮助。两种高级描影语言CG和HLSL能够让用户编写类似C的代码,随后编译成碎片程序汇编语言。Brook是专为GPU计算设计,且不需要图形知识的高级语言。因此对第一次使用GPU进行开发的工作人员而言,它可以算是一个很好的起点。Brook是C语言的延伸,整合了可以直接映射到GPU的简单数据并行编程构造。经 GPU存储和操作的数据被形象地比喻成“流”(stream),类似于标准C中的数组。核心(Kernel)是在流上操作的函数。在一系列输入流上调用一个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心体。Brook还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘积计算。Brook还完全隐藏了图形API的所有细节,并把GPU中类似二维存储器系统这样许多用户不熟悉的部分进行了虚拟化处理。用Brook编写的应用程序包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4执行条件下,许多此类应用的速度提升高达7倍之多。
对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。
H. 如何使用单一GPU
GPU越来越强大,GPU为显示图像做了优化之外,在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的,也就是超于游戏,使得GPU能够发挥其强大的运算能力。
1、虽然我们看到CPU和GPU在运算能力上面的巨大差距,但是我们要看看他们设计之初所负责的工作。CPU设计之初所负责的是如何把一条一条的数据处理玩,CPU的内部结构可以分为控制单元、逻辑单元和存储单元三大部分,三个部分相互协调,便可以进行分析,判断、运算并控制计算机各部分协调工作。其中运算器主要完成各种算术运算(如加、减、乘、除)和逻辑运算( 如逻辑加、逻辑乘和非运算); 而控制器不具有运算功能,它只是读取各种指令,并对指令进行分析,作出相应的控制。
2、通常,在CPU中还有若干个寄存器,它们可直接参与运算并存放运算的中间结果。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,从控制单元开始,CPU就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。数据从输入设备流经内存,等待CPU的处理。
3、而GPU却从最初的设计就能够执行并行指令,从一个GPU核心收到一组多边形数据,到完成所有处理并输出图像可以做到完全独立。由于最初GPU就采用了大量的执行单元,这些执行单元可以轻松的加载并行处理,而不像CPU那样的单线程处理。另外,现代的GPU也可以在每个指令周期执行更多的单一指令。例如,在某些特定环境下,Tesla架构可以同时执行MAD+MUL or MAD+SFU。