经过38年的快速发展,传统微处理器技术的收益开始递减,提高时钟速度和架构复杂的步伐正在放缓,随着单线程性能不断提高,重点已转移到多核设计。
这些也限制了个人电脑的发展,四核CPU的价格是双核CPU的两倍,性价比不高,在未来的个人电脑里,更高核心的芯片不太可能成为有价值的驱动力,
CPU永远不会消失,但GPU在PC系统架构中的作用将更加突出,GPU更具成本效益和能源效率,能为应用程序提供更好的性能表现。
GPU的迅速普及,也使它们成为高性能计算(HPC)的自然选择,游戏和其它消费应用每年创造了数百万高端GPU的需求,如此大的市场需求,促使NVIDIA这样的公司为HPC市场更快提供相关产品。
NVIDIA的下一代CUDA架构(代号Fermi)是这一趋势最新,最主要的表达,运行并行软件,与任何传统CPU相比,性能高出数倍,新功能也使得软件开发人员更容易利用硬件的全部潜力,基于Fermi的GPU将把超级计算带给更多用户,比以往任何时候都要多。
Fermi是第一个为大部分吃力的HPC应用程序交付所需功能的架构,如不匹配的双精度浮点性能,IEEE 754-2008遵从,从寄存器到DRAM的ECC保护,简单的线性寻址模型,支持多种编程语言,包括C,C++,FORTRAN,Java,Matlab和Python。
有了这些功能,加上其它许多功能和可用性增强,Fermi是第一个完整的GPU计算架构。
CPU计算——伟大的传统
微处理器过去的38年是技术进步最大的时期,摩尔定律描述了这种进步的速度,在交通运输、农业和机械工程领域都没有如此快的进步,想想300年前的工业革命有什么不同,例如,从1771搭配1809年,结构材料的强度每18个月就会增加一倍,再看看蒸汽,19世纪就已经出现豌豆大小的内燃机,压缩氢产生核聚变进行发电。
CPU性能是许多相关进步的产物:
晶体管的密度增加
更强的晶体管性能
更宽的数据通路
流水线技术
超标量执行
推测执行
缓存
芯片和系统级集成
微处理器的第一个30年几乎完全侧重于串行工作负载:编译器,管理串行通信链接,用户界面代码等等。最近,CPU的发展已可以满足金融交易处理,计算流体力学并行工作负载的需求。CPU非常了不起,它们很容易进行编程 ,因为编译器演变到可以和硬件一起运行,软件开发人员可以忽略大多数现代CPU的复杂性,微架构几乎是无形的,编译器像魔法一样将其隐藏起来,多核芯片和之前的多处理器系统软件架构是相同的:一个简单连贯的内存模型和相同的计算引擎海洋。
CPU核心单线程性能在并行执行时继续得到优化,整数和浮点执行单元只占现代CPU芯片面积很小的一部分。图1显示了酷睿i7处理器中ALU使用的面积部分(芯片代号Bloomfield),基于Intel的Nehalem微架构。
图1 Intel的酷睿i7处理器(芯片代号Bloomfield,基于Intel的Nehalem微架构)包括四个CPU核心,同步多线程,8MB三级缓存,片上DRAM控制器,使用45nm工艺技术制造,每个芯片上有731万个晶体管,热设计功耗是130W,红色轮廓突出显示了每个核心部分所占用的执行单元(资料来源:Intel公司。红色突出显示除外)
只有这么一小部分芯片投入直接计算,因此CPU对高性能计算应用来说相对低效一点也不奇怪,大多数电路在CPU上,因此它会产生大部分热量,无形中增加了复杂性,那些缓存,指令解码器,分支预测器和其它功能架构是不可见的,但它可以增强单线程性能。