殺不死的GPU

殺不死的GPU

剛過去的八月裡圖形遊戲業界hin熱鬧,最高專業盛會Siggraph剛在溫哥華勝利閉幕,緊接著科隆遊戲展。這可忙壞了我們可敬可愛的NV話事人,GPU大佬,兩彈元勳,黃教主,老黃--黃仁勳。秉承每逢盛會扔核彈的優良傳統,老黃跨越萬里,連續兩場高強度keynote演講。55歲的他身著標誌性的黑色夾克戰衣,全程火力輸出,遊刃有餘。讓人歎服世間還是有不會被油膩被枸杞茶養生杯腐蝕的大英雄。

辛苦歸辛苦,老黃心裡絕對美滋滋,世界首創的光線追蹤(Ray-Tracing)GPU連續佔據了專業和消費兩大市場C位。針對專業用戶Quadro RTX產品線中,最頂級的RTX 8000 GPU一塊賣整一萬美刀,老黃還覺得賣得太便宜,稱之為”steal”。而在遊戲領域,NV憑藉2016發售Pascal架構的1000系列顯卡已經佔盡優勢,此番GeForce RTX 2000系列一出,更是一騎絕塵,唯一的競爭對手AMD能否在年內拿出稍稍能打一點的競品也是未知。看現在老黃躺GPU聚寶盆裡數錢到手軟的好日子,有誰能想到就在十年前,NV的形勢還是岌岌可危,在英特爾發動的滅國絞殺戰中風雨飄搖,甚至連GPU的未來都蒙上了一層陰影。

自從微軟和英特爾羽翼豐滿,取代曾經的帶頭大哥IBM後,PC生態圈涇渭分明,軟件以微軟馬首是瞻,硬件上英特爾幾乎說一不二。道理很直接,大部分PC中的組件都是圍繞著CPU這個核心轉,不是幫CPU處理I/O這些周邊工作,就是最終仰仗CPU才能完成計算任務。掌握了CPU,真的就可以為所欲為。英特爾曾經連續數代CPU更新換代的的同時更換接口設計,針腳數在1150,1155,1156,1366間翻來覆去。而高端型號又單獨搞一套,同一代不同層級的CPU之間接口不兼容,不同代的處理器看著針腳數一樣還是不兼容。用戶要購買升級CPU都必須同時投資搭載了相應芯片組的新主板,英特爾一魚兩吃,日子過得悠哉悠哉。

偏偏這樣的舒心日子,有人要來從中作梗。曾經眾多PC組件中不顯山不露水一員的顯卡,本質公職也就是把CPU計算結果顯示到屏幕上,突然遇到了大貴人。隨著圖形應用和遊戲的發展,老黃正式打出了GPU這一名號。縱使形狀上還是一塊卡,GPU在PC整體計算能力中的比重和地位突飛猛進。隨著PC市場整體停滯不前,遊戲PC成了增長最客觀的細分市場。玩家的更傾向於將資金投向GPU,經驗證明GPU才是保證良好遊戲體驗的第一干將。整機配置中,GPU價格超過CPU和主板的總和已是尋常,發燒玩家使用多路GPU來追求最逼真的畫面,最流暢的舒暢也是不計成本。

如果只是收入上的競爭,英特爾還不會當作心腹大患,畢竟一小撮遊戲PC帆布聊天。真正讓英特爾如坐針氈的是老黃扶GPU上位取代CPU成為主要計算引擎的大圖謀。2007年NV的GPU通用計算框架CUDA一登場,就開始向英特爾的傳統領域發起進攻。先是宣稱視頻編碼速度比英特爾最頂級的CPU還要快上10倍。又提出遊戲中碰撞檢測等物理計算使用GPU加速後,更是把CPU甩在身後。天命註定,當時英特爾和NV各自收購了遊戲物理計算引擎中的兩個領頭羊公司Havok和PhysX。這兩家物理引擎的最重要區別也就在PhysX從一開始也是採用專用計算器加速的思想。原本的冤家都有新老大撐腰,一時間嘴炮橫飛,激戰連場,甚至於出現了某英特爾VP指名道姓要教教老黃數學的經典戰例。

