中央处理单元 (CPU) 是延迟优化的通用途理器,旨在按顺序处理各种不同的任务,而图形处理单元 (GPU) 是吞吐量优化的专用途理器,专为高端并行计算而设计。下面,小编就大家比较下GPU与CPU。
一、甚么是CPU?
中央处理器 (CPU) 是计算机的大脑。CPU的主要工作是通过 fetch-decode-execute循环履行各种指令,以管理计算机的各个部份并运行各种计算机程序。
CPU架构
CPU在按顺序处理数据方面非常快,由于它几近没有具有高时钟速度的重量级内核。它就像一把瑞士军刀,可以很好地处理各种任务。CPU 是延迟优化的,可以在多个任务之间快速切换,这可能会产生并行性的印象。但是,从根本上说,它旨在一次运行一项任务。
二、甚么是 GPU?
图形处理单元 (GPU) 是一种专门的处理器,其工作是快速操作内存并加速计算机以完成许多需要高度并行性的特定任务。
GPU架构
由于GPU使用了数千个轻量级内核,其指令集针对维度矩阵算术和浮点计算进行了优化,因此它在处理线性代数和需要高度并行性的类似任务时速度非常快。根据经验,如果算法接受矢量化数据,那末这项工作可能非常合适GPU计算。
从架构上讲,GPU 的内部存储用具有点对点连接的宽接口,可加速存储器吞吐量并增加 GPU在给定时刻可以处理的数据量。它旨在一次快速处理大量数据。
三、GPU与CPU之间的比较
CPU和GPU的限制归结为确切的用例场景。在某些情况下,使用CPU就足够了,而其他利用程序可能使用GPU加速器比较不错。现在让我们了解下CPU和GPU 处理器的一些普遍弱点,以帮助我们决定会不会需要它们。
1、CPU局限性
(1)重量级指令集
将日趋复杂的指令直接嵌入 CPU 硬件的趋势是一种现代趋势,但也有其不利的地方。为了履行一些更困难的指令,CPU有时需要旋转数百个时钟周期。虽然英特尔使用具有指令级并行性的指令流水线来减缓此限制,但它正在成为整体CPU性能的开消。
(2)上下文切换延迟
上下文切换延迟是CPU内核在线程之间切换所需的时间。任务之间的切换非常缓慢,由于我们的CPU一定要存储寄存器和状态变量、刷新高速缓存和履行其他类型的清算活动。虽然现代CPU处理器试图通过下降多任务延迟的任务状态段来解决这个问题,但上下文切换依然是一个昂贵的进程。
(3)摩尔定律
集成电路上每平方英寸的晶体管数量每两年翻一番的想法可能行将结束。你可以在一块硅上安装多少晶体管是有限度的,而且你没法超出物理学。相反,工程师们一直在尝试借助散布式计算来提高计算效力,并尝试使用量子计算机,乃至试图寻觅用于CPU制造的硅替换品。
2、GPU局限性
(1)功能较弱的核心
虽然GPU具有更多内核,但在时钟速度方面,它们的功能不如CPU同类产品。GPU内核的指令集种类较少,但指令集更加专业。这不一定是坏事,由于GPU对一小部份特定任务非常有效。
(2)更少的内存
GPU还遭到它们可以具有的最大内存量的限制。虽然GPU处理器可以在给定时刻比CPU移动更多的信息,但GPU内存访问的延迟要高很多。
(3)有限的 API
最流行的GPU API是OpenCL和CUDA。不幸的是,它们都以难以调试而闻名。虽然OpenCL是开源的,但在Nvidia硬件上运行速度相当慢。另外一方面,CUDA是专有的Nvidia API,并针对Nvidia GPU进行了优化,但它也会自动将我们锁定在其硬件生态系统中。
总结:CPU 和 GPU 都有不同的优势领域,在为我们的项目选择最好硬件时,了解它们的局限性会让我们更好选择。
TOP