当前位置:首页 > 述职报告 > CPU和GPU [GPU?CPU?]
 

CPU和GPU [GPU?CPU?]

发布时间:2019-06-26 03:55:47 影响了:

  装机配电脑,谁都希望拥有一个强劲的处理器(CPU)和一块给力的显卡(GPU),这两个部件决定了电脑的图形运算能力与配置水平的高低。当别人高谈阔论CPU与GPU,你有没有傻傻分不清?
  算术逻辑单元:主要完成数据的算术运算、逻辑运算、地址运算和移位操作。
  控制单元:不具备运算功能,只负责对指令进行翻译,并发出执行每条指令的控制信号。
  存储单元:用于保存运算过程中的中间数据。
  浮点数:计算机中用于近似表示某个实数,用二进制的科学计数法实现。浮点数比整数能表示的数值范围大很多,但没有整数精确。通常用于表示小数或者很大的数。
  CPU,为通用计算而生
  CPU(Central Processinq Unit),你不仅知道,而且很可能见过,电脑机箱内顶一把巨型散热风扇的就是(芯片只有指甲盖大小)。作为计算机的运算核心和控制核心,其基本结构由算术逻辑单元、控制单元和存储单元组成。这三部分相互配合,便可进行分析、判断、运算,并控制计算机各部分协调工作。
  自CPU诞生起,它就担负着电脑中所有类型任务的计算。最初,CPU只能进行整数运算,对于浮点数的运算则是通过软件模拟,所以早期的CPU计算浮点数效率很低。随着时代的发展,CPU中就新增了浮点数运算单元,采用硬件计算代替缓慢的软件模拟。再往后,为了适应多媒体技术的发展,CPU厂商又向CPU中加入了优化多媒体浮点运算的扩展指令(如MMX、SSE、SSE2等)计算单元。
  真正让CPU崩溃的是3D图像的绘制。上世纪90年代初,3D游戏开始普及,其庞大的图形运算量让当时的CPU力不从心。绘制一帧复杂的三维场景动辄需要运算上万个三角形顶点以及上亿的像素。绘制过程中几乎所有的运算都是浮点数运算,如果都让CPU内部那块小小的浮点运算单元来独揽,就只有把游戏当幻灯片了。没办法,该给CPU找个帮手了。
  图形运算,让专业的来!
  面对3D图像绘制那令人暴走的运算量,终于有人忍不住了。1995年,PC领域第一款用于协助CPU处理3D图像的显卡3dfx Voodoo(巫毒)诞生了。“巫毒”不仅革命性地推动了电脑图形显示,还启发了很多其他的显卡生产企业,NVIDIA(英伟达)便是其中之一。
  1999年8月,NVIDIA开发了3代“TNT”显卡之后,发表了具有跨世纪意义的产品GeForce256,正式提出了GPU(Graphics Processing Unit,图形处理器)的概念,成功将CPU从繁重的3D图形运算中解放出来。当然,由于时代与技术的限制,这时的GPU均采用固定的硬件算法来完成计算,因此画面效果比较单一,束缚了开发人员的创造性。
  2001年,NVIDIA公司的GeForce3首先引入了可编程的顶点着色器(VetexShader)单元,从而将3D绘制中的“几何坐标变换”步骤变成了可以灵活定制的部分。紧接着在2002年,可编程的像素着色器(Pixel Shader)单元也加入了GPU,从而将3D绘制中的“像素着色&光照”步骤也变成了可以灵活定制的部分。这两个单元的加入使得丰富的变换和光照效果得以实现,原本呆板的画面也变得生动逼真起来。
  时光荏苒,N系列显卡成为今日显示芯片世界的王者,以总快一步的方式引领着显卡发展。NVIDIA今天取得的成绩,可以说是基础于多年积累的GPU开发实力。
  早期的GPU采用的是专用的硬件代替CPU的软件计算,比CPU跑得快是容易理解的。但最新的GPU内部已经采用了类似CPU的可编程软件运算,那为何CPU不能完成的任务,它却能轻松胜任呢?
  原因在于CPU和GPU是为了不同的计算任务而设计的。跑在CPU上的指令通常是一些前后有依赖关系的指令,所以CPU在设计上主要为执行串行指令(数据在一个窗口排队)而优化。而3D图形计算是一种比较特殊的运算,每个需要计算的像素(或顶点)之间没有依赖关系,先计算哪一个,后计算哪一个完全不会影响结果(数据在很多个窗口排队),因此GPU在设计上都是针对大规模并行运算而优化的。虽然现在的CPU有双核、四核,但如果把GPU的一个流处理器也看作一个“核”,GPU的“核”数量就已经不再停留在个位数,而是几百甚至上千个。
  其次,在同样面积的芯片上,为了更快地执行串行指令,CPU更多地放置了多级缓存和复杂的控制单元。而GPU为了实现更多数据的并行,则更多的是放置运算单元。
  正因为设计上的偏重不同,才造就了GPU在处理并行数据时的高效表现。相对的,当要处理分支跳转很多的串行指令时,GPU就完全比不过CPU了。
  走向融合
  GPU诞生至今,已经进化为可编程的通用并行处理器,不安心于3D图像绘制,能很好地完成视频编解码、物理运算等大规模的数据处理,CPU的处境似乎岌岌可危。在未来的发展中,GPU会变得更并行,更通用;而CPU也会在增强串行和整数运算的同时增加更多的核心。两者的能力正变得越来越接近,或许它们会合二为一,到那时也就分不出谁是GPU谁是CPU了吧!
  3D图像绘制法
  让CPU崩溃的3D图像的大致步骤如下所示。需要强调的是:这个绘制单幅画面的过程每秒钟得重复24次以上,我们才能看到连续流畅的画面。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3