服务器 频道

使GPU计算更高效 Tesla加速卡将支持ECC

  【IT168评测中心】早在2007年6月21日,NVIDIA公司发布了GPU计算产品的新家族——NVIDIA Tesla。这个全新的Tesla品牌既不同于个人娱乐消费级的GeForce,也不同于专业图形渲染的Quadro,它是专为通用计算而生的,凭借强大的流处理架构将科学计算性能提进一步提升。

  到了今天,NVIDIA Tesla已经发展到了Tesla 10产品。近年来,NVIDIA一直在力推GPU通用计算,试图将其产品更多的用在游戏之外,走向企业和高性能计算市场。不过,目前GPU通用计算还很难在企业或超级计算机市场得到大规模应用,其中非常重要的原因就是错误校验机制的缺失。

  什么是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的介绍,有删改)

  文章之初我们提到,目前由于错误校验机制的缺失,GPU通用计算还很难在企业或超级计算机市场得到大规模应用,因为目前还没有相关的运行保障。


Tesla通用加速卡

  不过近日,来自国外媒体的消息指出——NVIDIA很可能在下一代Tesla通用加速卡中,引入对ECC显存的支持。理由在于,目前在HPC高性能计算市场中,支持错误校验的ECC内存几乎是必不可少的组件,而GPU通用计算却无法利用这一功能。科研、开发等用户如果想要使用GPU计算,必须将同样计算过程运行两次以保证精确性。而目前GT200 GPU的运算性能相比Intel Nehalem处理器优势尚不足一倍,重复一次运算过程就会让GPU通用计算的速度从优势变为劣势。

  目前,NVIDIA在Quadro和Tesla这类专业卡中依然在使用普通的GDDR3显存颗粒,不过相比普通游戏卡会对显存颗粒进行更加严格的挑选以保证稳定性。如果要引入ECC显存,板卡上的显存颗粒需要从8颗增加到9颗,PCB需增加新的针脚,GPU内的显存控制器模块也需要进行改进,成本必然有所增加。不过,这点成本相对于Tesla的高价格来说肯定不算什么。

  正式基于以上的考虑,NVIDIA在GPU中增加ECC显存支持也是大势所趋。或许在不久的将来,NVIDIA在下一代GPU中就会预留ECC支持,并在专业卡中启用这项功能。(完)

0
相关文章