CPU vs GPU 的区别详解

Blog
Author:
Joseph SibonyJoseph Sibony
Published On:
10月 5, 2023
Estimated reading time:
1 minute

目录

今天我们将讨论 CPU 和 GPU 之间的区别,尽管两者用途相似,其应用领域却有所不同。CPU 更多用于传统桌面处理,而 GPU 的运算能力更多用于其他领域。以下我们将探讨其中的几个领域,以及 CPU 与 GPU 之间的一些关键区别。

为何需要两种不同的处理器?

大家对 CPU 都不陌生,它被称为计算机的“大脑”,由数以亿计的微型晶体管和多个“核心”组成,其对于计算机的主要处理功能至关重要,操作系统和应用程序运行等操作都必须依赖它来进行,CPU 还决定着计算机的整体速度。

GPU 在本质上更具专业性,其最初设计用于辅助 3D 渲染,且能并行处理更多指令。其特性完美适用于依赖显示动态内容的图形密集型应用,如游戏或流媒体视频的压缩/解压缩。GPU 还可应用于渲染和图像处理之外的许多其他领域,如人工智能比特币挖矿

CPU 和 GPU 的主要区别在于它们如何处理接收到的指令。换言之,CPU 善于一次处理一项任务,而 GPU 则可以同时处理多项任务,就好比有些人善于按顺序一项项执行任务,有些人可同时进行多项任务。

CPU 接收一组待处理数据,并按顺序进行处理,一切都按序进行。GPU 则可以将数据分配给专门设计用于执行特定任务的多个处理单元中,这种将工作量分配到并行进程的方法是尽可能将任务卸载到 GPU 来处理的核心原因。

为演示 CPU 与 GPU 的算力,英伟达请来了曾共同出演热门电视节目《流言终结者》的极客二人组,亚当·萨维奇 (Adam Savage) 和杰米·海尼曼 (Jamie Hyneman) 利用机器人技术和彩弹再现了一幅广为人知的艺术作品。这部名为《流言终结者的 GPU vs CPU 演示》的视频展示了分别使用 CPU 和 GPU 方法来进行复刻的多彩过程。

不出所料,第一段对 CPU 行为进行了演示,颜料缓慢但精准的按顺序射出,逐步呈现出著名的笑脸图像,提高速度表明其有能力进行快速射击,但与下一段演示完全不同。

莱奥纳多 2.0 是《流言终结者》的匠心之作,用来演示GPU的并行处理行为。通过这种方式,它可以复刻更精细的艺术作品《蒙娜丽莎》。伴随着倒计时和闪亮的按钮,机器几乎瞬间完成了作品,虽然看似所有事情都是同时发生的,但慢动作回放可以证实一切都是有条不紊地进行着。

 

CPU 和 GPU 的区别

CPU GPU
通用:执行计算机中的全部处理功能 专用:专门用于视频处理和图形渲染
核心数量有限(大多为 2 – 64 个) 核心数量可达数千个
串行处理能力 并行处理能力
擅长每次处理一个任务 专为同时处理多个(小型)任务而设计

CPU 与 GPU 的共生关系

尽管两者有所不同,但并不意味着其中一个比另一个更好,它们在当今的技术领域中各有其特定的应用。如果没有GPU来增加效率,您可能不想尝试渲染高度详细的3D图形。另一方面,数据库服务器、网页浏览器和办公应用所需的计算能力也不需要你用到图形处理器。

CPU 可以完成与 GPU 相同的计算,但是,硬件制造商意识到,卸载一些更常见的多媒体任务可以减轻 CPU 的负载并提高其性能。只有 CPU 和 GPU 正确协调的情况下,才可能实现性能提升。

GPU 并非要取代 CPU,CPU 仍是计算硬件流程的主要处理器,由 CPU 来决定是否自行处理一批数据,还是传递给 GPU 进行处理。

例如,尽管 CPU 可以为应用程序执行相同的运算,但由于 GPU 的设计方式,往往会使用 GPU 来处理。在 GPU 中有多条可重复使用的指令,这些指令被设计为并行运行。

当程序员使用各种编程例程来利用 GPU 时,就会发生交互,由于数据传输发生在“总线级”,使有效负载和返回结果能够快速交换。目前,由程序员来识别哪些处理任务传递给 GPU 更好,但“自动”卸载到 GPU 的想法正在探索中(见本论文这篇论文),且这些探索暂时只停留在学术层面。

GPU 的进阶应用

GPU 在当今应用中的使用方式正在不断扩展,它不仅用于视频游戏的图形渲染等工作量,还被用于推动尖端技术的发展,人工智能被用于 AI 应用程序建模,执行情感分析、金融预测和图像处理等操作。

在 AI 领域,GPU 可支持更具扩展性的深度学习方法,该方法需要使用 GPU 来高效地处理大量数据,正是这种复杂性和数据的处理使得 GPU 成为了首选方法。

有关使用 CPU 与 GPU 进行深度学习的比较,请参阅本基准本论文

英伟达是一家领先的图形硬件制造商,他们提供的 HPC SDK,使开发人员可以利用一个或多个 GPU 或 CPU 的并行处理能力。通过这种方式,开发人员可以使用 CUDA 工具包在应用程序中实现并行处理。

有大量信息可供那些正在寻找平台的用户参阅,以便其快速上手利用英伟达 GPU 的优势。拥有正确的工具,可以降低实现并行处理的难度。英伟达为 Windows 和 Linux 均提供了 CUDA。两个版本均免费,且易于安装。了解更多有关 CUDA 及如何开启 C、C++ 和 Fortran 语言入门的信息。

有关英伟达利用 GPU 进行深度学习的示例,请参阅https://developer.nvidia.com/deep-learning-examples

在关键之处有所作为

论述 CPU 与 GPU 理论是一回事,实际应用又是另一回事。有两家公司直接采取了行动,它们已意识到 C++/CUDA 所能带来的好处。这些公司选择与 Incredibuild 进行合作,解决直接影响其 CI/CD 进展的问题。

MEDIAPRO 使用 CUDA 启动生产力

体育赛事组织机构要感谢 MEDIAPRO,因其提供的视频制作服务可替代一般所需的大型团队。作为 AV 集团供应链中的佼佼者,其产品 AutomaticTV 使用人工智能技术来提供专业的视频制作服务。这种规模的产品需要对资源进行高效编译,否则,开发人员可能会经常感到无所事事,进而无法开展下一项任务。

他们当前的工作流程无法满足其需求,从在分支流程间切换导致注意力无法集中,到依然需要大量时间才能有效管理的依赖关系。这两者的结合是一大挑战,该解决方案是 Incredibuild 与英伟达共同努力的结果。

阅读更多内容,以了解 Incredibuild 如何通过在专注于 C++/CUDA 应用程序的开发人员机器上安装 Incredibuild,将编译时间减少了 85%。

GeoTeric® 提升质量与速度

GeoTeric® 对如何节省编译时间有自己的见解,他们的桌面应用程序需要成千上万的 C++ 文件和数百万行代码,该应用专注于为 3D 建模显示地质元素。即使有如此高水平的技术来支持应用,要采用一些现今最优的实践方法仍然很困难,构建缓慢可能会制约包括自动化测试在内的敏捷开发法。

在工作流中加入 Incredibuild 后, GeoTeric® 的特定 CUDA 编译时间从 15 分钟减少到了 3 分钟,总构建时间从之前的整整 2 个小时骤降至 11 分钟。可以想象,这种编译性能的提升带来了他们所需的速度提升。

了解他们如何利用这一机会摒弃了手动测试、缩短了构建时间和交付时间的。