1gpu和cpu的概念
1CPU(中央处理器-中央处理单元)是一种超大规模集成电路,是计算机的计算核心和控制单元。它的功能主要是解释计算机指令和处理计算机软件中的数据。
2GPU(Graphics Processing Unit-图形处理单元)是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像 *** 作的微处理器。)
二、gpu和cpu的区别
1缓存
CPU有大量的缓存结构。目前主流CPU芯片都有四级缓存。这些高速缓存结构消耗大量晶体管,运行时需要大量功率。
GPU的缓存很简单。目前主流的GPU芯片最多有两层缓存,GPU可以利用晶体管的空间和能耗来做ALU单元,所以GPU比CPU效率高。
2响应方式
CPU要求实时响应,对单个任务的速度要求很高,所以需要使用多层缓存来保证单个任务的速度。
GPU安排所有任务,然后批量处理,对缓存要求相对较低。
3浮点运算
除了浮点整形,CPU还有其他指令集的负载,如多媒体解码和硬件解码,所以CPU是通用的。CPU注重单线程的性能。要保证指令流不中断,需要在控制部分消耗更多的晶体管和能量,所以CPU在浮点计算中分配的功耗会减少。
GPU基本只做浮点运算,所以设计结构简单,所以能做的更快。GPU注重的是吞吐量,一条指令可以驱动更多的计算。与GPU相比,它在控制部分消耗的能量更少,所以电节省下来的资源可以用于浮点计算。
4应用方向
CPU擅长的 *** 作系统等应用需要快速响应实时信息,并针对延迟进行优化,因此需要在分支预测、乱序执行、低延迟缓存等控制部分使用晶体管数量和能耗。
GPU适用于可预测性高、相似 *** 作数量大、高延迟高吞吐量的架构 *** 作。
在说明两者之间的区别之前,我们现在了解一下什么事CPU,什么事GPU,两者各代表什么。CPU即中央处理器,GPU即图形处理器。其次,要解释两者的区别,要先明白两者的相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元。一句话,两者都为了完成计算任务而设计。两者的区别在于存在于片内的缓存体系和数字逻辑运算单元的结构差异:CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU)。从结果上导致CPU擅长处理具有复杂计算步骤和复杂数据依赖的计算任务,如分布式计算,数据压缩,人工智能,物理模拟,以及其他很多很多计算任务等。GPU由于历史原因,是为了视频游戏而产生的(至今其主要驱动力还是不断增长的视频游戏市场),在三维游戏中常常出现的一类 *** 作是对海量数据进行相同的 *** 作,如:对每一个顶点进行同样的坐标变换,对每一个顶点按照同样的光照模型计算颜色值。GPU的众核架构非常适合把同样的指令流并行发送到众核上,采用不同的输入数据执行。在2003-2004年左右,图形学之外的领域专家开始注意到GPU与众不同的计算能力,开始尝试把GPU用于通用计算(即GPGPU)。之后NVIDIA发布了CUDA,AMD和Apple等公司也发布了OpenCL,GPU开始在通用计算领域得到广泛应用,包括:数值分析,海量数据处理(排序,Map-Reduce等),金融分析等等。
简而言之,当程序员为CPU编写程序时,他们倾向于利用复杂的逻辑结构优化算法从而减少计算任务的运行时间,即Latency。当程序员为GPU编写程序时,则利用其处理海量数据的优势,通过提高总的数据吞吐量(Throughput)来掩盖Lantency。目前,CPU和GPU的区别正在逐渐缩小,因为GPU也在处理不规则任务和线程间通信方面有了长足的进步。另外,功耗问题对于GPU比CPU更严重。
总的来讲,GPU和CPU的区别是个很大的话题,甚至可以花一个学期用32个学时十几次讲座来讲,所以如果提问者有更具体的问题,可以进一步提出。我会在我的知识范围内尝试回答。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)