从CPU到GPU 未来计算应用谁主沉浮?

在谈及计算机的时候,我们就不能不谈计算机的核心——中央处理器CPU。CPU在整个计算机系统里面属于运算核心和控制核心部件,负责解释和执行计算机指令、处理数据。CPU在计算机里面处于核心地位,不仅是包括其担负的职责和功能,而且也包括它直接决定着这个计算机系统的架构和操作系统的类型。

CPU可以按指令集、应用场景和核心数等不同标准进行分类。按指令集可以分为精简指令集(RISC)与复杂指令集(CISC)系统。前者包括有SPARC系列、Power系列、ARM系列等;后者包括AMD、Intel、VIA等的x86架构的CPU。应用场景则主要包括台式机、服务器和移动设备。根据应用场景的不同,在处理器的功耗、核心数、线程和缓存、指令集方面,各不相同。

从CPU到GPU 未来计算应用谁主沉浮?

然而,随着信息技术的进步和应用的日益丰富,长期占据配角的显卡,其核心处理器——图形处理器GPU也逐渐发挥更多作用,不断涌现在人们的关注焦点之中。

GPU是Graphic Processing Unit的简称,它直接决定了计算机显卡的性能表现和产品质量。尤其是在图形渲染、3D动画制作等工作站、高性能计算领域,都严重依赖GPU的功能(有助于减少对CPU计算性能的依赖,分担CPU的计算渲染工作)。

CPU和GPU本是连个互不相同的领域,它们有着各自的厂商。然而,传统的老牌芯片厂商AMD,将CPU和GPU合二为一,推出了独一无二的APU产品。 APU是Accelerated Processing Unit的简称,中文名为“加速处理器”。它是AMD“融聚未来”理念的产品,它第一次将中央处理器和独显核心做在一个晶片上,同时具有高性能处理器和独立显卡的处理性能,支持DX11游戏和最新应用的“加速运算”,可大幅提升电脑运行效率,实现CPU与GPU的真正融合。

与此相对应的是,Nvidia也顺应了这种从单一使用CPU向CPU与GPU并用的“协同处理器”发展趋势,打造了CUDA统一计算设备架构(Compute Unified Device Architecture),允许编程者充分利用CPU和GPU的各自优点,开发出更加高效的应用平台。CUDA的广泛应用造就了GPU计算专用 Tesla GPU的崛起,并且在全球已经拥有超过700多个GPU集群。

从CPU到GPU 未来计算应用谁主沉浮?

英特尔至强融核协处理器

既然提到了GPU集群和加速处理器,就自然不能忽略今年英特尔最新推出的“至强融核”(Intel Xeon Phi)协处理器。该处理器兼容x86编程模型,能够为高性能计算进一步实现优化,通过与强大灵活高效的至强处理器平台协同,能够获得 10Petaflops(万万亿次浮点计算)级别的超级计算能力。

下面,我们分别对CPU、GPU、APU和MIC(Xeon Phi)进行分析介绍,并将在本文最后进行综合对比分析,探讨未来的计算应用谁主沉浮……

下面,我们陆续对这些处理器进行讲解。 在介绍CPU的时候,我们有必要谈谈其发展历史。早期计算机,比如史上第一台电子计算机ENIAC,它们都通常会根据任务的不同,通过物理连接来执行相应的认任务。因此,这些计算机也通常被称为“固定程序计算机”。那时候的CPU被定义为处理软件执行的装置,早期真正意义上的CPU其实是与“存储程序计算机”一同出现的。

从CPU到GPU 未来计算应用谁主沉浮?

工作人员在操作ENIAC主控制面板

CPU可划分成晶体管和集成电路的CPU与微处理器CPU两种。上世纪五十年代至六十年代期间,晶体管CPU体积得到大幅缩减,使得能够更为复杂、更为可靠的CPU能够构建在一个或者多个印刷电路板上。

从CPU到GPU 未来计算应用谁主沉浮?

DEC PDP-8/I的CPU、内存核心和外部总线接口(中等规模集成电路)

在微处理器方面,CPU的历史可以追溯到1971年。当时英特尔推出晶体管数量为2300颗的首个商用处理器4004微处理器,该处理器奠定了PC和智能系统发展的基础。

从CPU到GPU 未来计算应用谁主沉浮?

英特尔80486DX2微处理器(图片来自维基百科)

