GPU面临类似的问题
GPU是另一个例子。跟主流的CPU相比,GPU的原始浮点性能要强劲得多。比如,3GHz的奔腾4运算能力大约为6GFLOP(10亿次浮点运算每秒),Woodcrest最高可达24GFLOP,四路双核安腾2系统运算速度可达45GFLOP。而GPU要领先的多,比如ATI高端的X1950 XTX处理器运算速度为375GFLOP,双显卡模式达到750GFLOP,相当于31个Xeon 5100处理器;Nvidia的Geforce 7950 GX2双GPU显卡也能达到384GFLOP。
![]() |
GPU与CPU之间的性能对比
当然,浮点性能只是一方面,GPU要完全取代CPU还有很大的距离。GPU可以在部分急需数学计算的领域表现出色,但是GPU内部缓存远小于CPU,因此,CPU可以存储预测和非预测指令,GPU则无法做到。AMD和NVIDIA都在准备新一代GPGPU产品,分别基于R600和G80,NVIDIA将G80用于GPU计算,AMD将R600用于流计算,这种产品在PCB上集成尽可能多的内存,而输出接口只有1个DVI。NVIDIA有可能在Computex 2007大会上发布GPGPU版的G80产品,同时发布正式版的CUDA SDK以配合GPGPU版的G80。
而且,GPU也面临跟CELL类似的浮点运算局限性。如果NVIDIA和AMD想将GPU成功引入科学计算市场,它们就必须就相应设备的浮点问题做出某些决定。当前,这二者都无法提供任何双精度硬件(double precision hardware),IEEE 754兼容性问题也还没有得到完全解决。然而,NVIDIA最新的G80设备已经开始支持rounding modes、overflow和NaN。
这里的问题是,为了支持GPU的科学浮点运算性能,NVIDIA和AMD在改进GPU架构方面会走多远?另外,GPU工程师还不得不考虑内存纠错、低功耗等方面的问题,以提供更强壮的HPC方案。
综上所述,随着多核时代的到来,为了平衡应用需求和硬件性能之间的紧张关系,英特尔、IBM、AMD、NVIDIA等芯片厂商已经开始做更多的工作——编译器、接口库、软件工具等等,甚至通过GPU和CELL等“另类”的方法来提供HPC应用加速技术。一些软件厂商如PeakStream和RapidMind等,也企图借机填补多核硬件与并行软件之间的巨大鸿沟。
