什么是GPU(图形处理器)计算?
GPU(图形处理器)计算使用GPU来执行通用科学与工程计算。GPU计算模型在一个异构计算模型中同时使用了CPU和GPU。应用程序的顺序部分在CPU上运行,计算密集型部分在GPU上运行。虽然应用程序使用了GPU的卓越性能来提升运行性能,但对用户而言,他们所能感知到的将仅仅是运行速度更快的应用程序。

处理器计算与GPU计算的关系
应用程序开发人员将需要修改其应用程序中的计算密集型内核,并将其关联到GPU。应用程序的其它部分将仍然依赖于CPU进行处理。将一项功能关联到GPU需要重写功能,以在其中支持并行处理,同时添加“C”关键字以在应用程序和GPU之间往返传输数据。
GPU计算得到了NVIDIA被称作CUDA架构的GPU大规模并行架构的支持。CUDA架构由100多个处理器内核组成,这些内核能够协作运行来处理应用程序中的数据集。Tesla10系列GPU是第二代CUDA架构,包含有专为科学应用程序优化的特性,如IEEE标准双精度浮点硬件支持、以分布于GPU中的共享内存形式存在的本地数据高速缓存、以及结合内存访问等。
GPU计算的发展历史
图形芯片最初用作固定功能图形管线。随着时间的推移,这些图形芯片的可编程性日益增加,在此基础之上NVIDIA推出了第一款GPU。1999-2000年间,计算机科学家,与诸如医疗成像和电磁等领域的研究人员,开始使用GPU来运行通用计算应用程序。他们发现GPU具备的卓越浮点性能可为众多科学应用程序带来显著的性能提升。这一发现掀起了被称作GPGPU(图形处理器通用计算)的浪潮。
此处需要解决的问题为GPGPU要求使用图形编程语言来对GPU进行编程,如OpenGL和Cg等。开发人员需要使其科学应用程序看起来像图形应用程序,并将其关联到需要绘制三角形和多边形的问题。这一方法限制了GPU的卓越性能在科学领域的充分发挥。
为此,NVIDIA决定投资来修改GPU,使其能够完全可编程以支持科学应用程序,同时还添加了对于诸如C和C++等高级语言的支持。此举最终推动诞生了面向GPU的CUDA架构。
CUDA并行架构与编程模型

CUDA并行编程模型
CUDA并行硬件架构伴随有CUDA并行编程模型。该模型提供了一个抽象集合,能够支持实现精细和粗放级别的数据与任务并行处理。编程人员可以选择使用高级语言(如C、C++和Fortran)或驱动程序API(如OpenCL和DirectX-11Compute)来实现并行处理。
NVIDIA率先提供支持的语言为C语言。一系列面向CUDA的C语言软件开发工具支持基于C语言,使用最小的关键字或扩展集合来对GPU(图形处理器)进行编程。对于Fortran和OpenCL等语言的支持将很快推出。CUDA并行编程模型可支持编程人员将问题划分为粗放子问题,以并行方式独立解决。之后编程人员再对子问题进行精细并行处理,以便所有子问题能够以并行方式协作解决。
(以上内容摘选自NVIDIA官方网站对于Tesla的介绍,有删改)