中英 网站模板 带手机版,南京网站建设cnee,兰州做门户网站,网站规划与开发实训室建设从它们执行运算的速度与效率的方面来探讨这个论题。CPU和GPU都是具有运算能力的芯片#xff0c;
CPU更像“通才”——指令运算(执行)为重数值运算#xff0c;
GPU更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”… 从它们执行运算的速度与效率的方面来探讨这个论题。CPU和GPU都是具有运算能力的芯片
CPU更像“通才”——指令运算(执行)为重数值运算
GPU更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”。芯片的速度主要取决于三个方面微架构主频和IPC(每个时钟周期执行的指令数)。1微架构从微架构上看CPU和GPU看起来完全不是按照相同的设计思路设计的当代CPU的微架构是按照兼顾“指令并行执行”和“数据并行运算”的思路而设计就是要兼顾程序执行和数据运算的并行性、通用性以及它们的平衡性。CPU的微架构偏重于程序执行的效率不会一味追求某种运算极致速度而牺牲程序执行的效率。CPU微架构的设计是面向指令执行高效率而设计的因而CPU是计算机中设计最复杂的芯片。和GPU相比CPU核心的重复设计部分不多这种复杂性不能仅以晶体管的多寡来衡量这种复杂性来自于实现如程序分支预测推测执行多重嵌套分支执行并行执行时候的指令相关性和数据相关性多核协同处理时候的数据一致性等等复杂逻辑。GPU其实是由硬件实现的一组图形函数的集合这些函数主要用于绘制各种图形所需要的运算。这些和像素光影处理3D坐标变换等相关的运算由GPU硬件加速来实现。图形运算的特点是大量同类型数据的密集运算——如图形数据的矩阵运算
GPU的微架构就是面向适合于矩阵类型的数值计算而设计的大量重复设计的计算单元这类计算可以分成众多独立的数值计算——大量数值运算的线程而且数据之间没有像程序执行的那种逻辑关联性。GPU微架构复杂度不高尽管晶体管的数量不少。从应用的角度看如何运用好GPU的并行计算能力主要的工作是开发好它的驱动程序。GPU驱动程序的优劣很大程度左右了GPU实际性能的发挥。因此从微架构上看
CPU擅长的是像操作系统、系统软件和通用应用程序这类拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务。它的并行优势是程序执行层面的程序逻辑的复杂度也限定了程序执行的指令并行性上百个并行程序执行的线程基本看不到。
GPU擅长的是图形类的或者是非图形类的高度并行数值计算GPU可以容纳上千个没有逻辑关系的数值计算线程它的优势是无逻辑关系数据的并行计算。2主频另外GPU执行每个数值计算的速度并没有比CPU快从目前主流CPU和GPU的主频就可以看出了CPU的主频都超过了1GHz2GHz甚至3GHz而GPU的主频最高还不到1GHz主流的也就500~600MHz。要知道1GHz 1000MHz。所以GPU在执行少量线程的数值计算时并不能超过CPU。目前
GPU数值计算的优势主要是浮点运算它执行浮点运算快是靠大量并行但是这种数值运算的并行性在面对程序的逻辑执行时毫无用处。3IPC(每个时钟周期执行的指令数)这个方面CPU和GPU无法比较因为GPU大多数指令都是面向数值计算的少量的控制指令也无法被操作系统和软件直接使用。如果比较数据指令的IPCGPU显然要高过CPU因为并行的原因。但是如果比较控制指令的IPC自然是CPU的要高的多。原因很简单CPU着重的是指令执行的并行性。另外目前有些GPU也能够支持比较复杂的控制指令比如条件转移、分支、循环和子程序调用等但是GPU程序控制这方面的增加和支持操作系统所需要的能力CPU相比还是天壤之别而且指令执行的效率也无法和CPU相提并论。最后总结一下CPU擅长的操作系统系统软件应用程序通用计算系统控制等等游戏中人工智能物理模拟等等3D建模-光线追踪渲染虚拟化技术——抽象硬件同时运行多个操作系统或者一个操作系统的多个副本等等。GPU擅长的
图形类矩阵运算非图形类并行数值计算高端3D游戏。综上所述在一台均衡计算的计算机系统中CPU和GPU还是各司其职除了图形运算GPU将来可能主要集中在高效率低成本的高性能并行数值计算帮助CPU分担这种类型的计算提高系统这方面的性能。而当前的典型应用还是高端3D游戏一个高效的GPU配合一个高效的CPU3D游戏的整体效率才能得到保证。“高端3D游戏只需要高端显卡”或者“高端3D游戏只需要CPU”都是无稽之谈。