面對CPU廠商染指GPU,NVIDIA也積極備戰(zhàn)。NVIDIA在2007年10月從經(jīng)營不善的處理器新興企業(yè)Stexar挖到多位“武林高手”。 可千萬別小瞧了Stexax,這家由原英特爾技術(shù)骨干創(chuàng)立的公司擁有多位奔騰Ⅱ、奔騰Ⅲ和奔騰Ⅳ設(shè)計團隊的骨干,甚至還有奔騰Ⅳ中Netburst架構(gòu)的首席設(shè)計師和超線程的設(shè)計者。
3月26日,本報記者獨家專訪了NVIDIA首席科學(xué)家David Kirk。
GPU很強
記者:經(jīng)過英特爾多年“Intel inside”的市場攻勢,人們對CPU已經(jīng)很熟悉了,但對專注于圖形計算的GPU卻知之甚少。GPU與CPU有什么不同?
Kirk:長期以來,CPU一直都是單核的。CPU的設(shè)計思路是盡可能快地完成一件任務(wù);對于GPU來說,它的任務(wù)是在屏幕上合成可以高達(dá)數(shù)百萬像素的圖像——也就是說有幾百萬個任務(wù)需要并行處理。因此,GPU被設(shè)計成并行處理很多任務(wù),盡可能快地完成所有任務(wù)的總和,而不是像CPU那樣盡可能快地完成一件任務(wù)。設(shè)計GPU的體系架構(gòu)時首先考慮的是并行運算能力,之后再考慮整型運算和I/O吞吐能力。
多核的概念并沒有改變CPU的設(shè)計理念,也許是盡快地做兩件事或四件事,但不是并行處理很多很多任務(wù)。
記者:我看到過GPU的浮點性能數(shù)百倍于CPU的對比結(jié)果,卻不知兩者之間在整型計算上的比較結(jié)果。GPU只有增強其整型能力才能在通用計算中走得更遠(yuǎn),請問在整型計算上GPU有沒有補救措施呢?
Kirk:CPU的整數(shù)計算、分支、邏輯判斷和浮點運算分別由不同的運算單元執(zhí)行,此外還有一個浮點加速器。因此,CPU面對不同類型的計算任務(wù)會有不同的性能表現(xiàn)。而GPU是由同一個運算單元執(zhí)行整數(shù)和浮點計算,因此,GPU的整型計算能力與其浮點能力相似。
我想,如果你仔細(xì)觀察一個串行程序的運行結(jié)果,你就會發(fā)現(xiàn)與浮點計算能力相比,CPU的整數(shù)計算能力與GPU中流處理器的整型計算能力更接近,這是因為CPU的設(shè)計更側(cè)重于整數(shù)計算能力。
舉例來說,一個3GHz的雙核CPU每秒能完成60億條整數(shù)指令,比如說G-80 GPU,有128個1.5GHz的流處理器,每個流處理器每個計算周期可以執(zhí)行兩條整數(shù)指令,把這些數(shù)據(jù)相乘的結(jié)果大約是每秒3500億~3750億條指令,這大概是CPU運算能力的50~100倍。
我再澄清一下,GPU在整型計算方面并沒有任何劣勢。盡管不如在浮點計算方面優(yōu)勢那么大,但是GPU的整型計算能力幾乎是CPU的100倍。
記者:除了計算,CPU的另一大功能是控制。從現(xiàn)有的結(jié)構(gòu)看,GPU的控制性能要比其整型計算性能還要弱,而控制功能最終將決定GPU是否能在計算平臺上唱主角。請問GPU在增加和增強控制功能上有何設(shè)想?
Kirk:GPU同樣可以實現(xiàn)控制和分支功能。如果你有一個單線程的分支程序要運行,你可以在CPU上運行它。但是如果你有100萬個線程,每個線程都有分支,那么GPU的性能將遠(yuǎn)遠(yuǎn)好于CPU。我對CPU類型的計算任務(wù)并不感興趣。與其他人們想實現(xiàn)的功能相比,這項功能并不重要。與只有一個線程的計算任務(wù)相比,我認(rèn)為執(zhí)行與控制幾百萬個線程更為重要。當(dāng)然,CPU也能承擔(dān)這樣的任務(wù),只不過它要串行地、重復(fù)地來進(jìn)行,性能上遠(yuǎn)比不上GPU。
記者:能不能只用GPU,而不用CPU,或者說徹底拋棄CPU?
Kirk:你可以這么做,但這可能不是最佳選擇。GPU效率不高的地方在于處理單任務(wù)、單線程分支。如果你只有一項任務(wù),就不能充分利用GPU。因此,如果你的任務(wù)里包含各種類型的計算——任何問題都包含串行部分和并行部分——你可以在CPU上快速運行串行部分,在GPU上運行并行部分。我認(rèn)為這個問題的關(guān)鍵不在于競爭,而是任務(wù)的劃分。
我相信未來的計算模式是不同種類處理器的混合體。西方有一條諺語 “樣樣都會,行行不精”。既然CPU擅長于一種類型的計算,而GPU擅長另外一種類型的計算,那么你把它們結(jié)合在一起,相互合作,就能完成更多類型的任務(wù)。
記者:在更遠(yuǎn)的將來,有沒有可能制造沒有CPU的系統(tǒng)?
Kirk:我想這是可能的——現(xiàn)在就可能——只不過大家不想這么做。如果你想最大限度地發(fā)揮現(xiàn)有硬件的功能,你就需要各種專用處理器配合工作。我想這才是最好的解決方案。
直到有一天所有的處理器都足夠好了,你不再需要更好的計算機了,你可能選擇一個效率低一點但架構(gòu)更簡單的計算機。但是到目前為止,人們還是什么都想要,想要最好的串行處理器——CPU,最好的并行處理器——GPU。我想這種需求在未來很多年都不會發(fā)生改變。我認(rèn)為GPU的并行功能會越來越強大,而CPU也會想方設(shè)法改進(jìn)其執(zhí)行串行指令的能力。我認(rèn)為這兩項功能未來不會融合。
GPU在設(shè)計上有否優(yōu)勢
記者:x86 CPU屬于CISC指令集。顧名思義,CISC在工藝實現(xiàn)上也同樣復(fù)雜。而GPU由于大量并行的流處理器而在工藝實現(xiàn)上整齊劃一。隨著芯片上晶體管數(shù)量的劇增和功能的增加,GPU至少在測試上比CPU更省時,請問在制造過程中是否也具有優(yōu)勢?
Kirk:通常大家都說x86指令集有優(yōu)勢,但我認(rèn)為有些情況下它是個劣勢,因為它的兼容性是個龐大且復(fù)雜的問題。一旦你建立起x86系統(tǒng),你只能繼續(xù)建立x86系統(tǒng)。
而我們兼容舊系統(tǒng)的壓力要小得多——不是因為我們放棄了兼容性,而是我們沒有那么長的歷史需要兼容——這在效率上帶給我們一些優(yōu)勢。
除了你提到的測試,我認(rèn)為還有一種很重要的考察效率的指標(biāo),這就是每平方毫米硅片所貢獻(xiàn)的性能。因為GPU擁有更直截了當(dāng)?shù)闹噶罴?,其設(shè)計更先進(jìn),GPU上每個晶體管的平均性能要比CPU的更高。
記者:5年前我獨家專訪過英特爾CTO基辛格。在談?wù)摚梗埃睿碇圃旃に嚂r,他告訴我,英特爾真正的核心競爭力是設(shè)計與制造這兩個階段的雙向優(yōu)化。如今,半導(dǎo)體制造工藝已經(jīng)進(jìn)入45nm?留給各自獨立的Fabless(無生產(chǎn)線芯片制造商)和Foundry(標(biāo)準(zhǔn)工藝制造商)之間的工藝冗余度越來越小。未來,你們與合作伙伴臺積電如何應(yīng)對這一挑戰(zhàn)?
Kirk:首先我得指出,每個處于帕特·基辛格先生位置的人當(dāng)然都會像他這么說。他總是把自己的公司說得很好。盡管我們和Foundry不是同一家企業(yè),但我們之間密切合作,彼此之間做了優(yōu)化。我不認(rèn)為在這一點上有任何區(qū)別。
記者:你們做同樣的事?
Kirk:是的,我們必須這么做,否則我們就沒有競爭力。
記者:你對未來GPU在制造上有何展望?
Kirk:我認(rèn)為前景很光明。每跨入新一代設(shè)計尺寸當(dāng)然意味著更復(fù)雜的設(shè)計和更大的精力投入,但這就是我們的工作,我們必須這么做,就像英特爾一樣。
CPU與GPU:融合還是集成
記者:回顧CPU的發(fā)展,由于集成了數(shù)學(xué)協(xié)處理器,Intel 80486顯著提升了浮點計算的性能,后來由于集成了MMX等多媒體指令集,使得Pentium MMX的多媒體性能得以增強。NVIDIA也在2005年推出單芯片的芯片組+GPU產(chǎn)品C51。這些都是PC平臺上SOC趨勢的具體表現(xiàn)。請問你是如何評價CPU與GPU集成的?
Kirk:集成只是縮減成本的一種途徑,而非提高性能或增強功能的良方。所以,CPU和GPU的集成對于低端或內(nèi)嵌應(yīng)用來說比較合理,因為這些領(lǐng)域需要控制成本,便攜式設(shè)備、手機和筆記本電腦亦然。而對于高端應(yīng)用或條件要求苛刻的應(yīng)用來說,計算能力的不足意味著你無須集成,相反,你要做的是分解,通過更多的CPU和GPU來獲得更強的計算能力,而不是更小的CPU和GPU。
記者:但SOC是未來趨勢?
Kirk:我不這么認(rèn)為。我們距離最完美的圖形還有很長的距離。在準(zhǔn)備在高端應(yīng)用中進(jìn)行圖形集成之前,我們還應(yīng)做得更好,要走的路還很長。
記者:NVIDIA從Stexar公司挖到了一批前英特爾奔騰4的骨干。在CPU廠商頻頻染指GPU時,你們不會讓這些CPU的頂尖高手改行從事GPU的設(shè)計吧?
Kirk:就我們是否會生產(chǎn)CPU這個問題,我并不想做什么預(yù)測,實際上,我并不認(rèn)為CPU有那么的重要。我深信,GPU距離完美還有很長的距離而CPU已接近完美。隨著時間的推移,CPU的大小已變得沒那么重要了。這樣看來,現(xiàn)在或許是CPU實現(xiàn)集成的最佳時機。我想問的是,既然我們實施了在北橋芯片中集成圖形功能的策略,又為何不集成CPU呢?這么小的東西集成起來會更方便。
記者:人們往往將PC產(chǎn)業(yè)的成就歸結(jié)于開放的標(biāo)準(zhǔn)和大規(guī)模制造帶來的經(jīng)濟效益,這的確是通用計算平臺的屬性;但卻往往忽視了通用計算平臺的另一個屬性,即它同時也是一個開放的開發(fā)平臺,從而鼓勵ISV在其上快捷地開發(fā)應(yīng)用,而眾多的應(yīng)用則促進(jìn)了PC平臺的繁榮。NVIDIA前不久推出的CUDA,也正是GPU從專用平臺走向通用平臺的一個里程碑事件,請問GPU的下一個里程碑是什么?
Kirk:我認(rèn)為CUDA已經(jīng)取得了空前成功,它的接受程度令人吃驚。這也表明了人們希望對整臺電腦進(jìn)行編程的濃厚興趣。過去人們往往是編寫一個C程序來控制CPU,再編寫一個圖形程序來控制GPU。你一定想通過編寫一個程序來控制CPU和GPU。因此我堅信,將來CUDA將變得無處不在。如果要對CPU和GPU進(jìn)行編程并管理系統(tǒng)中的所有資源,那就沒有理由不用CUDA。
記者:您還有什么要總結(jié)的嗎?
Kirk:我個人認(rèn)為,GPU正逐漸將并行計算推向主流,并行計算與異構(gòu)處理器系統(tǒng)的“聯(lián)姻”將是大勢所趨。而主導(dǎo)這場變革的就是GPU。
(以下回答為郵件回復(fù)內(nèi)容)
GPU沒有CPU的煩心事
記者:無論是并行計算還是虛擬化,對于在PC平臺上的ISV都是新鮮事,這也意味著巨大的挑戰(zhàn)。對于GPU而言,并行性是與生俱來的屬性,但未來如果GPU唱主角的話,是否也要面對虛擬化的挑戰(zhàn)?
Kirk:有趣的是,CPU目前所面臨的主要挑戰(zhàn)就是多核、虛擬化和大規(guī)模并行計算,而這些問題都是GPU早已提出并解決了的。作為操作系統(tǒng)的一部分,GPU在用于各種圖形應(yīng)用時,必須在各種應(yīng)用需求之間被“分割”成許多時間片,因此,GPU已經(jīng)成為一種虛擬資源。
記者:我個人認(rèn)為,AMD的協(xié)作平臺Torrenza在技術(shù)上看來比較合理:依靠開放的總線,Torrenza目前容許GPU和FPGA(現(xiàn)場可編程門陣列)掛在CPU總線上,第二步將把GPU和FPGA封裝在一起,最終將集成在一個硅片上。這樣,GPU大大提升了CPU的浮點性能,而FPGA的實時系統(tǒng)重構(gòu)的特性則可以針對要執(zhí)行的計算任務(wù),把通用的CPU實時優(yōu)化成“專用”CPU。你認(rèn)為,這種CPU+GPU+FPGA——當(dāng)然,你可能會改為GPU+CPU+FPGA這樣的順序——在工藝實現(xiàn)上和軟件開發(fā)上會有哪些挑戰(zhàn)?
Kirk:我認(rèn)為開放式總線是一種非常好的方式,它讓創(chuàng)新者能夠互相競爭從而為該平臺作更大貢獻(xiàn)。這樣做是否會導(dǎo)致集成——也就是將CPU+GPU+FPGA集成到一塊芯片上,我真的不太清楚,但至少我認(rèn)為不會。我認(rèn)為集成是一種戰(zhàn)略,并且應(yīng)該是為某一特定目的而采用的,這些目的通常是降低成本或普及產(chǎn)品。我并沒有看到這類集成真的是為了打造更好的系統(tǒng)。但我認(rèn)為,這是判斷開放式總線的最好方法,這樣其他供應(yīng)商就可以為主處理器構(gòu)建協(xié)處理器芯片了。
“視覺就是計算機”
記者:人們經(jīng)常從CPU廠商那里獲得對計算未來的展望,最著名的要算是Sun的“網(wǎng)絡(luò)就是計算機”;但人們卻難得聽到GPU廠商對計算未來的見解。即使是NVIDIA CEO黃仁勛多年前提出的“視覺就是計算機”,知道的人也不多。請告訴我們“視覺就是計算機”的內(nèi)涵。
Kirk:我認(rèn)為視覺計算對計算來說是至關(guān)重要的。視覺是信息輸入我們大腦的最快途徑。與計算機的每次交互都應(yīng)該是可視的,這種可視性應(yīng)該是詳細(xì)、復(fù)雜、豐富多彩并且是完全三維立體的形式!因此視覺計算已經(jīng)開始并且正在影響著我們的工作、娛樂以及與計算機有關(guān)的生活。視覺計算是一個過程。
記者:視覺計算將在多大程度上改變現(xiàn)有的產(chǎn)業(yè)格局?
Kirk:視覺計算對于消費者和專業(yè)人士來說比一般用途計算更為重要。視覺計算意味著要在視覺上呈現(xiàn)更多的信息,在視覺上實現(xiàn)全新的應(yīng)用。更佳的視覺計算用戶體驗是與眾不同和更加美妙的。而更高CPU性能的視覺體驗很難量化,而且這一點重不重要也不太清楚。實際上,誰需要以多快的速度運行字處理軟件?
記者:x86處理器成就了微軟,視覺計算會不會成全另一個微軟?
Kirk:我希望視覺計算能為包括微軟在內(nèi)的許多軟件公司創(chuàng)造機會。GPU的性能提升為軟件開發(fā)人員提供了增加應(yīng)用程序互動性和豐富度的工具箱。在科學(xué)和工程設(shè)計應(yīng)用以及娛樂領(lǐng)域中,這一點最為明顯。其中娛樂領(lǐng)域已經(jīng)具備了豐富的視覺效果。
半導(dǎo)體技術(shù)主管很神奇
記者:我遇到的半導(dǎo)體領(lǐng)域的技術(shù)帶頭人都很神奇:曾任英特爾CTO的基辛格,進(jìn)入英特爾時還沒上過大學(xué);曾任AMD CTO的Fred Weber只拿到了物理學(xué)學(xué)士學(xué)位。而你本科和研究生讀的都是機械工程專業(yè),最終卻大跨度地拿到了計算機科學(xué)的博士學(xué)位,現(xiàn)在又做了半導(dǎo)體廠商的首席科學(xué)家。
Kirk:實際上,我現(xiàn)在離出發(fā)點并不遙遠(yuǎn),只是繞了一個圈子。大學(xué)時,我學(xué)過并行編程。那時候覺得很難也很復(fù)雜,因為我們當(dāng)時使用的計算機大多數(shù)不是并行系統(tǒng),并行編程好像是一種神秘的技術(shù)。后來我開始對設(shè)計和創(chuàng)造產(chǎn)生興趣,因此選擇了機械工程。機械工程中我最感興趣的是設(shè)計以及設(shè)計工具,例如CAD,而CAD最重要的就是計算機圖形學(xué)。因此,我實際上從未擔(dān)任過機械工程師,我直接進(jìn)入了計算機圖形軟件行業(yè)。當(dāng)我回到學(xué)校,讀計算機科學(xué)學(xué)位時,我重點集中在數(shù)學(xué)、圖形學(xué)和超大規(guī)模集成電路設(shè)計上。之后,我進(jìn)入了圖形芯片制造業(yè)。
記者:作為半導(dǎo)體領(lǐng)域的CTO,你日常要做哪些工作,對哪些方面比較感興趣?
Kirk:我會花很多時間來考慮如何不斷提高GPU性能。我還會花很多時間來考慮在可視計算和科學(xué)計算上的多GPU大規(guī)模并行應(yīng)用。GPU具有將許多應(yīng)用程序速度提升100倍的潛力,這將不僅改變科學(xué)和工程研究,而且也有可能改變消費和商業(yè)應(yīng)用。最后,我還花了大量時間來教授如何利用CUDA進(jìn)行并行編程。CUDA是一種編程環(huán)境,讓編程人員能夠為CPU和GPU寫出并行計算的程序。我堅信CUDA將會帶來計算技術(shù)的革命。影響這種快速變革的最佳的方法就是改變編程的教學(xué)方法,使更多的年輕學(xué)生了解這種新技術(shù)。

GPU與CPU浮點性能比較
David Kirk,1997年出任NVIDIA首席科學(xué)家,領(lǐng)導(dǎo)了NVIDIA圖形技術(shù)開發(fā),使其成為當(dāng)今最流行的大眾娛樂平臺。他曾在視頻游戲廠商Crystal Dynamics任首席科學(xué)家;在此之前,他在HP 阿波羅工作站部門任工程師。
2002年,SIGGRAPH將計算機圖形學(xué)成就獎頒給Kirk,以表彰他將高性能計算機圖形系統(tǒng)帶給大眾。2006年,因?qū)⒏咝阅軋D形學(xué)帶入個人電腦所做的貢獻(xiàn),Kirk當(dāng)選為美國工程院院士,這是美國工程領(lǐng)域最高專業(yè)成就榮譽。Kirk在圖形學(xué)技術(shù)領(lǐng)域擁有50多項專利。
Kirk在麻省理工學(xué)院獲得機械工程學(xué)士和碩士學(xué)位,并在加州理工學(xué)院獲得計算機科學(xué)碩士和博士學(xué)位。
既然我們實施了在北橋芯片中集成圖形功能的策略,又為何不集成CPU呢?這么小的東西集成起來會更方便。