一次性厘清 CPU、显卡、GPU到底是什么?之间的关系?
一、概念
1. CPU?
CPU 全称 Central Processing Unit,中文名为 中央处理器,是计算机中的重要组成部分。计算机中的操作都属于 计算,而 CPU 就是处理这些计算,并生成对应结果的工具,相当于是计算机的大脑。
2. GPU?
GPU 全称 Graphics Processing Unit,中文名为 图形处理器,也是计算机中的重要组成部分,也负责处理计算机中的一些 计算。所属层级为 芯片。
3. 显卡?
显卡与 GPU 并不划等号,显卡是一个集成单元,是以 GPU 为中心、包含显存、供电、散热、输出接口等组件的完整硬件设备。
- 核显:全称 核心显卡,是指带有 GPU 的 CPU 核心处理器,是在 物理层面 确实存在的,老计算机都是核显。
- 集显:全称 集成显卡,是一个统称,一个抽象的概念,将 GPU 集成在 CPU 中,这个称为集显,物理上不存在,逻辑上 核显 是 集显 的子集。
- 独显:全称 独立显卡,是一个完整的硬件设备,也是 物理层面 上存在的,即现在单独售卖的显卡,称为 独显。
- 双显:现在计算机都是双显存在的。即既有集显也有独显,集显能够保证最基本的运行,而特定工作场景使用独显工作能够获得最优的效率。
二、CPU和GPU的区别?
1. 任务场景
两者都是用于计算,但对于不同任务的计算,两者所擅长的领域是不同的
- CPU:适合一些比较复杂的任务场景,比如逻辑层面,简单来说,CPU 比较万能,它什么都可以计算。
- GPU:适合一些简单但重复的计算场景,例如:我们都知道一个画面是由多个像素点构成的,那么假如要将所有的像素点值都相加 1。这样简单的操作,使用 GPU 就效率更高。
2. 运算效率
面对不同的任务场景,由 CPU 和 GPU 协助处理,效率是最高的。
- 简单来说,CPU 很厉害,它什么都可以做,包括 GPU 能干的,它也可以干。但是在不同的场景下,例如:对于一个 9*9 格子,要将里面的值都 +1,如果是 CPU 来计算的话,它也可以计算出来,但是可能是一格一格计算,效率并不高。而 GPU 就相当于同时同步计算,由于任务简单,没有复杂的逻辑,所以很快的就计算出了结果。
- 而若是每个格子里面计算是不同的,包含了逻辑单元,例如:如果这个格子是偶数就不计算,那么 CPU 在计算的时候就会判断这个格子,而 GPU 则无法处理这些复杂的逻辑单元。
- 通俗点的例子就是:CPU 就是博士,它可以写论文,也可以写出 1000 个九九乘法表,就是写的慢。但是 GPU 就相当于 1000 个小学生,你让它们写论文,写不出来,但你让它们写九九乘法表,每个小学生同时写,很快就写完了。这就是对同一任务,CPU 和 GPU 运行效率的不同。
3. 核数
- CPU:我们常在网上看到一个电脑 CPU 是 8 核、12 核等,这个核数就是 CPU 所拥有的处理单元。以前是单核,处理任务的时候,其它任务就只能等待。而多核就相当于,从原先一个人计算,变成了多个人计算。可以不同的人分配不同的计算任务,互相不影响。
- GPU:GPU 的核一般被称为 CUDA 核心。是具有相当庞大的数量的,拥有成千上万个核心,因此由于数量过多,对应的处理复杂任务的能力就弱,但是简单的任务就强。
- 因此在上一节中为什么以 1 个博士和 1000 个小学生做类比,因为 CPU 的核就相当于博士,GPU 的 CUDA 核心就相当于小学生。一个 CPU 的核数常见的就是 8、12、16核,相比于 GPU 所用的核心数是相当少的。但是从处理能力上,CPU 能够处理非常复杂的任务,而 GPU 则无法处理,只能进行稍微简单的任务。
4. 运行机制
虽然 CPU 核 GPU 都是并行的,但是侧重点不同
- CPU 专注与少而精的操作,让它计算 1+1 也可以运算,但无异于 “大炮打蚊子”。
- GPU 专注与多而简的操作,能够让多个核心统一进行相同的操作,适合数量庞大但简单的运算。
5. 协同?
在实际的场景中,是由 CPU 和 GPU 协同操作的,CPU 负责处理复杂的场景,而这复杂场景中大量重复且统一的任务就交给GPU 运行,就能达到最大的效率。
三、为什么大型游戏、深度学习更依赖于 GPU?
大型游戏主要是实时渲染的问题,画面呈现是由大量的像素点组成的,而对于色彩的计算相对简单,因此大量像素点色彩切换的计算交给 GPU 就更为合适。而深度学习主要是矩阵运算,也是重复且单一的操作,且需要大量数据做支撑,就更适合使用 GPU。
四、知识拓展(进程、线程)?
进程通俗可以理解为一个正在运行中的程序,而线程是这个进程中的一部分。例如打开微信聊天的时候,微信就占用了一个进程,但是处理发送和接受的时候就是占用的一个线程,因此一个进程中至少有一个线程,但可以有多个线程。
- 进程之间的隔离性强,一个进程的崩溃不会影响其余进程,例如微信的崩溃不会影响 QQ 的运行。
- 线程的隔离性较差,一个线程的崩溃,可能会影响到整个进程,例如如果负责发送消息的进程崩掉,那么整个微信就无法进行聊天,甚至有可能直接崩溃。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)