GPU渲染全解读(二):GPU与CPU 被解放的众核之力

2016-03-05| 47251关注人数
| vera

文字大小 打印

自1999年真正意义上的GPU诞生到今天,GPU加速已逐渐渗透医学成像、生物信息学、CAD/CAM/CAE、计算流体力学、计算金融、计算勘探、地理信息系统、国防、电影制作与动画等应用领域,成为CPU计算之外另一个不容忽视的发展方向。

        那么,GPU与CPU到底有什么不同?在图形渲染领域,GPU相较于CPU又有什么优势?这是本章我们想要着重讨论的内容。

        CPU,即中央处理器,是计算机的核心部件之一。GPU,上一章已经论及,即图形处理器,是为了满足日益复杂的图形处理需求而发展起来的。两者之间的不同,体现在他们处理任务的不同方式上。CPU由专为串行任务而优化的几个核心组成。GPU则由数以千计的更小、更高效的核心组成,这些核心专为同时处理多任务而设计。



        下面的视频,Adam Savage和Jamie Hyneman做了一个有趣的试验,来说明CPU与GPU工作方式的不同,以及两者的效能差异。

http://v.youku.com/v_show/id_XNjY3MTY4NjAw.html


        稍微深入一点来讲,CPU和GPU的不同,是因为它们的使命不同。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断,又会引入大量的分支跳转中断的处理。这些使CPU的内部结构异常复杂。而GPU需要处理的则是类型高度统一、相互依赖的大规模数据和不需要被打断的计算环境。因此,GPU和CPU就呈现出非常不同的架构。



CPU与GPU的不同架构

        如上图,这是NVIDIA对CPU和GPU架构的图示。其中绿色的是计算单元(ALU),橙红色的是存储单元,橙黄色的是控制单元。CPU不仅被Cache占据了大量空间,而且还有复杂的控制逻辑和诸多优化电路。而GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。显而易见,CPU虽然也是多核,但GPU的核数远超CPU,被称为众核(NVIDIA Femi架构有512个核,基于NVIDIA Maxwell架构的GM200核数暴涨至3072个核),所以与CPU擅长逻辑控制和通用类型数据运算不同,GPU非常擅长大规模并发计算。

NVIDIA Femi 拥有512个核

NVIDIA Maxwell核数暴涨至3072个核

        GPU的这种架构设计,最初目的是实现图形加速,如图形的T&L坐标位置变换与光照计算,z-buffering消隐,texture mapping纹理映射等等,其中单精度浮点运算占到其处理数据的绝大多数。随后图形学之外的其他领域专家开始注意到GPU的硬件结构非常适应极高并行度与大量浮点吞吐的运算环境,于是使用GPU进行数值分析、海量数据处理(排序,Map Reduce)、金融分析等。GPGPU(General Purpose GPU通用计算图形处理器)的概念也随之诞生。


        现在让我们再回到图形渲染领域,不管是影视动画、建筑表现,还是CG艺术,GPU凭借其专为图形加速而设计的架构和计算能力,为用户带来了一种更加高效的渲染解决方案,即GPU渲染解决方案。与传统CPU渲染相比,GPU渲染具有更快速度、更低成本的优势,而且GPU加速渲染的可用性也不断提高,越来越多搭上GPU渲染标签的高品质作品问世。这些发展趋势,让GPU渲染受到了国内外用户的普遍欢迎。目前,国内已有蓝海创意云·渲染(http://render.vsochina.com/)等平台逐步推出GPU渲染服务。