個人用戶能從GPU計算收益多少的嘴炮沒聽,英特爾高性能計算的自留地已經被CUDA強挖了牆角根。在超算領域,軟件兼容性,界面,並行編程的複雜度這些都不是大問題,或者自有高人搞定,GPU這樣能夠平行處理大量暴力浮點計算的狠角色實在太投緣了。很多專用的計算軟件在將核心計算移植到CUDA後確實立刻得到了戲劇性的性能飛躍。各大超算方案紛紛傾囊購買大量的GPU和原先的CPU陣列組成混合方案。

英特爾漸漸感受到來自老黃的強大壓力。這位公開場合穿黑色皮夾克遠多於西裝革履的,看著更像搖滾重型機車票友的大佬,對核心計算技術的熱情,對遠景的把握,在當今的科技圈少有人及,倒是透老一輩硅谷科技狂人的獨特氣質。英特爾恐怕之前還沒有遇上過鬥心如此之盛的對手,如何應付當時需要細細思量。

兵來將擋,水來土掩,用自己的GPU將NV的GPU打垮,英特爾不是沒有想過。畢竟之前英特爾也曾經發布過唯一一塊獨立顯卡i740,雖然不叫座,技術水平還是不遜色的。不過英特爾有更大的想法,你要用CUDA廢我的高性能計算,我就要用自己最擅長的X86滅你滿門。英特爾啟動的Larabee項目,就是將眾多經過優化的X86核心到一塊處理器(manycore)上,這樣寶貴的X86指令集就能助陣,理論上很多軟件只要稍作調整就能坐享大規模平行加速的。而GPU做的核心工作—渲染,也可以順理成章的作為一個軟件在Larabee硬件上實現。到時誰還會用詰屈聱牙的CUDA?

只可惜,Larabee項目進行了每一年,英特爾就意識這個項目的規模和難度超出預計。以X86指令集為底本設計出能夠大規模並行的眾核處理器已經夠棘手,現代圖形庫的微妙和繁多的特性,也令原先做顯卡只不過是實現一個Larabee軟件渲染器的豪言壯語變得不切實際。英特爾不得不放棄做在Larabee上構建GPU的計劃,而將方向完全轉移到了高技能計算上。之後催生的產品Xeon Phi命運如何按下不表,正面擊敗NV GPU的原定計劃就此泡了湯。

殺不死的GPU

正面進攻失利,英特爾不得不再謀奇招。風雲際會,PC生態圈其他三家主要的芯片廠商正剛剛做了一輪大洗牌。早先對於英特爾借事實壟斷明裡暗裡頻繁使用超市場手段擠壓其他廠商的做法,CPU二號廠商AMD和GPU老大NV可謂同仇敵愾,並肩抗戰。技術上兩家也有良好互動,NV為AMD處理器設計的多款主板芯片組風評頗佳,不當給AMD的寶馬處理器配上了好鞍,NV自己也額外賺點零花錢,氣氛融洽,其樂融融。

當AMD看出了GPU的潛力後,事情逐漸變得微妙。以英特爾的資源和基礎,搞GPU尚且到處碰壁,對於規模中等不尷不尬的AMD,最見成效的方法自然是收購或者合併。江湖傳言,有那麼一段時間,AMD和NV郎情妾意,談判頗有實質進展。可到了談未來主導權的階段,大問題來了。當時AMD在處理器摸爬滾打多年,英特爾的霸權是撼不動,當個PC硬件屆的二哥,反抗軍總盟主還是夠格的。AMD的資歷,地位都勝過NV一籌,市值也高,合作芯片組也是AMD主導。按慣例,合併後用那塊金字招牌暫且不論,頭把金交椅總該由AMD當家魯毅智(Hector Ruiz)來坐。可NV的當家是誰?天縱奇才兼具王霸之氣啊的老黃,要讓他把自己一手創建的寶貝NV拱手相讓,也無怪乎很快AMD和NV就分道揚鑣。

