《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 業(yè)界動態(tài) > 英偉達GPU成功的關(guān)鍵

英偉達GPU成功的關(guān)鍵

2021-10-29
來源:半導(dǎo)體行業(yè)觀察
關(guān)鍵詞: 英偉達 GPU

  前幾天和一個在英偉達的老同事兼老同學(xué)一起吃飯時,聊到了許多老同事,很是感慨;我們這些人各有各的成功,共同的是都是在英偉達GPU計算這個平臺上,在HPC的業(yè)務(wù)上開啟了職業(yè)第一站。回想起2007年底英偉達第一次發(fā)布了CUDA,今天正好是12年,在中國的天干地支計年法中,12年是一個輪回,中國的電視劇中往往在輪回之時回首往事。

  我2008年開始使用CUDA做GPU計算方面的工作,2011年加入英偉達,之后也基本一直從事HPC行業(yè)工作,經(jīng)歷了英偉達的GPU計算業(yè)務(wù)幾乎從開始到現(xiàn)在的全過程,我想對于這個題目還是有一定發(fā)言權(quán)的。

  我把英偉達GPU計算的成功總結(jié)為四個關(guān)鍵要素:戰(zhàn)略前瞻、核心能力構(gòu)建、專注細分市場和重視生態(tài),每個關(guān)鍵要求下面包含四五個小因素。

  戰(zhàn)略前瞻,領(lǐng)導(dǎo)決定一切

  2008年我剛在中科院過程所讀碩士,第一次接觸到GPU時很是吃驚,在當(dāng)時4核CPU只有100GFLOPS計算能力的時候,英偉達的Tesla C1060已經(jīng)過T了,并且推出GPU上的通用計算編程體系CUDA,相比友商的方案,顯著降低了編程難度。在那個時候稍早,在GPU上寫通用計算程序是要用OpenGL的,找某CPU廠商優(yōu)化應(yīng)用程序性能是要另外花錢的。在相近的價格下,能夠獲得近一個數(shù)量級的性能提升,并且硬件還可以用來玩高端游戲,這為GPU計算的擴張奠定了硬件基礎(chǔ)。

  2008年AMD已經(jīng)推出了16核的CPU,公眾開始意識到再在單板上堆更多的CPU核心有點不太現(xiàn)實,而通過CPU頻率提升來進一步提升單核性能這條路也難以為繼;在這樣的大形勢下,英偉達把之前用于圖形渲染的流水線GPU架構(gòu)更新為統(tǒng)一架構(gòu),讓計算任務(wù)和圖形渲染任務(wù)使用共同的硬件單元運行,對圖形渲染來說這雖然浪費了一些GPU資源,但是他開啟了GPU通用計算的新時代,而統(tǒng)一架構(gòu)使得在GPU上面運行通用的任務(wù)變得更為容易,可以基于CPU的通用的編譯器和工具鏈技術(shù)發(fā)展GPU技術(shù),之前的知識和技術(shù)可以相對比較容易的遷移到GPU上,擴大了潛在的開發(fā)者數(shù)量。以后的歷史證明了,英偉達領(lǐng)導(dǎo)人的戰(zhàn)略眼光。

  在大家都意識到摩爾定理難以為繼的時候,HPC領(lǐng)域并無太多潛在選擇,使用新架構(gòu)是一個可能性,但是量子計算、生物計算都新架構(gòu)還遠未達到可用水平,當(dāng)時唯一的選擇只能是異構(gòu)計算。通過把不同特性的計算任務(wù)交給不同的硬件執(zhí)行,異構(gòu)計算能夠獲得遠高于通用CPU的性能和效率,但是當(dāng)時對于異構(gòu)計算有許多選擇,比如DSP、FPGA以及各種ASIC,它們之間互不兼容,誰能夠最終笑傲江湖,依舊是未定之?dāng)?shù)。在NVIDIA 推出CUDA之后,一切就已經(jīng)確定了,CUDA使用C語言擴展并行編程,通過共享存儲器來通信,兩個層次的并行都方式簡化了編程,使得本科生也能夠使用CUDA來寫大規(guī)模高性能計算程序;AMD的brook++一下子就黯然失色,brook是斯坦福一個實驗室開發(fā)的,Ian Buck當(dāng)時正在那里實習(xí)。brook++是brook的升級版本,而那時Ian Buck已經(jīng)在開發(fā)CUDA了,某種意義上說,CUDA從一個全新的路徑上揚棄了brook,而brook++只對brook做了修補,之后的發(fā)展大家就都知道了。這段歷史告訴我們,拋棄“歷史”可能意味著全新的可能和機會,當(dāng)然這需要時機、領(lǐng)導(dǎo)者的勇氣、決心和擔(dān)當(dāng)。

  2012年一代不世出的天才alex 和 其導(dǎo)師Hinton使用CUDA在NVIDIA GPU上編寫了CUDA-CONVNET框架,在ImageNet競賽中一鳴驚人,開啟了深度學(xué)習(xí)的全新時代,英偉達敏銳的觀察到了其潛在的可能性,開始向世界的互聯(lián)網(wǎng)大企業(yè)推銷GPU,并且專門設(shè)立了互聯(lián)網(wǎng)行業(yè)銷售,我也是在那個時候開始關(guān)注BP算法,并且在一年后決定離開英偉達加入了當(dāng)時如日中天的百度IDL。加入百度IDL后,著手開發(fā)深度學(xué)習(xí)基礎(chǔ)庫,當(dāng)時在英偉達GPU上開發(fā)的深度學(xué)習(xí)基礎(chǔ)計算,性能遠超CUDA-CONVNET和Caffe,在此期間和alex在google code上有過討論,其學(xué)術(shù)天才氣質(zhì)讓我自慚形穢;在一次內(nèi)部Hi討論中,我論斷:如果英偉達在Deep Learning領(lǐng)域做成功,他在深度領(lǐng)域的成就將會遠超在傳統(tǒng)HPC領(lǐng)域,當(dāng)時在那個群中的朋友依舊活躍在各大公司,但各人成就差距漸大,這是后話了。在向互聯(lián)網(wǎng)公司推銷GPU的同時,英偉達就開始了其深度學(xué)習(xí)基礎(chǔ)庫CUDNN的開發(fā),并且在不到一年后推向市場。而我在轉(zhuǎn)正時決定離開百度IDL,后來追隨湯曉歐教授創(chuàng)立商湯,走向了另外一段旅程。

  在CUDA推出的一段時間內(nèi),英偉達的HPC業(yè)務(wù)收入相比其它業(yè)務(wù)還是小頭,但是英偉達還是為了GPU計算開發(fā)了一代“熱卡”Fermi,F(xiàn)ermi進一步降低了CUDA編程的難度,但是在游戲市場上差點被AMD打敗,F(xiàn)ermi引發(fā)了是否應(yīng)該為計算單獨設(shè)計一個GPU架構(gòu)的討論。幾年后,當(dāng)我獨自在各種限制和壓力下事實上負責(zé)一個業(yè)務(wù)的時候,我意識到“大黃”的聰明睿智,如果當(dāng)年真的為計算獨立設(shè)計GPU,今天英偉達的GPU計算業(yè)務(wù)可能已經(jīng)失敗,離開英偉達的幾年里,我漸漸深刻的認識到“大黃”是真正的戰(zhàn)略天才,這也漸漸讓我和商湯漸行漸遠,最終分道揚鑣。

  因為業(yè)務(wù)體量小,英偉達的GPU計算還是掛在其它業(yè)務(wù)下面,這潛在的影響了GPU計算業(yè)務(wù)的發(fā)展,大約在2013年,英偉達成立了相關(guān)的BU,并且任命 Ian Buck作為負責(zé)人。Ian Buck是一員猛將加福將,在他負責(zé)之后,英偉達的GPU計算業(yè)務(wù)快速發(fā)展,很快迎來了深度學(xué)習(xí)時代。我記得:在潛在負責(zé)英偉達的GPU計算業(yè)務(wù)的候選人中,Ian Buck的職位并不高,但是任命他時,我沒有聽說有人質(zhì)疑。這件事教會我不拘一格降人才的重要性,后來在我負責(zé)業(yè)務(wù)時,大力提拔和培養(yǎng)了許多人才,使得我的團隊成為商湯最強團隊之一,而我在負責(zé)的多個領(lǐng)域里也建立了自己的聲望。在我離開商湯后,我進一步意識到什么是真正頂尖的人才。

  從2008年到2014年,在深度學(xué)習(xí)工業(yè)界大量應(yīng)用之前,GPU計算給英偉達帶來的利潤并不高,客戶局限在一些知名大國企,但是每年的GTC “大黃”都會花大量的時間介紹GPU計算,出了什么新卡和新庫,CUDA新版本有那些特性等等,參會時經(jīng)常忘記這是一家賣顯卡的公司。

  核心能力構(gòu)建,持續(xù)學(xué)習(xí)

  當(dāng)GPU從流水線架構(gòu)轉(zhuǎn)向統(tǒng)一架構(gòu)時,這意味著英偉達要開始轉(zhuǎn)型了,因為流水線架構(gòu)的GPU只是一個圖形渲染的“加速器”,而統(tǒng)一架構(gòu)的GPU已經(jīng)可以稱為處理器了,這標(biāo)志著英偉達從圖形渲染領(lǐng)域進入了HPC領(lǐng)域。

  HPC業(yè)務(wù)需要的核心能力和GPU圖形渲染所需要的核心能力有非常大的區(qū)別,在英偉達進入HPC領(lǐng)域的時候,面臨了非常大的核心能力構(gòu)建的挑戰(zhàn);一個典型的例子就是:早期cublas和cufft的性能一而再再而三的被 HPC 領(lǐng)域人士吊打,但是英偉達很快就在相關(guān)領(lǐng)域建立了自己的核心能力,之后再也很少有人能夠提出吊打 cublas 和 cufft 的計算方法了。在被吊打期間,英偉達負責(zé)的團隊承受了非常大的壓力,但是英偉達內(nèi)部并沒有給多的責(zé)備,更多的是提出期望,而基礎(chǔ)庫團隊也展現(xiàn)出了良好的風(fēng)度,邀請相關(guān)人員去GTC上做講座,去交流,然后把學(xué)習(xí)到的成果更新到基礎(chǔ)庫中。從這段經(jīng)歷里,我學(xué)習(xí)到了兩個受用至今并一直堅持的核心能力:一個是學(xué)習(xí)和迭代,另一個是解決問題而非責(zé)備。我每年至少讀十幾本書,找?guī)资畟€不同的人聊天,從書和他人身上學(xué)習(xí)好的方面。在帶團隊之后,在下屬沒有很好的解決問題時,我經(jīng)常說:我發(fā)怒是因為我覺得你可以做得更好但是你沒有,這是一種期望而非責(zé)備。

  在英偉達核心能力的構(gòu)建過程中,按時間來看,主要有兩個部分:高性能計算能力和AI算法能力,其構(gòu)建方法基本上是通過調(diào)用優(yōu)秀人才組建初始團隊,然后再通過校招和社招補充領(lǐng)域頂尖人才。在具體的對外成果輸出上面,通過螺旋式提升來增強競爭力,幾個迭代下來,幾乎變成了業(yè)界最優(yōu)的實現(xiàn),cublas、cufft、cudnn和今天的許多新庫基本上都是同樣的方式完成的。在獨自成軍后,我也基本上借用了這個邏輯來創(chuàng)建新的團隊,調(diào)集一位有意向、學(xué)習(xí)能力、理解能力很強且具有自我成就感和追求的新人來負責(zé),同時給他配備最優(yōu)秀的新人,通過我的能力和威望讓團隊很快凝聚起來,形成集體建立共同目標(biāo);在產(chǎn)品開發(fā)上,第一版專注于應(yīng)用場景的走通而非數(shù)字指標(biāo),之后再通過數(shù)字指標(biāo)來引領(lǐng)進展,迭代提升。在解決問題的過程,強調(diào)全力追求最好的進展而非完美,在一個挑戰(zhàn)性的課題中,設(shè)計的越好可能就意味著失敗的可能性越大,因為在這個不確定性占主導(dǎo)的時代絕大多數(shù)時候沒人清楚的知道最終的結(jié)果全貌,我們只有一個模糊的形象或認知,而我們需要做的是一頭扎進去,在這種情況下維納斯才是完美。

  專注細分市場,攻敵所不守

  在CUDA推出時,高性能計算市場英特爾基本上一統(tǒng)天下,英偉達想無論是渠道、生態(tài)還是技術(shù)都遠遠落后,在這種情況下要從Intel嘴里搶肉吃,談何容易,選擇合適的細分市場和合作伙伴就很重要。孫子兵法所攻其所不守,“大黃”又一次展示了其戰(zhàn)略天賦,很明智的,英偉達從一個英特爾不能競爭的角度出發(fā),英偉達說用上GPU你的程序就快了多少倍,你買的服務(wù)器就少了多少,你的維護成本就更低了,這個邏輯本身并不那么吸引人,因為客戶沒必要冒險從一個已經(jīng)被無數(shù)人證明的平臺遷移到另一個平臺;但是這個戰(zhàn)略聰明的地方在于:英特爾沒法反擊,因為英特爾不能說我優(yōu)化一下代碼,你用GPU的相對速度就沒那么快了,因為一旦客戶的程序快了,他買的機器就少了,這相當(dāng)于斷自己的收入。“大黃”真正實現(xiàn)了“攻敵所不守”。

  “攻敵所不守”并不能保證人們一定會用GPU計算,因為沒有應(yīng)用,英偉達沒有一下子就從工業(yè)界出發(fā),而是發(fā)現(xiàn)了從學(xué)術(shù)界出發(fā)的這條路,相比工業(yè)界,學(xué)術(shù)界更愿意試用新技術(shù),畢竟那么多學(xué)生要發(fā)論文畢業(yè)。英偉達通過多種方式鼓勵高校和研究所從事CUDA相關(guān)的研究工作,設(shè)立CUDA研發(fā)中心,發(fā)CUDA大師證書,做CUDA技術(shù)認證,讓學(xué)術(shù)界為CUDA背書。通過學(xué)術(shù)界為工業(yè)界做預(yù)研,通過學(xué)術(shù)界為工業(yè)界培養(yǎng)人才。

  超算是一個國家的核心競爭力之一,世界主要大國在這個領(lǐng)域競爭了幾十年,在可見的時間下依舊會競爭下去,這一領(lǐng)域有幾個典型的賽場:top500和green500,全球的多個國家都在這些賽場上展示自己的實力,而英偉達GPU超強的計算能力正好適合這個賽場,英偉達為各國的超算中心和國企在此賽場上的競爭提供彈藥。由于對國家來說,超算是核心競爭力,而國家并不缺乏“小錢”,更不缺乏人才,而在超算賽場上拿到第一對民眾的自豪感有極大的振奮作用,主導(dǎo)這些競賽的個人也獲得了巨大的政治收益,他們千方百計的使用各種技術(shù)來提升超算的競爭力,GPU為他們提供了最好的彈藥。英偉達通過支持各國的超算中心勇奪第一,既獲得了經(jīng)濟收益,又作了很好的宣傳。

  深度學(xué)習(xí)大火后,英偉達為互聯(lián)網(wǎng)大公司提供GPU用于深度學(xué)習(xí)訓(xùn)練,這一領(lǐng)域基本上已經(jīng)占據(jù)絕對優(yōu)勢,并且為英偉達貢獻了大量收入和近十倍的市值提升。當(dāng)英偉達意識到深度學(xué)習(xí)是一個潛在的大市場并為之大力投入時,其競爭對手幾無察覺。

  重視生態(tài),有所為有所不為

  在推出CUDA后,如何建立生態(tài),吸引開發(fā)者使用CUDA決定了英偉達是否能夠生存下去,英偉達推出了一系列的措施來建立生態(tài),其中一些起到?jīng)Q定的性的作用。

  在CUDA剛推出的時候,英偉達便宜的Geforce游戲卡就支持 CUDA,這一下子把CUDA的入門設(shè)備投入降低到千元級了,基本上那個學(xué)校的老師都買得起,完全去掉了設(shè)備這個限制,提高了開發(fā)者的覆蓋面。一些讀者可能要問:那英偉達怎么賺錢?答案是英偉達有企業(yè)級的Tesla卡,相比Geforce,Tesla為企業(yè)計算提供了更多支持,而且價格貴了許多。筆者CUDA開發(fā)的第一塊GPU卡就是 Geforce 系列,后來在前東家時,決策為集群使用了大量的 Titan 導(dǎo)致英偉達的同事責(zé)怪,據(jù)稱因為 Google 和 facebook聽說我們在用 Titan,因此他們也決定用Titan。2017年英偉達GPU驅(qū)動協(xié)議要求不能在數(shù)據(jù)中心使用 Titan,這是一個很有意思的舉動。

  通過支持學(xué)生和老師發(fā)論文,英偉達為CUDA培養(yǎng)了大量的潛在開發(fā)者,而發(fā)論文和開發(fā)者因為興趣學(xué)習(xí)的最大區(qū)別是:發(fā)論文是必須要學(xué),總不能因為不學(xué)習(xí)而畢不了業(yè),而要畢業(yè)更要讓應(yīng)用的性能足夠好。

  英偉達通過inception計劃支持創(chuàng)業(yè)公司采用CUDA做項目,進入Inception計劃的項目能夠得到英偉達的資金和宣傳支持,這對許多創(chuàng)業(yè)公司來說還是有一定吸引力的。對于英偉達來說,通過 Inception 項目,他能夠了解世界上最領(lǐng)先的創(chuàng)業(yè)公司在做什么,同時通過投資等手段把這些創(chuàng)業(yè)公司吸引到自己的生態(tài)中。

  英偉達開源了許多庫,如支持常見并行原語的cub,支持多GPU之間通信的NCCL,英偉達優(yōu)化的nvcaffe等等,這些庫降低了各個領(lǐng)域使用英偉達GPU開發(fā)應(yīng)用的難度。但是對于現(xiàn)有行業(yè)成功軟件和中間件,英偉達基本上沒有推出替代品,英偉達沒有自己的MPI實現(xiàn),沒有自己的深度學(xué)習(xí)框架,英偉達通過開發(fā)能夠優(yōu)化這些中間件的性能的基礎(chǔ)庫給這些廠商使能,通過這種“多交朋友”的方式,英偉達擴大了生態(tài)觸角;又避免了自己去做的潛在失敗可能,實際上大企業(yè)進入一個新的領(lǐng)域遇到挫折是常見的,一旦失敗,既被對方視為敵人又強化了對方的領(lǐng)域影響力。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。