原副标题:该文比如说GPU的基本概念、组织工作基本原理,和与CPU的差异
近一年来,基本上每一行业的爸爸妈妈都了解到了ChatGPT的可悲能力。你知道么,ChatGPT或许如此吓人,其原因在于它加进了几十万张NVIDA Tesla A100显示卡做AI逻辑推理和绘图排序。
责任编辑就单纯撷取下GPU的相关文本,热烈欢迎写作。
GPU是什么?
GPU的英语全名Graphics Processing Unit,绘图处理组件。
说隐晦一点: GPU是这款专门针对的绘图处理晶片,做绘图图形、值预测、金融创新预测、公钥补齐,和其他定量预测与欧几里得演算的。GPU能在PC、服务站、格斗游戏PS3、智能手机、智能智能手机等多种不同智能终端电子设备上运转。
GPU和显示卡的亲密关系,就像CPU和SSD的亲密关系。前者是显示卡的肾脏,前者是SSD的肾脏。很多爸爸妈妈会把GPU和显示卡当做一个东西,只不过还很多差异的,显示卡不但主要包括GPU,还有一些显卡、VRM保险丝组件、MRAM晶片、汇流排、散热器、排序机硬件USB之类。
GPU和CPU谁最强大呢?
这个只不过不太好说,好点的GPU外部的电晶体数目能超过CPU,CPU的弱项是做逻辑演算,GPU的弱项是做微积分演算和绘图图形。这就ChatGPT用大量高效能显示卡做AI逻辑推理的其原因。
接下去,我们做个单纯的对照。
结构共同组成不同CPU和GPU都是演算的CPU,在构架共同组成上都主要包括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对于绘图处理
这还是高清的情况下,如果是1090*1080、2K、4K甚至8K的视频图形,可想而知,这个排序量是何其巨大。尤其是在像格斗游戏这样的实时图形场景下,显然仅仅依靠CPU图形是会超时的。
实际上,在屏幕中显示的三维物体都要经过多重的坐标变换,并且物体的表面会受到环境中各种光线的影响,呈现不同的颜色和阴影。这就主要包括了光线的漫射、折射、透射、散射等。
接下去,我们以英伟达NVIDIA RTX3090 为例,看下GPU是如何进行图形的。
RTX3090的流式多CPU有10496个,每一内核都有具备整数演算和浮点演算的部分,还有用于在操作数中排队和收集结果的部分。
所谓流式多CPU能认为是一个独立的任务处理组件,也能认为一颗GPU包含了10496个CPU同时处理各个图片处理任务。
如下图所示,在GPU中会划分为多个流式处理区,每一处理区包含数百个内核,每一内核相当于一颗简化版的CPU,具备整数演算和浮点演算的功能,和排队和结果收集功能。
注意,除了流CPUCUDA以外,影响GPU性能的还有
核心频率:频率越高,性能越强、功耗也越高。 显示位宽:单位是bit,位宽决定了显示卡同时能处理的数据量,越大越好。 显卡容量:显卡容量越大,代表能内存的数据就越多。 显卡频率:单位是MHz或bps,显卡频率越高,绘图数据传输速度就越快。 总结一言以蔽之,GPU不管是处理绘图图形、值预测,还是处理AI逻辑推理。底层逻辑都是将极为繁重的微积分进行任务拆解,化繁为简。
然后,利用GPU多流CPU的机制,将大量的演算拆解为一个个小的、单纯的演算,并行处理。我们也能认为一个GPU就是一个集群,里面每一流CPU都是一颗CPU,这样就容易理解了。
以上是关于GPU基本概念、组织工作基本原理的简要介绍。说是单纯,只不过在绘图处理方面,还有很多深层次的处理逻辑没有展开,比如像素位置变换、三角基本原理之类。感兴趣的爸爸妈妈能深入研究下。