CPU vs GPU:不仅仅是一字之差

news2025/5/23 0:35:10

当今科学技术的飞速发展,社会已经迈入了信息时代的智能化阶段。人脸识别、智能客服、个性化推荐等应用已经深入到日常生活的各个方面。这些看得见的应用背后,是看不见的算力在默默地支撑着。在满足这些高算力需求的过程中,CPU 和 GPU 作为计算机的核心组件发挥着重要的承载作用。那么,CPU 和 GPU 到底是什么?它们又有什么区别?

随着数据成为五大生产要素之一,算力的作用变得愈发重要。算力即计算能力(Computing Power),更具体来说,算力是指数据中心的服务器通过对数据进行处理后实现结果输出的一种能力。

算力的概念起源于计算机的发明初期。最早的计算机是由机械装置完成计算任务,而算力指的就是这些机械装置的计算能力。随后,半导体技术的出现和发展,集成电路问世,开启了芯片时代。计算机在芯片的加持下,功能越来越强大,体积也越来越小,最终诞生了个人计算机(PC),成为人类最重要的算力工具。

而后人工智能和大数据技术的迅猛发展也带动了算力需求的飞速增长。无论是训练复杂的神经网络模型,还是进行大规模数据分析和处理,算力都扮演着至关重要的角色。如今,芯片已经成为算力的主要载体。当我们谈论算力时,实际上是在讨论 CPU 和 GPU 等芯片的计算能力。在计算机科学领域,CPU 和 GPU 作为计算机的核心组件,虽然名字只有“一字之差”,但其结构和功能却大不相同。

1 CPU vs GPU: 概念

CPU(Central Processing Unit),即中央处理器,是电脑、手机等众多电子产品的“心脏”。在我们日常生活的诸多场景中,如观看视频、玩游戏、聊天互动等,CPU 发挥着统一指挥和调度的关键作用。它主要负责执行程序指令、进行算术和逻辑运算以及控制和协调计算机各个部件。

为了满足处理各种不同数据的强大通用性能,CPU 的内部结构设计非常复杂。CPU 由多个核心组成,每个核心又包含算术逻辑单元、控制单元和高速缓存等组件,并且可以独立地执行任务。至今为止,所有的 CPU 都遵循冯·诺依曼体系结构的基本工作流程:取指令,指令译码,执行指令,数据回写,然后再取下一个指令、译码、执行、回写,重复进行直到程序结束。通过这种工作流程,CPU 能够有效地执行程序,并控制整个系统的运行。

在这里插入图片描述

CPU 工作流程

然而,随着计算机的普及,人们对图形显示的要求不断提高,例如在进行复杂的三维建模时,需要处理大量的图形数据以呈现逼真的效果;在玩大型游戏时,要求系统能够处理高分辨率的画面和复杂的游戏场景。尽管 CPU 内部采用了各种方法来加速指令执行,但随着任务的增多,CPU 的性能显得有些力不从心。

面对这个问题,能否考虑增加更多的 CPU 来解决呢?这固然是一种思路,但这涉及到相当高的成本,并且堆叠数量也不能保证完全解决计算能力不足的问题。这时候聪明的开发者就提出了一个更巧妙的解决方案:既然 CPU 的计算能力有限,为什么不将计算单元堆叠在同一块芯片上,让它们处理大量运算的任务呢?于是,GPU 诞生了。

GPU(Graphics Processing Unit),即图形处理器, 顾名思义,一种专门用来处理图形和图像计算的处理器。GPU 最初是为图形渲染和显示而设计的,用于加速计算机中图像的处理,例如在视频游戏、电影渲染、图形设计等方面。它只有少量的控制单元和缓存单元,绝大部分的空间用来堆放运算单元,主要负责完成许多计算密集型任务。

2 CPU vs GPU: “差”在哪里?

通过引入 GPU,计算机系统可以充分利用其强大的并行计算能力,加速图形和图像相关的计算任务。CPU 负责逻辑任务,而 GPU 来处理大量简单重复的计算任务,这种不同类型的任务分配给不同类型的处理器的模式,大大提高了系统性能。那么,CPU 和 GPU 到底“差”在哪里呢?

