中央处理单元 (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 都有不同的优势领域,在为我们的项目选择最佳硬件时,了解它们的局限性会让我们更好选择。
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