在CPU发展史中,也包含有AMD、IBM和SPARC、ARM等品牌的产品,不过我们可从英特尔的CPU发展进程来大体了解整个CPU的发展概况。英特尔的Tick-Tock模式,以制程和架构交替更新来不断提升CPU的性能,突破性能瓶颈,满足不断变化增长的计算能力需求。

进入新世纪以来,CPU进入了更高速发展的时代,以往可望而不可及的1GHz大关被轻松突破。在市场分布方面,仍然是Intel和AMD公司两雄争霸。而在企业级市场,尤其是在服务器和高性能计算领域,则以英特尔的至强系列、IBM的Power系列和AMD的皓龙系列著称。

简要介绍了CPU的发展情况之后,下面我们来谈谈它在计算机中扮演的角色。CPU通常都具有以下几个方面的基本功能:

1. 指令顺序控制

这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机工作的正确性。

2. 操作控制

一条指令的功能往往是由计算机中的部件执行一序列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

3. 时间控制

时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地自动工作。

4. 数据加工

即对数据进行算术运算和逻辑运算,或进行其他的信息处理。

在多核和制程已经达到22nm级别工艺的当代,CPU的发展速度十分惊人。不仅能远远满足以往的各种繁重数据查询、处理和顺序串行计算,而且通过多个多核处理器,也能胜任各种并行计算需求。在不远的将来,由于并行计算的广阔前景,CPU更多的会以多处理器架构或者CPU+GPU异构计算来实现。在这一点上,未来计算应用的核心地位,非CPU所能撼动。

刚才我们提到并行计算,其实这恰恰是GPU的优势所在。GPU是显示卡的“心脏”,有时也被称为VPU(visual processing unit)。它相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。

GPU(图形处理器)可用于嵌入式系统、移动电话、个人电脑、工作站、游戏机,甚至某些大型计算机集群等。GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。

从CPU到GPU 未来计算应用谁主沉浮?

GeForce 6600GT (NV43) GPU

GPU通用计算方面的标准目前有OPEN CL、CUDA、ATI STREAM。其中,OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

GPU的出现的时间明显要晚于CPU,而且GPU最早还是由著名的图形显卡公司——NVIDIA,在1999年发布 GeForce256图形处理芯片时首先提出GPU的概念。

从CPU到GPU 未来计算应用谁主沉浮?

GeForce GTX 275 GPU

介绍GPU发展历史,就不能不提1983年英特尔公司推出的 iSBX 275,它是iSBX多模块板,插在iSBC系列单板上,由它提供黑白或彩色图形显示功能。在板上安装的82720图形显示控制器(GDC)的控制下,直接可支持直线、圆、点、弧、矩形、区域填充等高级绘图命令。从而给用户绘图工作带来便利,同时减轻了主CPU的负担。

从CPU到GPU 未来计算应用谁主沉浮?

Amiga 1000

1985年,首个配备有GPU功能的PC——Commodore Amiga面世。该GPU支持画线,区域填充,并包含流处理器可加快操作,并结合多个任意位图功能。1986年,德州仪器发布了首个内嵌图形处理能力的微处理器——TMS34010,它可以运行通用代码,但还是侧重于面向图形处理的指令集。1990-1991年间,该芯片奠定了Windows加速卡图形架构( TIGA )的基础。

从CPU到GPU 未来计算应用谁主沉浮?

基于TMS34020芯片的TIGA架构

1987年,IBM 8514图像系统发布,成为了IBM PC兼容2D图像处理器的首个视频卡。1993年,S3 Graphics推出了第一款单芯片的2D图像加速器,名为S3 86C911。其后,86C911催生了大量的仿效者。随着OpenGL API和DirectX类似功能的出现,GPU增加了可编程着色的能力。现在,每个像素可以经由独立的小程序处理,当中可以包含额外的图像纹理输入,而每个几何顶点同样可以在投影到屏幕上之前被独立的小程序处理。

GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核 心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位 渲染引擎等,而硬体T&L技术可以说是GPU的标志。但随着GPU处理能力的提升,其耗电需求也更加明显,而且比目前的CPU消耗更多的电源。

目前市场上生产GPU的厂家,主要包括英特尔、AMD和NVIDIA、Matrox、S3 Graphics等。