2.1 架构组成

CPU 和 GPU 之间存在显著差异,是因为它们各自针对不同的目标和需求来设计,具体体现在:

  • CPU 需要有强大的通用性,以处理各种不同类型的数据,同时需要进行逻辑判断,包括大量的分支跳转和中断处理,这导致内部结构异常复杂。

  • GPU 主要面向类型高度统一、相互无依赖的大规模数据,并在纯净的计算环境中执行,因此不需要处理复杂的逻辑操作。

这就导致了 CPU 和 GPU 呈现出非常不同的架构:

image.png

CPU 基本架构

image.png

GPU 基本架构

CPU 拥有较大的缓存单元以及复杂的逻辑控制单元,相比之下计算能力只是 CPU 很小的一部分。而 GPU 则拥有数量众多的计算单元和超长的流水线,但只有非常简单的逻辑控制以及较小的缓存单元。

2.2 设计理念

CPU 和 GPU 的设计理念也截然不同。首先,CPU 是基于低延迟(Low Latency)设计的

  • 强大的运算单元: CPU 拥有数量较少但是单个计算性能更强的运算单元,可以减少操作延时,更快地响应。

  • 大容量缓存: 将一部分数据存储到高速缓存当中,使得高延迟的内存访问转换为低延迟的缓存访问。

  • 复杂的控制单元: 分支预测(Branch Prediction)机制可以降低分支延时;数据转发(Data Forwarding)机制降低数据延时。

GPU 则是基于高通量(High Throughput)设计的

  • 精简的运算单元: GPU 拥有大量的运算单元,虽然单个单元的性能比不上 CPU,但可以支持非常多的线程(Thread)从而达到非常大的吞吐量。

  • 小容量缓存: 与 CPU 不同,GPU 缓存的目的并不是用来存储后面需要访问的数据,而是为线程提供服务,如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问内存。

  • 简单的控制单元: GPU 的控制单元没有分支预测和数据转发机制。

总的来说,CPU 拥有数量相对少(一般不超过两位数)但能力更强的核心,能够更快地处理单个任务,因而它尤其适合处理串行任务和逻辑控制等类型的工作。相比之下,GPU 拥有成百上千核,虽然每个核心运算能力较低,但可以将复杂任务分解成非常多的子任务再并行处理。

image.png

串行处理过程

image.png

并行处理过程

2.3 适用场景

CPU 与 GPU 二者的设计目的并不一样,因而适用的场景也截然不同。CPU 更擅长一次处理一项任务,而 GPU 则可以同时处理多项任务。

用一个形象的比喻来解释。CPU 就像是一架高速飞机,而 GPU 则相当于一队货柜船。它们的任务是将大量货物从 A 位置迅速运送到 B 位置。虽然 CPU(飞机)速度非常快,但每次只能携带少量的货物,需要多次往返才能完成任务。相比之下,GPU(货柜船)虽然单次执行速度相对较慢,但通过协同工作,每艘都能同时携带一部分货物,最终以集体的力量高效完成运输任务。

image.png

CPU 与 GPU 处理任务对比

因此,虽然 CPU 单次执行任务的时间更快,但是在需要大量重复工作负载时,GPU 优势就越显著。而当遇到前后计算步骤严密关联的计算场景,这些任务涉及到“流”的问题,必须先计算完第一步,再去计算第二步。或是需要进行大量逻辑判断和复杂计算的任务,比如运行操作系统、处理日常办公任务、进行单线程编程等。这种时候,使用 GPU 的效率反而没有 CPU 高。

综上所述,CPU 是个集各种运算能力的大成者。它的优点在于调度、管理、协调能力强,并且可以做复杂的逻辑运算,但由于运算单元和内核较少,只适合做相对少量的运算。GPU 无法单独工作,它相当于一大群接受 CPU 调度的流水线员工,适合做大量的简单运算。CPU 和 GPU 在功能上各有所长,互补不足,通过相互配合使用,实现最佳的计算性能

