GPU争夺霸权!NVIDIA谈超级计算机发展
● Tesla基于NVIDIA CUDA,该技术最显著的特点就是能够利用GPU的并行计算能力,在大规模、高带宽计算中有着极大的优势。 但是,面对串行计算密集型任务,Tesla是否有解决办法呢?
Andy Keane:GPU及其内部的CUDA架构是专为并行计算而设计的。
串行计算是一种有很大区别的架构,这种架构的设计目的是为了解决不同的问题。CPU执行指令的方式就是一个接着另一个地执行。CPU中有许多能够加速串行计算的技术。高速缓存、无次序执行、超标量技术、分支预测……均为抽取指令的技术或一系列指令的串行级并行机制。CPU对片上高速缓存的设计与容量的依赖也非常大。如果程序大小与CPU高速缓存容量不匹配,那么该程序在CPU上的运行速度将会很慢。
GPU内部的并行计算架构围绕两个基本概念而设计。首先,程序中的数据可分成许多个部分,而为数众多的核群可以并行地处理这些数据。第二个架构方面的设想是,数据将不与高速缓存匹配。例如在图形计算或石油天然气数据处理上,数据量可能会达到兆字节甚至是太字节,用高速缓存来容纳如此巨大的数据量几乎是不切实际的。考虑到这两点设想,GPU被设计为能够使用数以千计的线程,所有线程均并行地执行,能够访问巨大容量的本地存储器。在最新的Tesla产品中,每颗GPU均配备4GB存储器,可容纳待执行的数据。同时针对反复使用的数据,还设有较小的片上存储空间,GPU所配备的巨大容量存储器等同于CPU内部的高速缓存,只是容量大了许多倍而已。
● 获取软件时,中国的超级计算机用户要么购买商业软件解决方案,要么自己开发,或者在商业软件解决方案的基础上进行二次开发。 CUDA与独立软件供应商之间有一定的合作,你有没有成熟的软件应用程序推荐给用户使用? CUDA怎样帮助这些想要自己开发软件的用户?
Andy Keane:我们与打算发布超级计算软件的独立软件供应商都进行了积极的开发工作。分子动力学领域的《NAMD/VMD》以及《GROMACS》是为群集GPU发布的两个应用程序例子。在美国的超级计算展会上,我们还展示了许多用于石油天然气领域地震处理、量子化学以及Ansys有限元设计的应用程序。
对于想要自己设计和开发应用程序的开发人员,用于CUDA架构的并行计算开发C语言编译器可从NVIDIA网站上免费下载。Portland Group的Fortran等其它编译器也正在陆续推出。有很多来自NVIDIA以及其它来源的程序库,这些库使应用程序更易于开发。针对这些不懂C语言或Fortran的开发人员,Accelereyes以及Wolfram(Mathematica)等公司还提供了GPU加速版的软件。因此你可以看到,利用GPU计算优势的方式有许多种。