台北电脑展2011!通用计算时代已来临
泡泡网显卡频道6月2日 在2007年,NVIDIA推出了第一代采用CUDA通用并行计算架构G80,该架构的出现使GPU开始能够解决复杂的并行计算问题。经过了几代的发展,如今新一代Fermi构架产品——Tesla系列产品,配合最新版本的CUDA指令集,已经能够使开发人员可以使用C语言来为CUDA架构编写程序,而C语言是应用最广泛的一种高级编程语言。
正是在这样的背景下,目前Tesla系列产品已经广泛应用到服务器领域,全球排名前十的超级计算机也大多数采用了Tesla系列产品,在本届台北电脑展中尽管NVIDIA展台并没有大肆宣扬该系列产品,但其产品已经渗透到了各家服务器厂商的展台中。
超微展示基于Tesla产品的刀片式服务器
超微展示基于Tesla产品的塔式服务器
简单的理解,基于CUDA架构的产品就是让之前只能处理图像渲染的GPU通用化处理任何类型的计算,而能够实现任意类型计算的处理器只有CPU,但CPU的计算能力相对于CPU来说很弱,尤其是在处理一些高性能计算的时候CPU的性能明显不足。GPU的通用化可以让需要高性能计算的时候直接调用GPU进行计算,CPU仅仅是处理程序本身的一些工作。
目前支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。
CUDA构架产品并不是单一的硬件或软件产品,而是一整套解决方案。目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。在编程方面,目前CUDA最新的版本为CUDA 4.0。
● CUDA 4.0版本3大重要改进
GPU Direct2.0技术——支持一台服务器或工作站内多GPU之间的点对点通信。这让多GPU编程更加轻松并且能够提升应用程序性能。
统一虚拟寻址(UVA)——能够为主系统内存和显卡显存提供一个合并的存储器地址空间,让并行编程变得更快、更容易。
Thrust C++模板高性能基元库——能够提供一系列强大的开源C++并行算法和数据结构,这些内容能够让C++开发人员的编程工作变得轻松。与使用标准模板库(STL)以及线程构件(TBB)时相比,通过利用Thrust,并行排序等例程的速度可提升5至100倍。
Acer展出采用Tesla构架的机架式服务器
● CUDA 4.0架构版本其它特性与功能:
MPI与CUDA应用程序相结合,当应用程序发出MPI收发调用指令时,例如OpenMPI等改编的MPI软件可通过Infiniband与显卡显存自动收发数据。
GPU多线程共享,多个CPU主线程能够在一颗GPU上共享运行环境,从而使多线程应用程序共享一颗GPU变得更加轻松。
单CPU线程共享多GPU,一个CPU主线程可以访问系统内的所有GPU。 开发人员能够轻而易举地协调多颗GPU上的工作负荷,满足应用程序中“halo”交换等任务的需要。
全新的NPP图像与计算机视觉库,其中大量图像变换操作让开发人员能够快速开发出成像以及计算机视觉应用程序。
去年NVIDIA给我们带来其首款DX11产品Fermi的时候,全新的架构设计与近乎完美的执行效率让我们深刻的感受到NVIDIA在技术上的强大。NVIDIA的工程师为了让显卡能够真正体现出优势,并没有像AMD那样仅仅是对上一代产品的架构进行升级,而是采用了全新的架构设计。不得不说,Fermi确实是一款非常优秀的产品。
上一代GF100核心拥有多达30亿个晶体管,堪称史上最复杂的GPU,超大的晶体管规模导致GF100核心功耗偏高。所以,最后当时NVIDIA决定在GF100核心的基础上屏蔽了一组流处理器(从512个降到了480个),以控制显卡的整体功耗。因此当时基于GF100核心的桌面级以及专业级的优异产品流处理器均为480个。
随着GF100改进版本——GF110的发布,弥补了GF100在流处理器数量上的遗憾,从480个流处理器提升到了512个流处理器,这样在显卡的3D以及通用计算性能上就有进一步的提升。基于GF110的桌面级产品已于去年正式发布,而目前面向于专业级的产品也已经发布——M2090。
对于NVIDIA以及任何芯片设计公司来说,改进工艺都是他们非常重视的一件事情,也同样是芯片生产厂商(这里特指台积电)非常重视的事情。改进工艺可以让生产效率得以提高、可以让良品率更有保障、甚至可以让芯片的性能更加出色。M2090就是一款采用改进的40nm工艺制程的产品,改进后的工艺带来了更低的功耗、更低的温度以及更好的执行效率。■<