GPU是什么?
GPU的英文全称Graphics Processing Unit,图形处理单元。
简单来说,GPU是专门的图形处理芯片,做图形渲染、数值分析、金融分析、密码破解,以及其他数学计算与几何运算。GPU可以在PC、工作站、游戏主机、手机、平板等多种智能终端设备上运行。
GPU和显卡的关系,就像是CPU和主板的关系。GPU是显卡的心脏,CPU是主板的心脏。有些小伙伴会把GPU和显卡当成一个东西,其实还有些差别的,显卡不仅包括GPU,还有一些显存、VRM稳压模块、MRAM芯片、总线、风扇、外围设备接口等等。
GPU和CPU谁最强呢?
这个其实不好说,好点的GPU内部的晶体管数量可以超过CPU,CPU的强项是做逻辑运算,GPU的强项是做数学运算和图形渲染。这就ChatGPT用大量高性能显卡做AI推理的原因。
接下来,我们做个简单的对比。
- 结构组成不同
CPU和GPU都是运算的处理器,在架构组成上都包括3个部分:运算单元ALU、控制单元Control和缓存单元Cache。
但是,三者的组成比例却相差很大。
在CPU中缓存单元大概占50%,控制单元25%,运算单元25%;
在GPU中缓存单元大概占5%,控制单元5%,运算单元90%。 结构组成上的巨大差异说明:CPU的运算能力更加均衡,但是不适合做大量的运算;GPU更适合做大量运算。
这倒不是说GPU更牛X,实际上GPU更像是一大群工厂流水线上的工人,适合做大量的简单运算,很复杂的搞不了。但是简单的事情做得非常快,比CPU要快得多。
相比GPU,CPU更像是技术专家,可以做复杂的运算,比如逻辑运算、响应用户请求、网络通信等。但是因为ALU占比较少、内核少,所以适合做相对少量的复杂运算。
- 缓存不同
- 在CPU里面,大概50%是缓存单元,并且是四级缓存结构;而在GPU中,缓存是一级或者二级的。
- 浮点运算方式不同
- CPU性能更加注重线程的性能,在控制部分做的事情较多,这样做就是为了确保控制指令不能中断,在浮点计算上功耗少。
- 相较于CPU,GPU的结构更为简单,基本上它也只做单精度或双精度浮点运算。GPU的运算速度更快,吞吐量也更高。
- 响应方式不同
- CPU基本上是实时响应,采用多级缓存来保障多个任务的响应速度。
- GPU往往采用的是批处理的机制,即:任务先排好队,挨个处理。
- 在GPU中会划分为多个流式处理区,每个处理区包含数百个内核,每个内核相当于一颗简化版的CPU,具备整数运算和浮点运算的功能,以及排队和结果收集功能。
- 注意,除了流处理器CUDA以外,影响GPU性能的还有
- 核心频率:频率越高,性能越强、功耗也越高。
- 显示位宽:单位是bit,位宽决定了显卡同时可以处理的数据量,越大越好。
- 显存容量:显存容量越大,代表能缓存的数据就越多。
- 显存频率:单位是MHz或bps,显存频率越高,图形数据传输速度就越快。
总结
一言以蔽之,GPU不管是处理图形渲染、数值分析,还是处理AI推理。底层逻辑都是将极为繁重的数学进行任务拆解,化繁为简。