服务器 频道

GPU让桌面型超级计算机不再是梦想

象学C语言一样学习CUDA

    对于高性能并行计算而言,硬件和软件是不可分割的两大支撑。NVIDIA对GPU架构进行了根本性的改变,使其可以用C语言来编程。为了理解CUDA的作用,不妨让我们回到本文开头的那个比方,10个人轮流地向桶中倒水的顺序比较容易控制,而当10个人并行地向桶中倒水时,如何保证效率呢?Sumit Gupta调侃道,“CUDA在GPU多核并行计算中起到的作用就好比是军队里的将军一样,通过它来保证并行高效有序地实现。” 跟CELL、FGPA以及其他GPU相比,CUDA环境支持已经成为NVIDIA GPU计算的一大优势,用户借助CUDA可以更加方便地使用GPU计算。

    Sumit Gupta告诉记者,过去并行编程语言只有一两所大学或一两个研究机构在使用,而现在CUDA是全球先进个广泛使用的并行编程环境。CUDA的客户数量已经达到了250家,涉及生命科学、医学设备、工业生产、石油天然气、电子设计自动化、制造、金融、通讯等多个领域。CUDA有英文、中文、日文、韩文和西班牙语等多个版本,支持Linux、Windows、Mac OS等多种操作系统,全球有50多所大学开设了CUDA并行编程课程。清华大学、中科院等也将陆续开通CUDA的教育培训。“也许以后学生要象学C语言一样学习CUDA。”

    据了解,开发人员只要用CUDA开发一次程序,就既可以在CPU上运行,也可以在GPU平台中使用。这样,当用户没有用到GPU的时候,就可以在普通电脑上使用。可见,尤其对于新创的小型软件厂商来说,CUDA是一个挑战大ISV的不错机会。

    虽然CUDA 1.0发布只有一年的时间,但截止到2008年6月份,CUDA编译器下载量已经达到了10万,CUDA GPU市场保有量也达到了8000万颗。CUDA2.0版本将开始支持多个处理器和多核心。

    Sumit Gupta表示,下一步,CUDA会支持FORTRAN和C++,未来还将让两个GPU直接通信而不需要经过CPU,可以进行多核多线程调试,推出GPU群集管理软件等等。
 

小结:GPU Vs. CPU

    Sumit Gupta认为,计算机的发展存在两条路线,一条是多核X86 CPU针对数据库、操作系统等顺序执行的处理架构,另一条是多核GPU的高性能并行计算架构。

    由于受到空间、电力、冷却等因素的限制,高性能计算系统从过去的高主频单核X86处理器转向了多核,但多核系统目前也面临着“内核数超过16个以后性能无法随内核数线性扩展”以及并行软件限制等问题,在这一背景下,GPGPU等加速技术的出现,为高性能计算带来了新的希望。于是,我们看到,IBM用12960颗Cell核心和6948颗双核AMD Opteron处理器构建起了全球先进台每秒运算一千万亿次的超级计算机走鹃,AMD在整合ATI之后启动了把CPU和GPU内核集成到一个芯片中去的Fusion计划,英特尔计划明年发布Larrabee处理器进入高端图形市场,NVIDIA Telsa和CUDA更是让人们清晰地看到了GPU进军高性能计算领域的新气象。

    Sumit Gupta认为,将CPU和GPU集成在一起的做法对中低端市场会比较有意义,而对于高端市场,大型GPU加上少数CPU的做法会更具优势。而后者,正是NVIDIA目前和未来要拓展的一块全新的业务。

0
相关文章