# GPU

## GPU简介

GPU（Graphics Processing Unit，图形处理器），是一种专门做图形或者图像处理的微处理器，近年来也用在了机器学习算法领域。

## GPU和CPU的区别

CPU (Central Processing Unit，中央处理器)就是机器的“大脑”，是完成布局谋略、发号施令、控制行动的“总司令官”。CPU的结构主要包括运算器(ALU，Arithmetic and Logic Unit)、控制单元(CU，Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。

CPU和GPU之所以大不相同，是由于其设计目标的不同，它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型，同时又要逻辑判断又会引入大量的分支跳转和中断的处理，这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。于是CPU和GPU就呈现出非常不同的架构(示意图)：

![](https://3037548586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnpynfpU0w3FBTJVlOK%2Fuploads%2Fgit-blob-6e134c84aadb7b3c7a02d710b0fe5c422a93b2ec%2FCPU%E5%92%8CGPU%E5%8C%BA%E5%88%AB.png?alt=media)

为什么GPU特别擅长处理图像数据呢？这是因为图像上的每一个像素点都有被处理的需要，而且每个像素点处理的过程和方式都十分相似，此类场景也就成了GPU的天然温床。

|        | CPU           | GPU             |
| ------ | ------------- | --------------- |
| 结构     | 核数少，线程重       | 核数多，线程轻         |
| 适用场景场景 | 适合处理逻辑复杂的串行任务 | 适合处理逻辑简单相似的并行任务 |

> 参考：
>
> https://www.sohu.com/a/361288420\_632967