AMD一統CPU和GPU的千秋大業不能停手,市面上剩下的選擇也只有GPU老二ATI了。在砸鍋賣鐵,揹負鉅債後AMD終於得償所願,一舉收購了ATI。這筆收購幹得雖然豪氣干雲,在財務上卻多少有點謀事粗糙,行事魯莽之嫌。未來幾年,AMD不得不違背創始人Jerry Sanders的祖訓“真男人要有圓晶廠(Real men have fabs)”,甚至一度學習索尼賣園區,賣大樓以緩解財務壓力。此為後話暫且不表。此時,已將CPU和GPU同時收入囊中的AMD,立刻和已是直接競爭對手的NV撇清關係,將之前芯片組授權收回。

AMD的操作給了正要給NV一點顏色看看的英特爾靈感,別看老黃整天叫囂GPU並行計算是未來,眼下不也還從英特爾處理器的配套主板芯片組上撈金嗎?這種吃飯砸鍋的行為自然要嚴加懲戒,英特爾也取消了對NV的主板芯片組授權。NV曾經滋潤穩定的芯片組業務就此被連根拔起,由此又引發了雙方一系列綿延數年的專利官司。最終以英特爾分期支付15億美元給NV而告終。這筆錢於英特爾固然只是毛毛雨,對於NV整條業務被大卸八塊之痛也於事無補。英特爾初戰告捷,之後就要對獨立GPU亮出真正的王牌武器了。

盤點了GPU市場,不論NV還是AMD,真正走量的總是玩家俗稱“亮機卡”的入門級GPU。顧名思義這些GPU的主要用途並沒有超過古早顯卡太多,能將連接顯示器輸出圖像就完成了九成的任務,當然偶爾用來玩個植物大戰殭屍之類的休閒小遊戲也還能勝任。正是這些大量裝載於商務辦公機家庭上網機的入門級GPU帶來的利潤支撐了NV和AMD研發那些真正的性能巨無霸。英特爾計上心來,如果能釜底抽薪,幹掉入門級GPU市場,GPU成為未來計算王者的夢想就只能成為空中樓閣。

英特爾做中高端GPU不在行,弄個入門級亮機卡還是有把握的。更毒的是,英特爾不但要做顯卡,還要免費送給用戶。從Nehalem架構開始,英特爾啟用了新的CPU品牌Core i3, i5, i7,分別對應入門,中斷和高端產品,同時逐漸在各級產品中封裝了集成GPU。用戶想要買不內置GPU的英特爾處理器,還得花費額外費用購買K系列發燒級產品。對於入門級用戶,買CPU白撿一個能夠滿足功能需求的顯卡,何樂不為。這記本壘打轟出,GPU市場的局勢果然如英特爾預料發展,NV和AMD的入門級產品銷量大幅下降,英特爾反而成了最大的GPU廠商,份額遠超NV與AMD之和。

這樣商業成功的策略卻不乏令人詬病之處。同樣是整合GPU和CPU,英特爾著眼點在於打擊對手市場,初期並沒有AMD APU那樣將計算最終無縫融合的長遠計劃。對於中高端用戶來說,擠在CPU裡性能受限的內置GPU難堪大用,終究需要購置獨立GPU。而在英特爾最新處理器中,大部分芯片面積都已經貢獻給了GPU。要說這些所謂白送實際卻用不上的微電路沒有增加額外成本,說服力欠奉。更糟的是,GPU終歸是英特爾計算戰略中的二等公民,這樣態度下催生的英特爾GPU驅動質量可想而知。主流的圖形API DirectX和OpenGL的新版本,英特爾的更新支持不但總是來得慢一拍,新特性還經常實現不完全,錯誤眾多。圖形程序員每每在程序、遊戲發佈後看到不少英特爾平臺獨有的bug,將自己花費大量精力來除錯調優才得到的精美圖像以滑稽荒誕的方式呈現在屏幕上,當時的心境可以說是很崩潰了。

