GPU计算逐渐大规模商用
曾几何时,CPU就是计算领域的绝对主宰。不过,当GPU不仅仅被应用在图形方面,它就开始占据计算的一席之地。而未来,它更可能成为计算的新的中坚力量。随着开发工具的日趋成熟,GPU的应用领域得到了不断的拓展。
近日,中国科学院和清华大学分别被授予CUDA卓越中心,同时,NVIDIA在中国举办的CUDA编程竞赛――CUDA未来之星评选也告一段落。这次评选中,很多优秀的CUDA应用涌现出来,将GPU计算向前推进了一大步。这次竞赛展示了中国科学院和清华大学在GPU计算方面的丰硕教学成果,显示了中国在GPU计算方面的实力。
低成本高效率
今天,超级计算系统已经被广泛应用在科学计算、石油石化、冶金、气象等众多领域。然而,很多模型模拟过程非常复杂,即使使用大规模的计算系统,计算同样需要很长的时间。同时,峰值性能和持续性能的不一致也带来了计算的瓶颈。
在CUDA卓越中心授牌仪式上,来自中科院和清华的专家学者们展示了其研究成果。
中科院基因组研究所将在当今生物信息学领域得到广泛应用的BLAST算法向GPU进行了移植。这是一套针对DNA、蛋白序列数据库的序列查询算法和软件包。尽管BLAST处理少量序列的速度不慢,但随着DNA侧序技术的飞速发展,研究人员可以在短短几天内得到海量序列数据,这样,对这些数据的分析就成了瓶颈。
通过从串行到并行的转变,BLAST算法成功在GPU上得以实现,大大提升了效率。根据中科院的实践结果,基于NVIDIA Tesla平台的BLAST软件中的一个关键模块运行速度比单个CPU快35倍。
基于GPU,中科院过程所建立了一台自己的超级计算系统。与通用系统比较,运营系统成本从约2亿元降到不到2000万元,峰值能耗从约1.5兆瓦降至不到0.3兆瓦,占地面积也明显减少,然而其效率却很高。在对中石化清洁汽油工艺的放大和优化模拟程序中,进行内部结构优化时,单CPU的处理效率为每天计算可以模拟4~5秒现实时间,而单GPU在一个小时内就可模拟3~5秒现实时间。
清华大学计算机系副系主任陈文光教授对GPU编程进行了理论探讨。他也展示了在EDA模拟方面GPU的高运行效率。他指出,在某些逻辑模拟方面,GPU的效率可以提升10~100倍;在DSP-FIR filtering的模拟上,GPU的效率提升可达280倍之多。
API推动应用前进
毋庸置疑,NVIDIA在2006年成功推出的CUDA架构是最早大规模应用的GPU计算架构。它具备一个更适合于并行计算的架构,提供了硬件的直接访问接口,并率先提供了针对GPU编程的C语言开发环境。
不过,当GPU计算日渐火热,新的异构计算运算应用程序接口也逐渐出台。OpenCL和DirectX Compute就是两个代表性产品。
OpenCL是由曾推出OpenGL的开发组织Khronos推出。而DirectX Compute则将被包含在微软的DirectX 11中。
比较起来,CUDA的优势在于,它不仅仅是一套程序接口,更是一套包含基础的GPU架构及其上的软件环境的整体解决方案,它同样支持OpenCL或DirectX等API。
实际上,无论是OpenCL还是DirectX Compute,都是NVIDIA非常欢迎的。NVIDIA总裁黄仁勋向记者表示,NVIDIA的目标是推动整个GPU计算的前进,在GPU计算方面的每一个API都是GPU计算前进的动力。同时,黄仁勋也表示,CUDA的优势在于,它是一整套软硬件架构,因而可以广泛应用在Windows、Linux等不同的应用环境中。
另一方面,由于OpenCL和DirectX在消费类软件中的影响力,“异构计算”有望在个人用户中得到更广泛的应用,真正实现系统整体计算能力的最大化。