可編程圖形芯片挑戰(zhàn)多核CPUDSP和FPGA
在傳統(tǒng)制造業(yè)一枝獨秀的高端圖形芯片,現(xiàn)在要進入更多的并行計算領(lǐng)域。圖形芯片廠商nVidia在年初召開的“nVidia專業(yè)圖形解決方案高端論壇”上,非常高調(diào)的表示要在除傳統(tǒng)制造業(yè)外的更多領(lǐng)域大顯身手。
“石油/天然氣/地震資料處理、金融風(fēng)險建模、醫(yī)療成像、有限元計算、生物序列匹配等新興的應(yīng)用領(lǐng)域需要大規(guī)模的并行計算能力,而我們專業(yè)的可編程GPU具有128個處理器內(nèi)核,非常適合于這些并行計算的領(lǐng)域。”nVidia專業(yè)解決方案事業(yè)部全球銷售副總裁Walter Mundt-Blum說道。他舉例道:“金融是并行計算的一個重要領(lǐng)域。比如金融領(lǐng)域的實時期權(quán)隱含波動引擎,它需要多個畫面的圖形數(shù)據(jù)分析,進行互換期權(quán)波動計算。GPU能進行帶有單精度的準(zhǔn)確性計算結(jié)果,在不到1秒鐘的時間內(nèi),評估所有美國列出的股票期權(quán)。”目前已有兩個公司針對復(fù)雜的期權(quán)計算發(fā)布了應(yīng)用程序。
“還有另外一個例子就是醫(yī)療成像,在先進的醫(yī)療設(shè)備當(dāng)中,比如像CT機或者是核磁共振,往往傳感器會出來大量的數(shù)據(jù)需要同時進行處理,這對GPU來說非常適用。繼續(xù)舉例,在地質(zhì)勘探領(lǐng)域,往往要處理非常大量的數(shù)據(jù),甚至有的時候會使用T字節(jié)級的數(shù)據(jù)進行分析。這個領(lǐng)域已有用戶在使用我們的GPU。假設(shè)用CPU計算需要花幾個月的時間處理這些數(shù)據(jù),通過使用我們的GPU,速度可提高17-20倍左右。假設(shè)你用一個GPU的話,可能得使用20個CPU才行。”
會上,另外一個非常有趣的領(lǐng)域就是這些可編程的GPU能夠使機器有一些認(rèn)知能力,比如說能看能聞,“像狗的嗅覺一樣,這些機器能夠聞到癌細胞。這個應(yīng)用我們已在美國和一家合資公司進行合作,開始對嗅覺進行一些分析和模擬,模擬大腦的反應(yīng),他們用GPU的技術(shù)來教電腦來探來聞,所以我想在幾年之后我們將會看到他們的一些研究和制作成果。也就是說電腦可以真正來聞一些東西。”
會上,他還列舉了很多大規(guī)模并行計算中可編程GPU帶來的優(yōu)勢。然而,大規(guī)模并行計算領(lǐng)域也正是其它新型半導(dǎo)體器件比如多核CPU、多核DSP以及FPGA等瞄準(zhǔn)的新興市場,CPU和DSP向多核發(fā)展正是因為看好并行計算這個巨大的市場,而FPGA天生就是在并行計算上具有優(yōu)勢。
我們知道傳統(tǒng)GPU是基于ASIC,不能編程的,現(xiàn)在nVidia大力推廣其可編程GPU,也是因為看好并行計算這一重要的市場,但是,nVidia一定會面臨其它技術(shù)的巨大壓力。“我們承認(rèn)在某些領(lǐng)域與其它器件有沖突,比如在金融領(lǐng)域與FPGA有沖突,但是與其它器件沖突不會很大,GPU不與多核CPU沖突,而是與其互補。另外,多核DSP在并行計算領(lǐng)域的應(yīng)用剛開始,還不是競爭對手。”該公司GPU計算事業(yè)務(wù)部總經(jīng)理Andy Keane對《國際電子商情》記者表示。Andy Keane曾是Xilinx公司負(fù)責(zé)人,在Xilinx早期進行的可重配置計算以及FGPA系統(tǒng)開發(fā)中發(fā)揮了重要作用。他繼續(xù)解釋:“FPGA針對金融領(lǐng)域的并行計算比較有優(yōu)勢,但是在其它領(lǐng)域不構(gòu)成競爭。此外,其可編程性不如GPU,且FPGA的開發(fā)時間長,F(xiàn)PGA芯片也不斷變化??删庉婫PU使用起來更方便,我們采用了基于C++語言的開發(fā)環(huán)境CUDA。”
對于業(yè)界普遍認(rèn)為可編程GPU將與多核CPU競爭的觀點,他指出:“兩者完成的功能不同。多核CPU更適合于操作系統(tǒng)、數(shù)據(jù)庫、產(chǎn)能、臨時壓縮、遞歸算法等的處理。兩者需要配合。”他解釋,CPU的特長是當(dāng)從高速緩存獲取數(shù)據(jù)時,盡可能快地執(zhí)行一系列順序指令。CPU以很小的單位管理數(shù)據(jù)并順序地進行處理,信息的每個部分都必須等待著經(jīng)過單獨的執(zhí)行單元。單獨的執(zhí)行單元非常靈活,但不能并行地處理信息。可編程GPU被設(shè)計用于進行一種完全不同的處理方式。在GPU內(nèi)部有128個處理器,每個處理器都可以同時采用并行方式計算一部分?jǐn)?shù)據(jù),此外,GPU硬件設(shè)計能夠管理數(shù)千個并行線程。數(shù)千個GPU線程全部由GPU創(chuàng)建和管理,不需要開發(fā)人員進行任何編程和管理,設(shè)計方便可行。可編程GPU上還有快速存儲系統(tǒng)——最多可至每秒76Gb。通過將并行計算放在GPU上而同時將串行計算放在CPU上,應(yīng)用程序可以從這兩種計算中充分受益。此外,他指出,雖然多核CPU可以運行一些并行處理,但是英特爾的軟件是一個多核技術(shù),可靠性低,問題較多。“不過,我們不會替代多核CPU。”Keane再次強調(diào)。 #p#page_title#e#
其實,nVidia在2002年就引入了在GPU中計算的技術(shù),推出了第一個可編程的GPU,“在那個時候我們的編程單元只涉及了GPU的很小一塊兒——著色器,于是,在2002年,我們開始有了可編程的著色器。”Keane說道。通過將32位浮點技術(shù)搭載在GPU中,該公司期待研究人員和開發(fā)人員會將GPU超強的計算能力用于應(yīng)用程序而不是圖形。但早期的GPU是用類似OpenGL或Cg的圖形API編程的。這些API是很難的并且大多數(shù)開發(fā)人員對這類API也不熟悉。
在2003年,nVidia開始了一項旨在使GPU計算更容易的全新嘗試,并于2006年成功推出基于現(xiàn)在8系列GPU上的CUDA技術(shù)。他們開發(fā)了一個C程序,然后把CPU的代碼和GPU的代碼在原代碼當(dāng)中共存,而CUDA成為了串行計算和并行計算的連接。目前所有的8系列GPU,包括從筆記本電腦到高性能計算系統(tǒng)中,都具有CUDA技術(shù)。為方便統(tǒng)一串行CPU編程以及采用GPU并行計算,nVidia還設(shè)計了CUDA環(huán)境。“將來,我們認(rèn)為CUDA環(huán)境會用在GPU以外的處理器上。”Keane表示,“兩種計算方式——串行處理和并行計算——在每個應(yīng)用程序中都具有其可取之處。CUDA是統(tǒng)一這兩種處理和計算方法的計算方式。”
目前nVidia高性能GPU有三個平臺,即用于高性能計算的Tesla、用于專業(yè)工作站圖形處理的Quadro以及用于娛樂的GeForce。
Tesla適合的應(yīng)用包括地震、Monte Carlo服務(wù)器、分子動力學(xué)、天體物理學(xué)和信號處理;Quadro適合的應(yīng)用包括圖像、體視化、醫(yī)學(xué)成像、專業(yè)視頻和CAD等;Geforce適合的應(yīng)用包括圖像、音頻、編碼/解碼、壓縮和安全性應(yīng)用。Geforece平臺中目前僅有G8系列支持CUDA。“主要的區(qū)別在于Quadro支持OpenGL,性能是Geforce的五倍,尤其是它通過Shader Model 4.0、OpenGL和DX10,進行了性能加速的提高,更多關(guān)注垂直市場;Tesla集成內(nèi)存控制器和內(nèi)存,這對高性能計算非常重要。”Keane對《國際電子商情》記者解釋。
nVidia的目標(biāo)是將并行計算能力帶入所有領(lǐng)域。隨著在所有nVidia的8系列GPU上都加入CUDA技術(shù),配備CUDA的GPU現(xiàn)已經(jīng)超過5千萬個。nVidia使得開發(fā)GPU并行程序更為簡單。將來,任何開發(fā)人員都能輕松地獲得一枚使用在筆記本電腦、低成本PC或高性能工作站中的可編程GPU。