在近期召开的Hot Chips大会上,AMD宣布计划在微处理器设计上采用一种新的尝试,使用高密度等方法来改进其代号为Excavator和Bulldozer系列处理器的性能,而这些技术通 常都是应用在GPU产品设计上面。

从中我们也不难看出,通过收购ATI,利用已有的CPU制造技术和收购获得的GPU技术,实现CPU与GPU的真正融合,推出了APU加速处理器产品。

从CPU到GPU 未来计算应用谁主沉浮?

AMD APU“融聚”(Fusion)处理器

APU(Accelerated Processing Unit)中文名字叫加速处理器,是AMD“融聚未来”理念的产品,它第一次将中央处理器和独显核心做在一个晶片上,它同时具有高性能处理器和最新独立显卡的处理性能,支持DX11游戏和最新应用的“加速运算”,大幅提升了电脑运行效率,实现了CPU与GPU真正的融合。

AMD的APU平台分两种,一种是此前已经能在市面上买到的E系列入门级APU,一种是近期才在欧美市场正式上市的A系列主流级APU,A系列APU分 A4/A6/A8三大系列。其最早推出APU产品,是去年1月的AMD Fusion系列处理器,面向主流市场的Llano APU在去年6月推出。

其实,我们更关心AMD的Fusion APU能否应用在未来的服务器市场上。AMD服务器工作站产品市场总监John Fruehe曾经表示,“AMD早就准备这么做了。”目前还仅限于消费级市场(桌面和移动终端)的APU,如果要想进入服务器市场,势必要跨越软件层面的生态系统构建。因为传统的操作系统和各种应用软件,都是基于处理器的类型来获得支持。

传统CPU厂商AMD,通过收购ATI获得图形处理器方面的更多技术,玩了一把CPU和GPU融合、博采众长的绝艺。而同为竞争对手的NVidia,也同样推出了基于自身技术的通用并行计算架构平台CUDA,以及基于该架构的GPGPU通用计算图形处理器。

CUDA是Compute Unified Device Architecture的简称,它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。它有助于传统GPU获得更高的解决复杂计算问题的能力。也是类似AMD推出的CPU+GPU融合的通用并行计算解决方案。

从CPU到GPU 未来计算应用谁主沉浮?

基于CUDA的Tesla GPU

从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动(如下图所示:两种API)。开发库是基于CUDA技术所提供的应用开发库。运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。驱动部分基本上可以理解为是CUDA-enable的GPU的设备抽象层,提供硬件设备的抽象访问接口。

从CPU到GPU 未来计算应用谁主沉浮?

软件层面CUDA架构图

从CPU到GPU 未来计算应用谁主沉浮?

硬件层面CUDA架构图

CUDA是用于GPU计算的开发环境,它是一个全新的软硬件架构,可以将GPU视为一个并行数据计算的设备,对所进行的计算进行分配和管理。在CUDA的架构中,这些计算不再像过去所谓的GPGPU架构那样必须将计算映射到图形API(OpenGL和Direct 3D)中。

从CPU到GPU 未来计算应用谁主沉浮?

CUDA提供两种API(Runtime API和Driver API)

众所周知,GPU在处理密集型数据和并行数据计算方面优势比较明显。因此,CUDA也比较适合大规模并行计算应用领域,比如光影处理、金融分析、医疗成像、油气勘探、地理信息、基因分析和科学计算等等。

从CPU到GPU 未来计算应用谁主沉浮?

CUDA架构特点

在高性能计算领域,基于NVIDIA图形处理器(GPU)上的并行计算体系架构,CUDA技术能够给服务器和工作站带来更强性能的同时,也能够与基于CPU的服务器集群进行异构,并降低应用软件开发门槛。

同为处理器业界厂商、而且长期占据头把交椅的英特尔,自然也不会闲着。虽说英特尔在中低端也有自己的GPU产品,而且在2年前也推出了将GPU和CPU融为一体的产品,但它并不是第一个、也不是唯一一个推出这种整合方案的厂商。而且相比其他厂商目前的整合方案,英特尔在GPU市场上的差距还有一大截。

然而,英特尔很聪明,它懂得将自己的优势发挥得淋漓尽致。早在2010年全球TOP500榜单发布的时候,英特尔也正式宣布了其第一款MIC(Many Integrated Core,集成众核)众核架构产品Knights Ferry面向用户提供测试的消息,此举被认为是英特尔在Larrabee(英特尔GPU芯片代号)计划转型后最重要的高性能计算协处理器计划,也预示着英特尔开启了全新的超级计算速度、性能和兼容性时代。

