不同的计算类型决定了GPU的架构更加适合通用计算
另外一种不同类型的计算问题——并行计算,却一直局限在大型服务器集群和超型计算机领域。标准CPU架构的特长是管理多个离散的任务,但是有些任务能够被细分为多个更小的单位并且可以被并行化,CPU在处理这些任务的时候并没有突出的性能优势,但这恰恰就正好是适合GPU解决的问题类型。
对于快速、廉价的解决这一类问题,GPU有着相当大的潜力可以发挥。GPU计算可以使得PC和工作站具有超级计算的能力,并且可以扩展服务器集群的处理范围,以解决先前CPU集群不能处理的问题。
GPU计算的目标是充分利用GPU先天的巨大计算能力,以解决在高性能计算领域内许多相当困难但很重要的问题。
GPU的浮点运算能力和CPU不在一个数量级
上图的结果主要是由于GPU在架构上就是为计算密集型处理而设计,高强度并行计算—这本身也是图像渲染的需要。因此在GPU中,更多的晶体管被用于数据处理而不是数据存储与流控制。
GPU特别适合处理那些可以具有较高算法强度且可以被被表达为并行数据计算的问题,换句话说,同样的程序如果通过细分成众多数据元素的并行执行,会具有较高的算术操作与存储操作之比。
CPU的处理方式是使用一个单独的程序顺序的循环处理数据,GPU则是进行数据的并行处理,它把数据元素映射、规划为数以千计的并行处理线程。很多应用程序都有一个较大的数据集,就可以通过数据并行编程模式来加速他们的执行。这些应用程序包括:
·地震模拟
·计算生物学
·选择商业风险计算
·医学成像
·模式识别
·信号处理
·物理仿真
NVIDIA Tesla:GPU计算解决方案
NVIDIA提供了一套完整的GPU计算产品线,包括系统产品和全新的开发环境。产品线的中心是基于GeForce 8系列架构的GPU,以及CUDA开发工具包和C编译器。
G80特殊的缓存式架构进一步提高了ALU浮点运算效能
·NVIDIA Tesla GPU将给PC和工作站带来更高计算性能;
·NVIDIA Tesla GPU 桌面超级计算机配合标准工作站可以提供令人难以置信的高强度计算性能;
·NVIDIA Tesla GPU 在一个1U形式的装置内集成了高密度的GPU核心;
·NVIDIA CUDA开发环境包含了快速傅氏变换、BLAS 算法。
·NVIDIA 软件开发包提供了文档以及编程样例。
NVIDIA计算解决方案设计上与现行的IT基础结构做到了无缝衔接,遵守下列的工业标准:
· C 编译器,提供一个为令人熟悉的、支持度很好的开发环境
· 支持独立128bit的IEEE 754单精度浮点单元,和CPU浮点单元一样支持各种高级的浮点操作。
· 可以兼容于Intel/AMD的x86 32-bit和64-bit微处理器架构以及Microsoft or Linux 的操作系统。
NVIDIA CUDA GPU计算软件
NVIDIA CUDA技术基于一种全新的用于开拓GPU运算性能的软件架构,CUDA程序执行时,GPU作为主CPU的协处理器工作,GPU可以处理大量的并行信息,同时CPU组织、解释、与后台交流要处理的信息。应用程序的计算密集型部分要被执行很多次,每次由主应用程序提交的不同数据,经过编译后由GPU并行执行。