1. GPU的起源
作为计算机中主要计算单元的中央处理器CPU(Central Process unit)经过了50多年的发展,已经具有很高的运算速度,CPU受工艺和功耗的约束时钟频率已经到达了极限,很难再有提高[1]。但随着图形图像处理技术的进一步发展,对于运算速度有了更高的要求,于是用于实现图形加速的GPU就随之产生了。图形处理器GPU(Graphic Processing Unit)的概念,最先由NVIDIA公司在1999年发布它的GeForce 256图形处理芯片时提出。一块标准的GPU芯片一般主要包括如下的部件:2D单元、3D单元、视频处理单元、FSAA(Full Scene Anti-aliasing全景抗锯齿)单元和显存管理单元[2]。
2. GPU与CPU的对比
作为从CPU之上发展起来的GPU,它们之间存在着差异。
首先是两者架构的不同。CPU一般由逻辑运算单元ALU,控制单元和存储单元组成。CPU有70%的晶体管用来构建Cache和一部分控制单元。CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存。CPU有足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件。所以CPU拥有超强的逻辑能力。GPU包括大量的运算单元,数字逻辑运算单元也少而简单。GPU的核数远超CPU,被称为众核,但每个核拥有的缓存大小相对小。于是GPU拥有超高的运算速度[3]。由于拥有多核,GPU的功耗远远超过CPU。
其次是应用场景。由于GPU的设计架构,GPU对于数据量大,类型不复杂,具有类似性,计算量大但是逻辑性不强的平行数据具有很强的并行运算能力[4]。而CPU是设计用来处理串行任务的处理、加工、运算以及系统核心控制等工作,CPU的架构是为高效率处理数据相关性不大的计算类、复杂繁琐的非计算类等工作而设计的。GPU相对于CPU拥有高带宽的独立显存、高浮点运算性能、几何计算能力强、适合处理并行计算任务的优势[4]。
3. GPU的应用
GPU最早的设计用途是用于作为CPU的辅助计算部件,用于加速图形图像计算,基本上是为了进行图形的消隐,纹理映射,图形的坐标位置变换、光照计算等。基于Intel提出Larrabee架构,NVIDIA提出的CUDA(Compute Unified Device Architecture统一计算设备架构)等[3]。使GPU变为一种可编程的显示计算通用架构芯片有了更多的用途。
现代的GPU应用于高性能计算[5],基于GPU的异构计算系统应用于超级计算机的研发。如我国的自主研发的千亿万级超级计算机“天河一号”使用的便是GPU+x64 CPU的基础架构。天河一号采用14336个英特尔六核处理器Xeon X5670 2.93GHz和2048颗拥有我国自主知识产权的x64八核处理器飞腾FT-100作为超算的主控处理器和调度节点。系统的协处理器采用了英伟达Tesla M2050 GPU。超级计算机“神威·太湖之光”也是基于GPU+CPU架构完成的[6]。
现代GPU也被用于人工智能与机器学习领域。人工智能和机器学习两者都是大规模并行问题,而这正是GPU所擅长的。意大利能源公司 Eni和美国的Stone Ridge科技使用3200个NVIDIA Tesla GPU和Stone Ridge的ECHELON软件进行基于GPU 的油矿仿真,在大约 15.5 小时内就能处理了10万个油矿模型,每一个模型平均在28分钟内就能仿真了油矿15年的生产量。如果使用传统的硬件和软件,完成这项任务需要10天的时间[7]。
4. GPU的发展历程
GPU技术发展的主要主要引导者是NVIDIA。NVIDIA占有着最大的市场份额[8]。到目前为止,NVIDIA公司一共正式发布了六款GPU 核心架构,分别是2008 年推出的Tesla 架构(首次发布了 CUDA 通用并行计算开发架构)、2010 年推出的Fermi架构(首次在GPU 中增加了FP64 双精度浮点运算处理核)、2012 年推出的Kepler架构(首次在GPU中引入了动态并行计算技术)、2014年推出的Maxwell架构(低 功耗优化及支持微软的DX12图形加速接口)、2016年推出的Pascal架构(优化统一内存寻址unified memory机制,首次引入3D内存及NVLink 高速互联总线)、2017年5月推出的Volta架构(首次引入Tensor(张量)运算单元)[9]。
GPU芯片如今主要的应用于高性能计算领域,基于GPU的异构计算系统应用于超级计算机的研发。应用于人工智能,机器学习技术,甚至还出现了专用于深度学习的GPU芯片[10]。未来的GPU芯片将朝着更小的体积,更快的运算速度,更低的成本,更广的应用范围,更高的集成度发展。
随着可编程的显示计算通用架构芯片的成熟,它将逐步取代GPU的地位,显卡则会慢慢被集成取代,作为独立硬件生存的空间会越来越小。正如英特尔公司高级副总裁兼数字企业事业部总经理帕特·基辛格在IDF 峰会上的讲话。“可编程的显示计算通用架构芯片是一场革命,它将颠覆持续了几十年的显卡产业,可编程的显示计算通用架构芯片虽然不会马上替代显卡,但是在三四年之后,随着我们相关技术、产品的成熟上市,显卡产业将消亡。”[2]
参考文献
[1]李红辉,刘冬冬,杨芳南.CPU+GPU异构并行计算技术研究[J].信息系统工程,2018(05):39-40.
[2] 周治国.GPU CPU谁革谁的命[J].上海信息化,2008,(6)
[3]https://www.nvidia.cn/object/what-is-gpu-computing-cn.html
[4]钟联波.GPU与CPU的比较分析[J].技术与市场,2009,16(09):13-14.
[5]李红辉,刘冬冬,杨芳南.CPU+GPU异构并行计算技术研究[J].信息系统工程,2018(05):39-40.
[6]邓彦伶.基于GPU的异构计算技术在超级计算领域的现状及发展展望[J].电脑迷,2017(08):201.
[7]Andy Patrizio. GPU:为何对HPC和AI越来越重要?[N]. 计算机世界,2018-08-06(005).
[8]曹璐云.AMD和NVIDIA两家公司GPU架构由分到合发展综述[J].信息与电脑(理论版),2016(11):58-59+99.
[9]陈云海.Nvidia GPU核心架构技术演进分析[J].广东通信技术,2018(11):52-58+77.
[10]寒意.以深度学习为目标,NVIDIA发布首款Volta架构GPU[J].华东科技,2017(05):14.