殺不死的GPU

英特爾的內置GPU的種種不是先放一邊,失去了入門級市場的利潤,AMD和NV都承受著重壓。舉債收購ATI帶來了沉重財務負擔,讓AMD手忙腳亂。賣掉圓晶工廠還能自我安慰是躋身於fabless的新潮流,慌不擇路地將移動GPU部門賣給了高通就只能感嘆造化弄人了。CPU兩強幾乎同時以相似的方式錯過了移動處理器的大party,高通卻成了移動時代首個CPU和GPU的全能大贏家,悶聲發大財。兩線作戰的AMD在CPU上難以追趕英特爾,在GPU市場上也要和NV浴血搏殺,形勢岌岌可危,接任魯毅智的Dirk Meyer能做得也只有小批量地持續不斷地變賣資產和裁撤員工。這也未能挽救AMD飛流直下的股價,不少優秀的資深員工眼看著薪酬中佔比極重的RSU, ESPP等股票獎勵極速縮水,只能跳船自保。

局勢動盪,寄予厚望的融合計算APU也未能兌現預期。在CPU的絕對性能已是短板的情況下,AMD的異構計算系統架構(HSA)將重點放在了統一虛擬內存等技術,期望能降低GPU和CPU的數據交換帶來的瓶頸,以總算力決勝負。而要充分發揮這些強力新特性,離不開軟件的支持。英特爾在編譯器、底層優化工具上揮金如土,NV從確立CUDA的核心戰略甚至更早之前,一直是軟硬協同作戰的典範,甚至業界一度有“NV是家軟件公司“的戲言流傳。AMD雖然不時有諸如Render Monkey等深受圖形程序員喜愛的經典工具,系統級的規劃卻有些含混不清。支持APU的新特性的代碼花了不少時間才進入了Linux內核,AMD也沒打造出NV CUDA這樣的計算平臺,而選擇將寶押在後起的開放標準OpenCL,鑄成大錯。

怎麼講,難道標準開放還有錯了嗎?關於CUDA和OpenCL的恩恩怨怨,鹿死誰手,又有一大坨八卦可聊。OpenCL的擁躉喜歡來來回回兩句話“開放標準”,“很優美”來論證OpenCL必勝。不是天師喜歡懟人打臉,非要把別人前幾年的雄文挑出來逐條批判,不過能對GPGPU整體發展態勢視若無睹,寫下“CUDA越來越不被看好,所以NVIDIA索性把CUDA發佈為一個開源項目,並把CUDA架構在LLVM之上。這和OpenCL近幾年的走強有很大關係。”這樣四個分句都錯的判斷,天師也只狠嘴炮屆高人輩出。

在業界混久了,對開放標準這個東西就多多少少有些免疫力。有些固然是共襄盛舉,另外一些標準從源頭就是各路廠商各有短板,各懷鬼胎,最後沒辦法只能取個最大公共子集,大家都可以扯個虎皮做大旗,緩步前進,誰也不傷面子。即使標準初創時有大願景大目標,不多久就有動機不純的廠商擠進來看看你們這幫壞人是不是又在動腦筋整我,真猜中了,趕緊把水攪渾,從內部崩壞堡壘。OpenCL的標準委員會里面究竟是什麼體驗,天師沒有第一手資料不好瞎說。天師就舉兩個栗子,OpenCL的發明者Apple從來沒有在iOS上嚮應用開發者直接開放過OpenCL框架,有好事者將私有OpenCL框架破解使用,也只能調動CPU計算力,GPU依舊一潭死水。而在昨天剛剛更新的Mac OS Mojave中為了力捧自家的Metal框架,OpenCL和OpenGL被一鍋端進了廢棄站。連龍頭老大都這樣背信棄義,AMD的APU能獲得多少助力不問可知,一時間APU好像和英特爾的內置GPU的core系列也沒什麼不同,GPU強點有限,和中端獨立GPU剛正面最多不過打個平手,CPU差得又有點遠,市場位置很尷尬。

