2010年NVIDIA GTC大会现场报道

  • 来源:微型计算机
  • 关键字:GPU,GPU,游戏
  • 发布时间:2010-11-15 16:23
  GPU的功能绝不仅仅是进行和游戏相关的图形处理,它可以做得更多、更好。在通用计算方面,它已经展现出了令人惊讶的性能表现。在2010年NVIDIA举办的GTC(GPU Technology Conference)大会上,《微型计算机》与全球知名科学家、工程师以及研究人员一同见证了GPU技术的发展。

  一直以来,GPU的功能仅仅是进行与游戏相关的图形处理,这远远没有发挥出GPU的并行计算能力。这种情况在2003年前后开始得到改善,在诸如蛋白质折叠、核磁共振成像重建、SQL查询等适合于发挥并行计算的领域中有了GPU 的身影。在CPU从单核到多核发展的同时,GPU也从单一的图形处理器逐渐过渡到通用处理器上,功能得到了扩展。GPU作为CPU的一个协处理器,能参与到大量的数据计算中。简单地说,GPU是一种典型的单指令流多线程流(SIMT)并行执行模型,它将更多的晶体管用作执行单元,作为流处理器单元,这些单元可以同时参与数据的计算,通过提升同时执行的线程数目来提高计算的性能。这是GPU更适合并行处理的最重要原因。

  如今,在分子动力学与量子力学、生物信息学、计算化学、医疗成像、石油天然气等领域中GPU的应用已经非常广泛了。特别是利用CUDA开发的并行程序相对于主流CPU的性能可以提高数十倍甚至上百倍。而NVIDIA举办GTC大会的目的正是为了向大家展示GPU在通用计算方面获得的成果。不过耳听为虚,眼见为实,《微型计算机》有幸被邀参加本次GTC大会,实实在在地感受到了GPU技术的发展和其在通用计算方面的应用。同时,NVIDIA创始人兼CEO黄仁勋先生更是在大会上有诸多爆料,吸引了大家的关注。

  黄仁勋揭秘下一代

  NVIDIA显卡

  NVIDIA历来对未发布产品的保密工作是非常严格的,别说产品的详细规格,就连产品的名称在发布前也很难了解。可这次在GTC大会上,NVIDIA创始人兼CEO黄仁勋(Jen-Hsun Huang)一反NVIDIA的常规做法,在大会的第一天(9月21日)一口气公布了未来两代显卡产品的代号,它们分别是下一代的Kepler(开普勒)和更下一代的Maxwell(麦克斯韦)。

  正如G80系列显卡以物理学家Tesla(特斯拉)命名、GF100系列显卡以物理学家Fe rmi(费米)命名一样,NVIDIA未来的显卡产品也以两位物理学家命名。按照黄仁勋的说法,Kepler将于2011年底发布,其将采用28nm工艺,双精度计算性能/每瓦有望在Te s l a基础上提升四倍左右,在Fermi基础上提升两倍左右。

  而Maxwell则将于2013年发布,将采用22nm工艺,双精度计算性能/每瓦有望在Tesla基础上提升16倍左右,在Fermi基础上提升8倍左右。黄仁勋表示Kepler和Maxwell性能提升幅度如此之大一部分原因是因为工艺的提升,但更重要的原因还是图形架构的革新所带来的性能增长。从Kepler和Maxwel l双精度计算性能大幅提升来看,它们应该仍然沿用Fe rmi的产品策略,在顶级产品上兼顾HPC计算和游戏性能,在中端以及更低档次的产品上放弃和HPC计算无关的功能和单元,更注重游戏性能的提升。

  CUDA与x86的无缝连接?—CUDA-x86的野心众所周知,如果要运行CUDA的话,必须使用NVIDIA GPU。而在本次GTC大会上,黄仁勋却表示NVIDIA将联合HPC计算编译器独立供应商PGI(The Portland Group)推出基于32bit和64bit的x86架构下的CUDA编译器,黄仁勋将其称之为“CUDA-x86”。这样一来,CUDA-x86就能够很好地和x86架构衔接,编程人员在基于x86架构上的集群、工作站上使用CUDA-x86进行编程的时候,可以不用强制使用NVIDIA GPU,直接利用CPU进行并行计算。

  事实上,作为一种全新的架构,CUDA在通用计算方面的潜力是非常巨大的,但要那些已经习惯了在基于x86架构下进行编程的人员完全接受CUDA的模式是比较别扭的,这并非是CUDA不好,而是这部分编程人员一旦接受CUDA就意味着必要换一种思路和方式进行编程。如今,CUDA-x86的推出改变了这种情况,利用CUDA进行编程无需强制运行在NVIDIA GPU上,可以跑在其他平台上,更可以直接用CPU来运行,强调CPU和GPU的通用性和兼容性。由此我们看出NVIDIA推广和普及CUDA的决心。

  虽然运行CUDA并不强制要求使用NVIDIA GPU,但从种种消息来看,我们有理由相信使用非NVIDIA GPU平台运行CUDA的性能和效率肯定不如使用NVIDIA GPU高。

  本次大会的主题是展示GPU在通用计算方面的成果,自然少不了有关GPU在通用计算方面的应用分享。在GTC大会的第二天(9月23日),伊利诺伊大学厄本那香槟分校的世界顶级生物学家Klaus Schulten博士就发表了第二场主题演讲,主题就是GPU在计算显微镜、细胞破裂和病毒方面的应用和研究,这是目前GPU在通用计算方面应用的热门话题,顿时吸引了大家的关注。

  Klaus Schulten博士的精彩演讲—GPU在生物科学方面的应用

  随着科学技术的快速发展,人类在生命科学中不断研究和探索,从分子结构到原子结构,再到纳米结构。为了更加了解生命过程中细胞的物理过程,我们的手段从传统的显微镜,到电子显微镜,再到现在的计算显微镜,以方便人类更加直观地观察和模拟细胞的物理过程。

  基于强大的计算能力之上的计算生物科学,将给我们带来生命科学的新契机。目前,显微镜被广泛应用到生物科学中,科学家利用计算显微镜来观察生物细胞,模拟细胞的物理化学过程。这需要具备强大并行计算能力的计算机辅助,因此,计算机的并行计算能力直接影响了生物科学中的研究能力。目前,GPU被广泛应用到各行各业中,这也包括生物科学研究领域。

  病毒的感染过程

  ● 脊髓灰质炎病毒感染过程(Polioriurs infection)

  脊髓灰质炎病毒(Poliovirus,或称为脊髓灰白质炎病毒)是脊髓灰质炎(小儿麻痹)的病原,又称小儿麻痹病毒,是一个没有外壳的病毒,由一条单股RNA组成。人类和猴子都容易受这种病毒的感染。病毒在感染后的细胞内复制成熟后,就会在短期内一次释放大量的病毒,使得被感染的细胞死亡,释放出来的病毒又会感染其他细胞,又开始新一轮的感染周期,直到所有容易感染的细胞都被感染并死亡。如果要弄清楚整个复杂的物理过程,就需要构建一亿量级的单位物理模型,并经过长时间的模拟运行,才能真正得到这个物理过程。这个模拟过程的计算量大得惊人,无疑适合并行计算能力强大的GPU去运行(图1)。

  ●病毒衣壳力学

  乙型肝炎病毒(Hepatitis B virus)又被称作乙肝病毒(HBV),属于DNA病毒。就目前科学研究的成果来看,HBV只对人类和猩猩有易感性,容易引发乙型病毒性肝炎疾病。完整的乙肝病毒成颗粒状,分为外壳和核心两部分,直径约为42纳米。灰色菱形为采用原子力显微镜得到的物理实验结果,绿色圆形为计算机模拟下的结果(图2)。这里通过计算机模拟的方式得到的结果几乎和原子力显微镜实验中得到的结果完全吻合。在这种情况下就可以通过模拟的方式对病毒进行分析,从而更加清晰地了解整个病毒物理作用的过程。

  光合作用过程

  这里展示的紫色光合作用细菌,原理是光转化为电,ADP(二磷酸腺苷)转化为ATP(三磷酸腺苷)。需要采用静电场计算并且使用多级求和法(图4),这要求具备千万量级计算能力的单位进行模拟,需要进行大规模并行计算,原子越多,模拟的过程和时间越长(图3)。在目前主流的CPU上计算大约需要1小时10分钟。而如果利用具备并行处理计算能力强悍的GPU进行运算的话,时间会大大缩小。而且整个三维模型可以很好地跟GPU的三维架构的线程模型进行匹配,能最大限度利用GPU计算的能力。采用基于G80架构的3块GPU就可以在大约90秒钟内模拟完成,并可以达到拥有线性时间复杂度,且比其他方法有更高的灵活性。

  蛋白质是如何通过基因蓝图制造出来的

  ●制造过程

  科学家通过核糖体从mRNA中解码基因信息并产生出新的蛋白质,这是蛋白质的制造过程(图5)。实现这个过程也是研究抗生素的重要目标。其中重要的环节就是弄清楚核糖体的结构,模拟整个制造过程。2009年的诺贝尔化学奖就给了揭开蛋白质制造过程的三位科学家。这样的生物物理过程的研究可以比喻成足球比赛,期望的不只是足球比赛的结果,而是整个足球比赛的过程。了解生物的物理过程才能更好地了解其中的物理原因,找到问题的根本。传统的低分辨率的图像只能得到足球比赛的结果,而不知道比赛的过程。对于现在基于高性能计算的高分辨率结构图,可以清晰地看到新生的蛋白质。

  ●分子动力学模拟

  通过分子动力学的方式可以模拟整个新蛋白产生的过程,具体方法是使用计算机来模拟蛋白质产生的过程,这差不多需要模拟100万个单元。如图6所示,随着GPU数量的逐渐增多,单步的模拟过程时间越来越短,可以达到很高的性能。通过GPU的加速,整个模拟的过程从以前的两个月缩短到了两周。

  纳米孔传感器

  新型纳米孔是通过电力场作用驱动单个分子逐一通过纳米孔来实现测序的。由于纳米孔的直径非常细小,可以侦测通过的单个核酸聚合物,能保持良好的持续性和高精度地测量基因信息。对于长达1000个碱基的单链DNA分子、RNA分子或者更短的核酸分子而言,也并不需要进行扩增或标记就可以直接使用纳米孔来进行测试,这使得快速地进行DNA测序成为可能。

  对于基因的了解,通常情况下大家知道A、T、G、C四种碱基,其实还有第五种碱基—甲基化胞嘧啶。单分子纳米孔测序仪能直接分辨出未修饰的胞嘧啶和甲基化胞嘧啶。当单链DNA通过纳米孔的时候,单个碱基落入孔中,它们跟纳米孔内特定物质相互作用,阻碍了穿过孔中的电流同道。A、T、C、G以及甲基胞嘧啶都会有自己特有的电流振幅,因此很容易把这些电流振幅转化成DNA序列。这样就可以通过纳米孔技术就能直接读出这第五种碱基。

  但是现在的纳米孔材料还有很多问题需要解决,例如可以通过模拟的方式来选择生产更好的高分子纳米材料。但现在还没有一种生物纳米孔或者人工合成的纳米孔能有一个非常合适的几何结构,并通过模拟的方式分析合成出适合的高分子材料,在这个过程中通常采用径向分布函数的方法来进行分析沉淀物和流体的情况。图7模拟了4700万个单元,如果利用4核心的英特尔XeonX5550 CPU,需要15个小时,如果利用4台NVIDIA的Tesla C2050 GPU,只需要10分钟就可以完成。这里还有一个数据,利用Fermi架构的GPU的性能是采用上一代GT200架构GPU性能的3倍以上。

  量子化学可视化

  化学是原子共享电子的结果,电子以云的方式环绕原子。可视化电子云的代价很高,在CPU上需要数十到数百秒——即是非交互式的。GPU可以在第一时间以动画方式动态交互式构建电子云,这是利用CPU计算难以企及的。以计碳60分子轨道为例。用GPU计算的方法是:构建3D分子轨道点阵→在多GPU上分别计算每层点阵→一个GPU上分布一个2D的CUDA网格→每个GPU线程计算其中一个点。

  基于传统CPU架构方式的可视化在很多情况下需要以天为单位来进行,而基于GPU架构的可视化工具则可以实现实时计算,这是由GPU强大的并行计算能力决定的(图8)。

  蛋白质折叠

  由于结构决定功能,因此仅仅知道基因组序列并不能充分了解蛋白质的功能,更无法知道它的工作原理。蛋白质可凭借相互作用在细胞环境下重组,这种重组的过程被称为蛋白质折叠。著名的Folding@home测试程序就是一个研究蛋白质折叠和误折及由此引起的相关疾病的分布式计算项目。

  尽管蛋白质能在短时间中从一级结构折叠至立体结构,但我们却无法及时从氨基酸序列计算出蛋白质结构,甚至无法得到准确的三维结构。

  这是研究蛋白质折叠的过程的最大难点,已经成为生物物理学的重要研究课题,亦是分子生物学中心法尚未解决的一个重大生物学问题。

  而一旦蛋白质结构由正常状态转变为错误状态就可能导致疾病的发生。由于蛋白质所涉及生理过程的广泛性,错折叠就成为了引发疾病的一种普遍因素。蛋白质错折叠可能导致阿尔茨海默氏症、帕金森症、亨廷顿症、疯牛病、Ⅱ型糖尿病等疾病( 图9 ) 。一些蛋白质折叠的模拟之所以会失败是因为原子间的力使用了错误的模型。蛋白质折叠要求使用更准确的模型去应用于代价更大的计算,这非常适合GPU并行计算的特性,例如原子极化增强计算就适合用GPU去运行。

  GPU的未来

  在2009年GTC大会成功的基础上,2010年GTC大会圆满举行。在本次GTC大会上,世界最顶级的计算机专家聚集在一起探讨与GPU计算和应用相关的话题,并分享彼此的经验。在生物科学领域里的专家Klaus Schulten博士也做了精彩的主题演讲,讲述了他是如何利用GPU来进行生物科学的研究和计算的。此外,各个行业的专家和精英也汇聚一堂,一起探讨如何利用GPU计算来改善他们的工作。总体而言,本次GTC大会向大家展示了GPU出色的计算性能,让大家看到了GPU在通用计算方面的表现和应用,本次GTC大会再次为我们勾勒出GPU除图形处理外的另一个发展方向—适合进行并行处理的通用计算。

  相对于CPU,GPU在内存结构上有自己的DRAM,并且主机和设备都可以对Global Memory进行读写,从而实现主机和设备之间的数据传递。另外,GPU还有大量的寄存器和带有Cache结构的共享、常量和纹理存储器,这些均能提高GPU的并行计算性能。而且在价格方面,GPU相对于CPU拥有更高的性价比,GPU服务器的价格比CPU Cluster更有优势。这些都是GPU更适合进行并行计算的重要原因。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: