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