萬幸自助者天助,各路大機緣匯聚,AMD贏得了一個全新的市場—遊戲主機處理器。為什麼說機緣際會,首先就是天時,2008年的全球經濟危機遲滯了主機市場更新換代的節奏,APU的誕生恰巧擠進了索尼的PS 4和微軟的Xbox One的研發週期。而CPU和GPU通力合作對遊戲主機廠也不新鮮。早在GPU名號還沒被老黃打響時,傳統的自高自傲的日系主機廠對下里巴人的PC硬件架構基本是瞧不上眼,偏愛的是各種奇技淫巧的定製自研系統。PC圖形工程師絞盡腦汁做draw call優化,而在更古早的PS 2上,在中央處理器和圖形處理器之間架設了快速通道,哪怕一個一個三角形地畫都有辦法不拖累性能太多。APU的設計理念頗對主機屆胃口,主機廠又一向有從底層親力親為的優良傳統。當年PS 3表面使用的開放標準的OpenGL ES 1.0作為圖形開發庫,實際上就構建在更底層的私有GCM庫上。軟件平臺不完備的缺點根本不叫事,大不了老子從彙編,從驅動開始擼。

那麼主機廠為什麼會徹底放低身段,採用和PC基本相同的架構呢?大勢所趨,長年的經濟衰退加之PC浪潮席捲全球后,曾經特別喜歡在電子硬件上搞獨立王國的日本已底氣不足。PS 3的RSX圖形處理器就魔改了NV的7900 GPU,微軟從世嘉接收了相當多的主機開發資源後上陣的第二作Xbox 360也選擇了ATI定製Xenos GPU,畢竟市面上還能設計頂級GPU的也就NV和ATI兩雄了,必無分號。偏偏PS 3和Xbox 360間的主機戰爭打出一個不鹹不淡的雞肋局面:老霸主索尼模擬地球的調門起得太高,所用的Cell處理器思想超前,除了CPU和GPU,又帶了個拖油瓶—協處理器SPE,軟件廠商費時費力才吃透性能,模擬地球的笑話成本有點太高,市場已被Xbox 360掃蕩了一輪。而微軟奮兩世之力總算是略贏索尼一陣,卻不想槍車球的三件套後勁不足,最終次世代的贏家居然是性能平庸以體感取勝的任天堂Wii。再之後,移動互聯網興起,微軟被各路科技新秀襯托得老態龍鍾。曾經的智能手機二分天下的Windows Mobile和諾基亞,先是親兒子Windows Mobile被玩壞,再收了諾基亞做契弟,結果又玩成渣。微軟不得不考慮收縮戰線,移動市場敗局已定,先守住桌面軟件大本營,雲計算上再決勝負,這遊戲主機好像油水不大,要不要繼續加大投入真的要再思量思量。這邊,索尼的移動等業務也是屢戰屢敗,忙著賣大樓。加上偷雞成功不思進取的任天堂,遊戲主機三強似乎默默達成了共識:下一代的遊戲主機不需要也不可能再以頂尖PC作為性能標杆,能夠和中端PC性能持平,輔以更直接精準的優化和第一方大作也足夠維持主機遊戲的魅力了。於是CPU尚可,GPU不弱的AMD APU作為唯一實際可行的候選人成功入住了PS 4, Xbox One。任天堂本著凡事慢一拍的硬件研發理念在Wii U中搭載了PowerPC和AMD GPU。

殺不死的GPU

殺不死的GPU

殺不死的GPU

殺不死的GPU

殺不死的GPU

殺不死的GPU


分享到:


相關文章: