赞
踩
不同的计算类型决定了GPU的架构更加适合通用计算
另外一种不同类型的计算问题——并行计算,却一直局限在大型服务器集群和超型计算机领域。标准CPU架构的特长是管理多个离散的任务,但是有些任务能够被细分为多个更小的单位并且可以被并行化,CPU在处理这些任务的时候并没有突出的性能优势,但这恰恰就正好是适合GPU解决的问题类型。
对于快速、廉价的解决这一类问题,GPU有着相当大的潜力可以发挥。GPU计算可以使得PC和工作站具有超级计算的能力,并且可以扩展服务器集群的处理范围,以解决先前CPU集群不能处理的问题。
GPU计算的目标是充分利用GPU先天的巨大计算能力,以解决在高性能计算领域内许多相当困难但很重要的问题。
GPU的浮点运算能力和CPU不在一个数量级
在刚刚过去的几年中,图形处理单元(GPU)已经发展为具有强劲马力的计算设备。由于具有多达128个的处理单元以及相当高的存储带宽,为GPU提供了多到令人难以置信的计算资源,在图形或非图形处理中都是如此。
上图的结果主要是由于GPU在架构上就是为计算密集型处理而设计,高强度并行计算—这本身也是图像渲染的需要。因此在GPU中,更多的晶体管被用于数据处理而不是数据存储与流控制。
GPU特别适合处理那些可以具有较高算法强度且可以被被表达为并行数据计算的问题,换句话说,同样的程序如果通过细分成众多数据元素的并行执行,会具有较高的算术操作与存储操作之比。
CPU的处理方式是使用一个单独的程序顺序的循环处理数据,GPU则是进行数据的并行处理,它把数据元素映射、规划为数以千计的并行处理线程。很多应用程序都有一个较大的数据集,就可以通过数据并行编程模式来加速他们的执行。这些应用程序包括:
·地震模拟
·计算生物学
·选择商业风险计算
·医学成像
·模式识别
·信号处理
·物理仿真
NVIDIA Tesla:GPU计算解决方案
NVIDIA提供了一套完整的GPU计算产品线,包括系统产品和全新的开发环境。产品线的中心是基于GeForce 8系列架构的GPU,以及CUDA开发工具包和C编译器。
G80特殊的缓存式架构进一步提高了ALU浮点运算效能
·NVIDIA Tesla GPU将给PC和工作站带来更高计算性能;
·NVIDIA Tesla GPU 桌面超级计算机配合标准工作站可以提供令人难以置信的高强度计算性能;
·NVIDIA Tesla GPU 在一个1U形式的装置内集成了高密度的GPU核心;
·NVIDIA CUDA开发环境包含了快速傅氏变换、BLAS 算法。
·NVIDIA 软件开发包提供了文档以及编程样例。
NVIDIA计算解决方案设计上与现行的IT基础结构做到了无缝衔接,遵守下列的工业标准:
· C 编译器,提供一个为令人熟悉的、支持度很好的开发环境
· 支持独立128bit的IEEE 754单精度浮点单元,和CPU浮点单元一样支持各种高级的浮点操作。(下一个版本将可以支持双精度计算)
· 可以兼容于Intel/AMD的x86 32-bit和64-bit微处理器架构以及Microsoft or Linux 的操作系统。.
·具有PCI Express总线,最数据传输的上升沿和下降沿可以传送达到最大4 GBps的传输率。
·标准工业形式,同时支持桌面式和架装式配置
· 支持NVIDIA 统一驱动架构
Tesla C870 GPU 特性:
新一代NVIDIA Tesla C870 GPUs 专为计算程序所设计,板载级GPU计算产品没有显示接口。处理器核心频率、显存配置以及计算特性都与图形卡产品发生了变化。
GPU计算产品虽然没有显示接口,但是保留了完整的OpenGL and DirectX 功能支持,和NVIDIA Quadro graphics boards 以及NVIDIA GeForce GPUs, 完全相同,所以除了CUDA开发工具包以外,GPU计算产品也可以支持基于图形API的程序。
·一个GPU (具有128个处理单元)
·518 gigaflops(峰值)
·1.5 GB专用存储器
· 通过一个PCI Express x16插槽支持完整长度、双槽的产品
Tesla D870 特性:
NVIDIA Tesla GPU桌面超级计算机提供高强度的计算性能,具有工作站以及灵活的架式服务器解决方案。作为一个工作站的附属,每个Tesla D870提供两个GPU核心。也可以选择两套桌面系统,通过架式组合成一个3U配置。 未来版本的桌面系统可以每个系统提供4个GPU核心或者由3U架式系统提供8个GPU。
· 双GPU(每个GPU具有128个处理单元)
· 1.036 teraflops (峰值)
· 3 GB系统存储器
· 和主机通过低功率的PCI Express x8 or x16适配器相连接
·可选择的机架固定组件
Tesla GPU服务器S870特性:
NVIDIA Tesla GPU服务器具有顶级的计算性能,NVIDIA将提供一个1U的GPU计算服务器。每个1U设备提供4到8个GPU,在获得最高性能的同时降低功耗。NVIDIA Tesla服务器产品的产品配置也将十分灵活,可以分别满足最大化性能或者低功耗要求等不同的应用场合。最初的服务器提供4个GEFORCE8系列GPU,消耗550瓦的功率。
· 四个GPU(每个GPU具有128个处理单元)
· 2.072 teraflops (峰值)
· 6 GB系统存储器
· 和主机通过低功率的PCI Express x8 or x16适配卡相连接
· 标准配置:一个PCI Express连接器驱动四个GPU
· 可选配置:两个PCI Express连接器,每个驱动2个GPU
NVIDIA CUDA GPU计算软件
NVIDIA CUDA技术基于一种全新的用于开拓GPU运算性能的软件架构,CUDA程序执行时,GPU作为主CPU的协处理器工作,GPU可以处理大量的并行信息,同时CPU组织、解释、与后台交流要处理的信息。应用程序的计算密集型部分要被执行很多次,每次由主应用程序提交的不同数据,经过编译后由GPU并行执行。
CUDA辅助CPU进行通用运算功能的示意图
CUDA包含3个主要的组件,可以高效执行并行程序的GEFORCE8 系列GPU;一个可访问GPU上并行计算资源的编译器,以及一个计算专用的运行时驱动。
CUDA的核心部分是专门开发的C编译器。首开先河的编程环境简化了并行程序的编码。C语言对大多数开发人员都十分熟悉的,可以使编程人员专注于开发并行程序而不是处理负责的图形API。为了简化开发,CUDA的C编译器允许程序员将CPU 和 GPU的代码混合记录到一个程序文件中。一些简单代码被增加到的C程序中,通知CUDA编译器哪些函数由CPU处理,哪些为GPU编译。然后程序被CUDA编译器编译,而CPU处理的代码则由开发者的标准C编译器编。
CUDA的计算流程
开发人员使用一种全新的编程模式将并行数据映射、安排到GPU中。CUDA程序则把要处理的数据细分成更小的区块,然后并行的执行它们。这种编程模式允许开发人员只需对GPU编程一次,无论是包含多处理器的GPU产品或是低成本、处理器数量较少的产品。当GPU计算程序运行的时候,开发者只是需要在主CPU上运行程序,CUDA驱动会自动在GPU上载入和执行程序。主机端程序可以通过高速的PCI Express总线与GPU进行信息交互。数据的传输、GPU运算功能的启动以及其它一些CPU 和GPU交互都可以通过调用专门的运行时驱动中的专门操作来完成。这些高级操作把程序员从手动管理GPU运算资源中解放出来。对大规模数据进行解译与处理的能力处于计算科学的前沿领域,通过可以广泛普及CUDA的开发工具,任何程序都可以释放GPU的计算力量。通过CUDA软件和Tesla GPUs的结合,开发者现在能够在桌面平台进行大规模超级计算,同时也可以戏剧性的增加服务器集群的处理能力。
GPU计算实例研究
下面的一些实例展示了GPU计算的性能,众多运算密集型的应用程序执行速度已经可以通过NVIDIA的GPU产品获得令人瞩目的提升。
医学成像:数字层析 X 射线照相组合
数字层析X 射线照相组合是一种早期胸部肿瘤X射线透视法,可以使癌症对乳房组织的损害被更早的检测、发现。在这种应用中,美国马萨诸塞州综合医院就使用了NVIDIA的 GPU产品,通过对X射线透视所获取的数据进行高强度计算来重建图像。
为了更好的显现肿瘤或其它癌变,层析X射线照相使用了视差技术,可以使图像上相邻物体间的距离更远、成像更清晰。电脑的任务就是将病人胸部的X光扫描图像电子式的排列组合起来。通过使用这种技术,可以消除层叠结构对癌变组织图像的模糊作用。
层析X 射线照相组合作为一种医学成像概念问世于上世纪60年代,但是直到90年代,当数字感光器具有足够的灵敏度之后才得以成为现实。但是,当时的处理器性能还不足以满足这项任务。首次通过层析 X 射线照相获得的数据进行医学成像的尝试中,花费了5个小时才完成对一个病人的扫描,时间太长,无法进入实际应用。使用一个由34台PC的服务器集群也耗费了20分钟才完成处理,结果还不错,但是在医院的放射实验室安置服务器集群是不切实际的。
现在,在使用NVIDIA的GPU产品进行计算后,马萨诸塞州综合医院在图像重建的过程中获得了100倍的速度提升,使用一台PC只用5分钟就可以完成计算,使医生很快就可以得到成像图片并给出诊断结果。
模拟与设计:生物医学核磁共振成像植入设备
在医学领域内,为了保证核磁共振成像或是其它一些诊疗成像设备的安全使用,许多生物医学植入设备被广泛使用。在这些植入设备的模拟与设计过程中,需要进行高强度的计算,用传统的电脑集群将耗费相当多的时间。
著名的美国波士顿科学国际有限公司就是一个设计和制造起搏器和其他一些生物医学植入设备的公司,他们使用了NVIDIA GPU 运算技术加速整个计算过程。通过NVIDIA的 并行 GPU 架构,模拟过程的执行速度提高了25倍。不仅速度方面提高很多,在成本方面也比过去使用CPU集群时大大降低。
地球科学: 石油与天然气勘探
现在,石油与天然气的勘探正变得越来越困难。大型的油气储藏带经常处于地表下很深的地方以至于难于勘测。例如最近在墨西哥湾发现的油田就处于海床下20000英尺深的地方。为了解释地质数据,就必须对获得与处理大量的地震数据。
大多数人今天仍然认为GPU是一种用于娱乐消费的技术。但是,休斯敦的Headwave(一个专门从事地质数据分析的公司)正着手开发新一代计算平台,以充分利用图形卡的并行计算潜力了。
Headwave的解决方案也通过NVIDIA 的GPU技术,并使用CUDA SDK来运行。地球物理学者可以更快速的筛选他们的数据,即便这些数据多达几TB的容量。过去处理这些多达几TB的数据需要数月的计算时间,而使用NVIDIA GPU 计算技术后,计算速度比过去提高了20倍。所以说,没有NVIDIA 的GPU 计算技术,即时演算这些数据是不可能的,石油与天然气公司将成为这项新技术的直接受益者。
计算生物学:分子动力学模拟
在分子动力学模拟领域内,模拟复杂的分子系统需要要耗费大量的时间,并使用复杂的计算机集群。位于Urbana-Champaign的美国伊利诺伊大学的研究人员就使用了NVIDIA的 GPU 产品用于计算生物分子、离子的相互作用,结果是运算速度比过去采用CPU集群提高了100倍。
关于人类疾病的研究是高性能科学计算的主要用途之一
使用GPU工作站后,实际运算速度达到了705 gigaflops。这样非凡的成绩也使得生物科学研不再被限制在服务器集群平台,有了GPU计算,在个人实验室、桌面平台都可以很轻松的进行这些生物分子的模拟,从而使研究者之间不再争夺有限的计算资源。
更进一步,在一些大规模服务器集群中引入GPU之后,一些过去无法实现的梦想现在也可以成为可能。纳米级分子动力学与NVIDIA计算技术的结合是尖端研究与软件开发技术的联姻,用于帮助超级计算机解读活性细胞分子的微小组成。
科学计算:MathWorks MATLAB
MATLAB是一种非常适合于对科学和数学算法进行快速编码的高级语言,并广泛应用于各种研究领域,例如信号与图像处理、测量、商业建模与分析、计算生物学等。
使用NVIDIA 的GPU产品来加速MATLAB有两种方法,第一种不需要改变MATLAB的代码,仅通过插入CUDA FFT 或BLAS 函数库就可完成。为了进一步加速MATLAB程序,CUDA 中的MATLAB插件允许编程人员使用优化过的CUDA程序来替换某些关键函数,这些新的CUDA函数可以被MATLAB程序所调用。由于使用了CUDA函数,MATLAB的使用者可以方便的加速计算而不必重写整个应用程序。
神经电路模拟:
大脑神经电路的模拟需要大规模的进行大规模的生物电路模拟,其中也涉及到大量的并行计算。模拟一个神经细胞需要在一秒钟内求解2亿个方程式。一个神经系统矩阵则有成千上万个神经细胞构成,对一格神经系统的即时模拟则需要超过10teraflops的计算能力。Evolved Machines公司在2006年与NVIDIA 合作,将神经系统的模拟速度比当今的x86 微处理器提高了130倍。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14741601/viewspace-371946/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14741601/viewspace-371946/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。