3 CPU vs GPU: 演进与发展

技术的不断更新推动着计算机领域的快速发展,而在这个不断演进的过程中,CPU 和 GPU 也在持续发展。在过去的几十年里它们在各自的领域取得了显著的突破,为计算机应用提供了更高的性能和效率。这不仅推动了数字化时代信息技术的发展,也为各个领域带来了新的可能性。

3.1 扬长避短,稳步前进

CPU 拥有强大的指令处理和计算能力(这里强大的计算能力是指 CPU 可以胜任更复杂的计算任务),通常用于处理计算机的核心工作,包括解释计算机指令和处理计算机软件中的数据。例如我们在使用个人计算机时,用户和各种软件会不断地产生指令流,CPU 要完成的一个重要工作就是负责处理这些指令,保证它们按照规定的顺序执行。此外,CPU 还要负责处理计算机软件所产生的类型多样且逻辑复杂的数据。

距离第一块 CPU 4004 的诞生已经过去了五十多年,尽管与早期相比,CPU 在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。换句话来说 ,CPU 的功能和使用场景并没有发生较大的改变,无非是在能耗、性能以及可靠性上面不断地优化。

3.2 GPU 加速应用遍地开花

3.2.1 从 GPU 到 GPGPU

GPU 的概念在 1999 年 NVIDIA 公司发布 GeForce 256 时被首次提出, 在早期,GPU 主要用于 3D 图形渲染。但与 CPU 不同,随着 GPU 的功能和运算能力越来越强大,开发者开始探索除了图形处理之外,GPU 还能做什么?

在 2003 年,NVIDIA 推出新产品 GeForce 8800 GTX 时,首次提出了 GPGPU(General-purpose computing on Graphics Processing Unit)的概念,即通用图形处理器,意指利用 GPU 的计算能力,在非图形处理领域进行更通用、更广泛的计算。

到了 2007 年,NVIDIA 进一步提出了名为 CUDA(Compute Unified Device Architecture,计算统一设备架构)的全新技术,利用该技术可以通过 NVIDIA 的 GPU 进行图像处理之外的计算任务,它揭开了 GPU 计算革命序幕。随后,苹果公司也推出了类似的技术:OpenCL(Open Computing Language)并在与 AMD,IBM,Intel 和 NVIDIA 技术团队的合作之下初步完善。OpenCL 是一个开放的、跨平台的并行计算框架,允许开发人员在不同的硬件平台(CPU、GPU、FPAG 等)上进行开发。

自此以后,GPU 不再以图形的 3D 加速为唯一目的,而是能够广泛应用于各领域的通用计算加速,尤其是科学计算、大数据分析以及人工智能等领域。

3.2.2 大模型与向量数据库

当今互联网世界所需的计算能力远远超出任何人的想象,并且只会随着人工智能的兴起而增加。以如今爆火的生成式 AI ChatGPT 为代表,大小为 175B 的 GPT-3 使用了 1024 张 A100 GPU 训练了约 34 天,随着参数数量的增加,往后 AI 需要的算力资源更是天文数字。

大模型同样引发了数据库领域的革命,此前不温不火的向量数据库搭上了这辆顺风车,一举成为 AI 时代的新宠。在 2023 英伟达 GTC AI 开发者大会中,NVIDIA CEO 黄仁勋首次提及向量数据库,并强调对于构建专有大模型的组织而言,向量数据库至关重要。

对于 AI 来说,向量是它理解世界的通用数据形式,不管是图片、视频、音频,都可以通过转换成向量来让 AI 识别,向量数据库作为专门对向量进行检索和存储的工具,能为大模型的应用落地解决诸如“没有长期记忆”、“幻觉”、“知识更新不及时”等问题。

但是,向量数据库本身的性能也是一个问题,说到底与大模型的结合只是其应用的一部分,它本质上还是一个数据搜索和分析的工具,如果性能满足不了用户需求,同样也会被淘汰。于是乎,开发者们又想起了 GPU。

在向量数据库中,最核心的功能在于向量相似性搜索,即在一个海量的数据中找到和某个向量最相似的向量,它的计算量十分庞大,而这恰好是 GPU 所擅长的,利用 GPU 的并行计算能力可以加速向量相似性搜索,显著提高查询速度,降低延迟。

4 云原生向量数据库 PieCloudVector 支持 GPU 加速

拓数派大模型数据计算系统 πDataCS 三大数据计算引擎之一:向量数据库 PieCloudVector,是大模型时代的分析型数据库升维,目标是助力多模态大模型 AI 应用,进一步实现海量向量数据存储与高效查询。PieCloudVector 支持和配合大模型的 Embeddings,帮助基础模型在场景 AI 的快速适配和二次开发,是大模型必备应用。

PieCloudVector 充分利用现代化硬件能力,支持 GPU 加速功能。 这一特性让 PieCloudVector 能够利用 GPU 的并行计算能力来加速向量计算和数据处理任务,显著缩短任务的执行时间,提高计算效率,帮助用户更高效地进行数据计算。特别是在需要处理大规模数据集或进行复杂的数值运算时,GPU 加速可以大幅提升计算性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1434186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Leetcode】第 383 场周赛

文章目录 100214. 边界上的蚂蚁题目思路代码结果 100204. 将单词恢复初始状态所需的最短时间 I题目思路代码结果 100189. 找出网格的区域平均强度题目思路代码结果 100203. 将单词恢复初始状态所需的最短时间 II题目思路代码结果 100214. 边界上的蚂蚁 题目 题目链接 给你一个…

Java21 + SpringBoot3集成七牛云对象存储OSS,实现文件上传

文章目录 前言实现步骤引入maven依赖修改配置文件创建七牛云配置类创建文件操作服务类创建文件操作控制器前端实现运行效果 总结 前言 近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统&#xf…

Unity3D实现项目限制功能(使用次数限制和时间限制)

系列文章目录 unity工具 文章目录 系列文章目录前言一、时间限制1-1、代码如下: 二、次数限制2-1、 在Unity项目中需要对注册表进行操作,还需要设置一下API兼容级别设置成 .NET Framework2-2、设置如下图 Player里面2-3、代码如下: 三、同时…

不负书香,传承有我

随着科技的飞速发展,电子书、网络资源日益丰富,但实体书仍以其独特的魅力和不可替代性在每个人的生活中占据一席之地。为确保每一本书都能被正确、有序地摆放,为每一个读者提供便利,在2024年1月24日,曲阜师范大学计算机…

光隔离探头

一、前言。 光隔离探头的CMRR比高压差分探头要高很多,在一些共模电压较高的测量领域用的比较多,如:开关电源、逆变器等。但是市面上介绍光隔离探头的方案比较少,这里简要说明一下我的个人想法。 二、数字光和模拟光。 数字光就是通信上常用的光模块,传的是数字信号,带…

BZOJ0481. 树的重心之砍树Link Cut Centroids

题目 思路 分类讨论。 首先当树只有一个重心的时候,我们删掉最小的边再加上原边即可. 再看有两个重心的情况. 显然这棵树必定是类似这样的: 即删掉 A 后,以B 为根的子树是剩下的最大连通块,反之亦然. 那就可以得到一个结论: 删掉边 (A,B) 后,两棵树的大小相等. 那我们只…

BrainAGE作为大脑老化的神经影像标志物的十年

随着人口老龄化,神经退行性疾病的发病率越来越高,给个人和整个社会带来越来越大的负担。然而,个体的衰老速度是由环境、基因和表观遗传等各种因素以及各因素间的相互作用决定的。建立神经解剖学衰老过程的生物标志物,是神经科学的…

15:矩阵按键

矩阵按键 1、 矩阵按键的原理图分析2、 矩阵键盘的工作过程3、编程实战3.1、先通过LED灯进行按键测试3.2、通过静态数码管显示键值 1、 矩阵按键的原理图分析 (1)横向和纵向分割 (2)按键两端分别接不同的IO引脚 (3)按键的物理作用不变:按下接通电路,弹起…