从CPU到GPU 未来计算应用谁主沉浮?

英特尔集成众核架构

从CPU到GPU 未来计算应用谁主沉浮?

MIC架构特点(高并行、高扩展、兼容已有编程模式)

在今年6月发布全新HCP TOP500排行榜之际,英特尔宣布所有基于这种MIC众核架构的产品都将统一采用全新品牌——Xeon Phi(至强融核),其第一代至强融核产品将于今年底正式推出。MIC架构下的至强融核产品主要为高度并行的工作负载提供更好的性能,未来还将满足包括数据中心和工作站等在内的各个计算应用领域。

从CPU到GPU 未来计算应用谁主沉浮?

基于MIC架构的Knights产品家族发展路线图

英特尔至强融核协处理器将采用创新的22纳米3-D 三栅极晶体管制程技术,可在PCI-E插卡形态下集成超过50颗内核和支持最低8GB容量的GDDR5内存。此外,它还具备支持512b SIMD 指令的特点,可在单个指令控制下同时处理多个数据元素,从而能显著提升性能。

从CPU到GPU 未来计算应用谁主沉浮?

可扩展的编程模式

至强融核品牌汇聚了至强强大的工艺处理实力和丰富成熟的关键业务、云计算、HPC等各类应用,属于英特尔至强家族产品的组成部分。基于x86处理器架构的MIC,能够更容易的进行应用程序编程,并且在多核、多个多核处理器广泛应用的时代,能够兼容原有的编程模式,而且在和多个集群上也可以进行性能调优。

前面我们对CPU、GPU、 APU和GPGPU、MIC进行了简要分析。下面我们来小结概况下。首先我们从未来发展趋势来看,并行计算的应用会越来越多,这主要体现在原有的游戏、 3D动画、特效渲染和其他科学领域。而由于CPU和GPU早期的设计思路的不同,CPU在通用计算领域和逻辑处理方面,拥有较为强大的计算性能,但对于数学计算方面,其速度并不如拥有海量处理核心的GPU快。相反,GPU虽然数学计算性能强大,大规模并行处理方面有突出表现,但逻辑处理能力不足,不能胜任日常和通用型计算,而只能应用在某些计算领域。

经过多年的发展,GPU已经在很多领域得到应用,尤其是在超级计算机方面。比如中国“星云”和“天河一号”分别配备了AMD Radeon HD 4870 X2、NVIDIA Tesla C2050,通过使用特殊软件让GPU执行并行数据操作,分担CPU工作量,提升计算速度。

从CPU到GPU 未来计算应用谁主沉浮?

“天河一号A”采用至强CPU+Nvidia GPU异构计算模式

在此思路上,不少厂商也都纷纷提出了加速处理器、协处理器的概念。比如AMD的APU加速处理器和英特尔的至强融核协处理器,就是其中最为典型的代表。

从CPU到GPU 未来计算应用谁主沉浮?

至强融核协处理器

APU主打CPU和GPU融合,通过提升GPU的通用计算性能和协同计算,将具有高性能处理器和显卡核心放置在同一个芯片上,大幅提升计算机运行效率。基于MIC架构的至强融核产品,专门面向百亿亿次计算时代而设计,将着眼于更多、更小的内核和更宽的矢量单元,并且能上下兼容、保护用户投资、实现更强扩展,在已有编程模式下,和已有的处理器(至强系列)之外,提供更为强大的并行计算效率。

另一方面,APU和至强融核都被各自厂商寄予了厚望。它们各自也都有着自己完整的发展路线图。AMD的APU实现CPU和GPU融合,将通过物理整合、平台优化、架构整合和架构与系统整合四大步骤逐步推进;而英特尔的至强融核,其第一代产品将首先应用在HPC高性能计算领域,未来将会逐步扩展到包括服务器和工作站、数据中心在内的各个企业级计算应用领域。

纵观未来发展模式,仅凭单一的架构来实现更高的计算效率显然并不现实。采用CPU+GPU的异构计算模式(包括CPU+协处理器、加速处理器等),势必会迎来更大的发展浪潮。相比这种发展趋势的担忧,我们更应将注意力放在这种异构模式下的软件生态系统建设上面。