可编程图形芯片挑战多核CPUDSP和FPGA
在传统制造业一枝独秀的高端图形芯片,现在要进入更多的并行计算领域。图形芯片厂商nVidia在年初召开的“nVidia专业图形解决方案高端论坛”上,非常高调的表示要在除传统制造业外的更多领域大显身手。
“石油/天然气/地震资料处理、金融风险建模、医疗成像、有限元计算、生物序列匹配等新兴的应用领域需要大规模的并行计算能力,而我们专业的可编程GPU具有128个处理器内核,非常适合于这些并行计算的领域。”nVidia专业解决方案事业部全球销售副总裁Walter Mundt-Blum说道。他举例道:“金融是并行计算的一个重要领域。比如金融领域的实时期权隐含波动引擎,它需要多个画面的图形数据分析,进行互换期权波动计算。GPU能进行带有单精度的准确性计算结果,在不到1秒钟的时间内,评估所有美国列出的股票期权。”目前已有两个公司针对复杂的期权计算发布了应用程序。
“还有另外一个例子就是医疗成像,在先进的医疗设备当中,比如像CT机或者是核磁共振,往往传感器会出来大量的数据需要同时进行处理,这对GPU来说非常适用。继续举例,在地质勘探领域,往往要处理非常大量的数据,甚至有的时候会使用T字节级的数据进行分析。这个领域已有用户在使用我们的GPU。假设用CPU计算需要花几个月的时间处理这些数据,通过使用我们的GPU,速度可提高17-20倍左右。假设你用一个GPU的话,可能得使用20个CPU才行。”
会上,另外一个非常有趣的领域就是这些可编程的GPU能够使机器有一些认知能力,比如说能看能闻,“像狗的嗅觉一样,这些机器能够闻到癌细胞。这个应用我们已在美国和一家合资公司进行合作,开始对嗅觉进行一些分析和模拟,模拟大脑的反应,他们用GPU的技术来教电脑来探来闻,所以我想在几年之后我们将会看到他们的一些研究和制作成果。也就是说电脑可以真正来闻一些东西。”
会上,他还列举了很多大规模并行计算中可编程GPU带来的优势。然而,大规模并行计算领域也正是其它新型半导体器件比如多核CPU、多核DSP以及FPGA等瞄准的新兴市场,CPU和DSP向多核发展正是因为看好并行计算这个巨大的市场,而FPGA天生就是在并行计算上具有优势。
我们知道传统GPU是基于ASIC,不能编程的,现在nVidia大力推广其可编程GPU,也是因为看好并行计算这一重要的市场,但是,nVidia一定会面临其它技术的巨大压力。“我们承认在某些领域与其它器件有冲突,比如在金融领域与FPGA有冲突,但是与其它器件冲突不会很大,GPU不与多核CPU冲突,而是与其互补。另外,多核DSP在并行计算领域的应用刚开始,还不是竞争对手。”该公司GPU计算事业务部总经理Andy Keane对《国际电子商情》记者表示。Andy Keane曾是Xilinx公司负责人,在Xilinx早期进行的可重配置计算以及FGPA系统开发中发挥了重要作用。他继续解释:“FPGA针对金融领域的并行计算比较有优势,但是在其它领域不构成竞争。此外,其可编程性不如GPU,且FPGA的开发时间长,FPGA芯片也不断变化。可编辑GPU使用起来更方便,我们采用了基于C++语言的开发环境CUDA。”
对于业界普遍认为可编程GPU将与多核CPU竞争的观点,他指出:“两者完成的功能不同。多核CPU更适合于操作系统、数据库、产能、临时压缩、递归算法等的处理。两者需要配合。”他解释,CPU的特长是当从高速缓存获取数据时,尽可能快地执行一系列顺序指令。CPU以很小的单位管理数据并顺序地进行处理,信息的每个部分都必须等待着经过单独的执行单元。单独的执行单元非常灵活,但不能并行地处理信息。可编程GPU被设计用于进行一种完全不同的处理方式。在GPU内部有128个处理器,每个处理器都可以同时采用并行方式计算一部分数据,此外,GPU硬件设计能够管理数千个并行线程。数千个GPU线程全部由GPU创建和管理,不需要开发人员进行任何编程和管理,设计方便可行。可编程GPU上还有快速存储系统——最多可至每秒76Gb。通过将并行计算放在GPU上而同时将串行计算放在CPU上,应用程序可以从这两种计算中充分受益。此外,他指出,虽然多核CPU可以运行一些并行处理,但是英特尔的软件是一个多核技术,可靠性低,问题较多。“不过,我们不会替代多核CPU。”Keane再次强调。 #p#page_title#e#
其实,nVidia在2002年就引入了在GPU中计算的技术,推出了第一个可编程的GPU,“在那个时候我们的编程单元只涉及了GPU的很小一块儿——着色器,于是,在2002年,我们开始有了可编程的着色器。”Keane说道。通过将32位浮点技术搭载在GPU中,该公司期待研究人员和开发人员会将GPU超强的计算能力用于应用程序而不是图形。但早期的GPU是用类似OpenGL或Cg的图形API编程的。这些API是很难的并且大多数开发人员对这类API也不熟悉。
在2003年,nVidia开始了一项旨在使GPU计算更容易的全新尝试,并于2006年成功推出基于现在8系列GPU上的CUDA技术。他们开发了一个C程序,然后把CPU的代码和GPU的代码在原代码当中共存,而CUDA成为了串行计算和并行计算的连接。目前所有的8系列GPU,包括从笔记本电脑到高性能计算系统中,都具有CUDA技术。为方便统一串行CPU编程以及采用GPU并行计算,nVidia还设计了CUDA环境。“将来,我们认为CUDA环境会用在GPU以外的处理器上。”Keane表示,“两种计算方式——串行处理和并行计算——在每个应用程序中都具有其可取之处。CUDA是统一这两种处理和计算方法的计算方式。”
目前nVidia高性能GPU有三个平台,即用于高性能计算的Tesla、用于专业工作站图形处理的Quadro以及用于娱乐的GeForce。
Tesla适合的应用包括地震、Monte Carlo服务器、分子动力学、天体物理学和信号处理;Quadro适合的应用包括图像、体视化、医学成像、专业视频和CAD等;Geforce适合的应用包括图像、音频、编码/解码、压缩和安全性应用。Geforece平台中目前仅有G8系列支持CUDA。“主要的区别在于Quadro支持OpenGL,性能是Geforce的五倍,尤其是它通过Shader Model 4.0、OpenGL和DX10,进行了性能加速的提高,更多关注垂直市场;Tesla集成内存控制器和内存,这对高性能计算非常重要。”Keane对《国际电子商情》记者解释。
nVidia的目标是将并行计算能力带入所有领域。随着在所有nVidia的8系列GPU上都加入CUDA技术,配备CUDA的GPU现已经超过5千万个。nVidia使得开发GPU并行程序更为简单。将来,任何开发人员都能轻松地获得一枚使用在笔记本电脑、低成本PC或高性能工作站中的可编程GPU。