ONLYOFFICE:一站式办公,探索高效办公新境界

写在前面ONLYOFFICE 介绍ONLYOFFICE 有哪些优势ONLYOFFICE 文档 8.0 发布如何体验 ONLYOFFICEONLYOFFICE 文档部分页面截图 写在前面 在当今这样一个数字化时代,办公软件已经成为我们日常工作中不可或缺的一部分,熟练使用 Office、WPS、腾讯文档、金山文…

openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志

文章目录 openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志215.1 性能日志概述215.2 性能日志收集的配置参数 openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志 215.1 性能日志概述 性能日志主要关注外部资源的访问性能问题。 性能日…

户用光伏电站设计优化方案:为行业打造示范标杆

不可再生能源的日益消耗促使了大家对新能源的使用和推广,光伏发电已经成为国家和企业大力推崇的技术。其中,户用光伏发电是重要组成部分,有非常大的市场发展空间。然而,如何优化设计,提高效率,降低成本&…

牛客——中位数图(连续子数组和二维前缀和)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 输入描述: 第一行为两个正…

Java统计GitLab代码量

1、生成密钥 2、添加依赖 <dependency><groupId>org.gitlab4j</groupId><artifactId>gitlab4j-api</artifactId><version>5.3.0</version></dependency> Java代码实现 统计所有项目的代码行数&#xff1a; private Stri…

C++函数分文件编写之VScode版

VScode实现函数的分文件编写 1.下载插件创建项目2.分文件编写内容3.修改主函数文件名 我在分享内容时经常用的软件是VScode&#xff0c;相信有些内存敏感或需要VScode便利性的小伙伴也是更愿意使用VScode。那么接下来我们就盘一盘怎样使用VScode实现分文件编写。 1.下载插件创建…

2023年06月CCF-GESP编程能力等级认证Python编程二级真题解析

Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下()操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 能够实现下面流程图功能的伪代码是( )。 A:if …

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型

动力电池智能工厂数字孪生可视化&#xff0c;助力新能源汽车产业数字化转型。随着新能源汽车产业的快速发展&#xff0c;动力电池作为新能源汽车的核心组成部分&#xff0c;其生产制造的数字化转型也成为了行业关注的焦点。动力电池智能工厂数字孪生可视化平台作为一种新型的技…

【PyQt5】一些基本操作

文章目录 前言一、查看自己的PyQt版本代码运行结果 二、查看PyQt5 的类或者对象的属性代码运行结果demo_pulsresult 三、帮助文档代码结果 前言 包括以下 查看自己的PyQt版本、查看某个类的使用方法 一、查看自己的PyQt版本 代码 import PyQt5.QtCore print(PyQt5.QtCore.P…

Web html和css

目录 1 前言2 HTML2.1 元素(Element)2.1.1 块级元素和内联(行级)元素2.1.2 空元素 2.2 html页面的文档结构2.3 常见标签使用2.3.1 注释2.3.2 标题2.3.3 段落2.3.4 列表2.3.5 超链接2.3.6 图片2.3.7 内联(行级)标签2.3.8 换行 2.4 属性2.4.1 布尔属性 2.5 实体引用2.6 空格2.7 D…

通过消息队列实现进程之间通信代码

#include <myhead.h> struct msgbuf {long int mtype; char mtext[1024]; }; //定义一个消息大小 #define MSGSIZE sizeof(struct msgbuf)-sizeof(long int) int main(int argc, const char *argv[]) {//1、创建key值以便创建消息队列key_t key ftok("/", k)…

IP代理在网络中解决了哪些问题?代理IP使用时效是什么意思?

随着互联网的普及和发展&#xff0c;IP代理作为一种网络工具&#xff0c;被广泛应用于各种场景。IP代理的使用可以解决很多网络中的问题&#xff0c;提高网络访问的速度和安全性。本文将详细介绍IP代理在网络中解决的问题&#xff0c;以及代理IP使用时效的含义。 一、IP代理在网…