今天抽空寫個(gè)文章,聊一聊AI芯片的生態(tài)問題。這個(gè)話題很大,涉及面非常寬泛,而且不是純技術(shù)問題,相關(guān)的爭(zhēng)議也同樣非常多。
和我過去寫的文章一樣,我的觀點(diǎn)一般也比較激進(jìn),各位看官請(qǐng)酌情食用。
萬(wàn)字長(zhǎng)文預(yù)警?。?!這個(gè)話題非常大,但實(shí)在不想拆成多篇了,也就一口氣講完了。
“生態(tài)”本身就是個(gè)很寬泛的詞,生態(tài)本身的定義很容易陷入文字游戲的范疇。「我今天更多從一些公認(rèn)的標(biāo)的物出發(fā)去討論生態(tài)競(jìng)爭(zhēng)的底層邏輯?!?/p>
例如:
深度學(xué)習(xí)框架PyTorch、
算子編程CUDA、
系統(tǒng)層編程語(yǔ)言C/C++、
甚至包括C/C++為主的項(xiàng)目的構(gòu)建系統(tǒng)cmake等,
芯片側(cè)標(biāo)配也是NVidia GPU、
Intel的x86服務(wù)器、
GPU之間通信的NVLink、
CPU和GPU之間的PCIe。
這些基本都是公認(rèn)的擁有一定生態(tài)統(tǒng)治力的軟件、硬件、協(xié)議,這些組件組合到一起,共同形成了整套行業(yè)內(nèi)最標(biāo)準(zhǔn)化的體系。
這套體系實(shí)際上是自計(jì)算機(jī)誕生以來(lái)持續(xù)迭代演進(jìn)至今的一套事實(shí)標(biāo)準(zhǔn)組成的體系,其中很多組件都具有歷史的厚重感。
整個(gè)體系不屬于任何一個(gè)組織,是全行業(yè)多年競(jìng)爭(zhēng)博弈后的結(jié)果,但同時(shí),博弈中的勝者也都擁有整個(gè)體系中某一生態(tài)位的話語(yǔ)權(quán)。
整個(gè)體系又大大小小的各種生態(tài)位構(gòu)成,生態(tài)位之間相互依賴,「每個(gè)生態(tài)位上的組件既是其他生態(tài)位的應(yīng)用」,需要滿足相應(yīng)生態(tài)位的規(guī)則,又給其他生態(tài)位搭建平臺(tái),可以制定相應(yīng)的游戲規(guī)則。
「生態(tài)位的話語(yǔ)權(quán)并不取決于誰(shuí)是誰(shuí)的平臺(tái),而取決于需求」,例如NVidia的GPU名義上仍然是Intel定義的“中央”處理器+各種PCIe“從屬”設(shè)備游戲規(guī)則下的“從屬”設(shè)備,但今天在AI的需求暴漲的情況下,「NVidia在這一塊的解決方案形態(tài)的定義上有著遠(yuǎn)超Intel的話語(yǔ)權(quán)?!?/p>
PyTorch雖然是基于C++和Python構(gòu)建的深度學(xué)習(xí)框架,但C++和Python語(yǔ)言本身的演進(jìn)也很難對(duì)深度學(xué)習(xí)領(lǐng)域有多強(qiáng)的話語(yǔ)權(quán)。
「當(dāng)然這種話語(yǔ)權(quán)也并不意味著可以為所欲為,需求本身也限定了各個(gè)掌握了話語(yǔ)權(quán)的玩家可以折騰的邊界」。Intel雖然在傳統(tǒng)云、虛擬化、處理器安全、包括PCIe、CXL的演進(jìn)上擁有充分的折騰自由度,但在AI領(lǐng)域基本沒什么號(hào)召力。
同樣,NVidia的折騰一定要能解決目前體系在AI領(lǐng)域的各類瓶頸問題,漸進(jìn)式地講整個(gè)體系逐漸改造成一個(gè)更加適用于AI需求的整體解決方案。今天有很多人說NVidia不只是一家芯片公司,更是一家軟件公司,是一家系統(tǒng)級(jí)解決方案公司,NVidia也正在打造各行各業(yè)的整體解決方案。
這些都是非??陀^的評(píng)價(jià),NVidia事實(shí)上也確實(shí)不斷圍繞GPU產(chǎn)品打造越來(lái)越多行業(yè)的軟件解決方案,而且在很多垂直行業(yè)都做到了老大的地位?!傅@并不意味著整體解決方案就是芯片競(jìng)爭(zhēng)的有效途徑」。
「解決方案式的思維是目前在芯片領(lǐng)域競(jìng)爭(zhēng)最常見的坑」。
實(shí)際上解決方案式的產(chǎn)品模式本身就是已經(jīng)取得生態(tài)統(tǒng)治力的玩家收割各行各業(yè)的手段,「是構(gòu)建了生態(tài)統(tǒng)治力之后的果,而不是他們?nèi)〉酶?jìng)爭(zhēng)力的因」。
今天有無(wú)數(shù)公司把端到端解決方案當(dāng)作取得競(jìng)爭(zhēng)力的方法論,但NVidia駕馭的整體解決方案是上述事實(shí)標(biāo)準(zhǔn)體系,而其他玩家自己從芯片到軟件全棧打造解決方案,并期望通過軟硬件整體解決方案的競(jìng)爭(zhēng)力來(lái)構(gòu)建自己的生態(tài),屬實(shí)搞錯(cuò)了因果。
事實(shí)標(biāo)準(zhǔn)體系實(shí)際上需要極強(qiáng)的親和性,NVidia的CUDA采用C/C++語(yǔ)言擴(kuò)展的形式構(gòu)建,并且整體設(shè)計(jì)對(duì)C/C++的編譯、鏈接、構(gòu)建、調(diào)試等體系具有更好的親和性,例如形式上兼容elf格式的object文件,兼容C/C++的整個(gè)函數(shù)調(diào)用和符號(hào)體系,最大化減少對(duì)用戶項(xiàng)目的侵入性。
這樣在一個(gè)復(fù)雜的C/C++項(xiàng)目中,只有和GPU直接相關(guān)的代碼用nvcc編譯器編譯,其他代碼的編譯以及整個(gè)項(xiàng)目的鏈接和構(gòu)建都原來(lái)用啥還用啥。這種對(duì)C/C++的親和性實(shí)際上對(duì)于切入事實(shí)標(biāo)準(zhǔn)體系是非常重要的。
而今天CUDA已然成為事實(shí)標(biāo)準(zhǔn)體系中的一部分,新的玩家入場(chǎng),就不止要考慮C/C++的親和性,也一樣要考慮對(duì)CUDA的親和性。
當(dāng)然與哪些東西親和取決于要從整個(gè)體系的大大小小生態(tài)位的什么位置切入,NVidia設(shè)計(jì)CUDA時(shí),深度學(xué)習(xí)還沒有起飛,C/C++也是高性能計(jì)算非常主流的平臺(tái),選擇從C/C++切入自然是當(dāng)時(shí)最優(yōu)選擇。
今天C/C++仍然是最優(yōu)選擇之一,不過深度學(xué)習(xí)在應(yīng)用層也帶飛了Python,與Python親和也是今天一種可能的選擇,但在整體設(shè)計(jì)上就需要考慮更多與Python及其周邊生態(tài)的親和性。
像TVM雖然選擇了Python庫(kù)的形式,但整體上采用了Python寫編譯和優(yōu)化流程這種坑爹形式,自然跟Python親和性完全扯不上邊。這里面沒有什么標(biāo)準(zhǔn)答案,成敗全在細(xì)節(jié)之中,需要對(duì)周邊生態(tài)的親和性有極強(qiáng)的感知和理解。
即使像TVM這種純軟件背景團(tuán)隊(duì)的作品甚至TensorFlow這種出自Google這種頂級(jí)軟件公司的作品,也因?yàn)槿狈@方面意識(shí)而在生態(tài)上各種碰壁。
今天有無(wú)數(shù)微架構(gòu)背景的架構(gòu)師把編譯器、軟件框架當(dāng)作萬(wàn)金油,只著眼于最終的業(yè)務(wù),最終做出的產(chǎn)品自然也和生態(tài)親和性相去甚遠(yuǎn)。
這背后的細(xì)節(jié)把控其實(shí)無(wú)論軟件背景還是芯片背景都沒有孰優(yōu)孰劣,能同時(shí)清楚所有邊界上生態(tài)位的設(shè)計(jì)理念才是最重要的。
在今天AI領(lǐng)域的軟件生態(tài)已然包含CUDA、PyTorch等組件構(gòu)建的龐大體系,整個(gè)親和性的設(shè)計(jì)就變得愈發(fā)困難,于是很多公司就走上了端到端整體解決方案式的邪路。
芯片的算子編程語(yǔ)言做不好親和性,就把上面各種可能用到算子編程語(yǔ)言的圖編譯、深度學(xué)習(xí)框架、推理引擎、甚至具體業(yè)務(wù)全都做了,以期望減少算子編程語(yǔ)言親和性的問題。
但同時(shí)帶來(lái)的也有上層這些框架、引擎與周邊生態(tài)的親和性。最后等于是為了解決一個(gè)親和性問題創(chuàng)造了無(wú)數(shù)個(gè)親和性問題,只是在不斷redirect問題。
除了軟件棧之外,其他方面類似的踩坑簡(jiǎn)直不要太常見,芯片搞不好就包成整機(jī),整機(jī)搞不好就包成云。最后邊界越搞越大,周邊與之交互的標(biāo)準(zhǔn)化生態(tài)位越搞越多,親和性問題基本就爆炸到無(wú)法解決了。
最后實(shí)際上是游離于標(biāo)準(zhǔn)化體系之外的獨(dú)立體系。表面看起來(lái)和NVidia一樣在打造整體軟硬件解決方案,但NVidia是駕馭著事實(shí)標(biāo)準(zhǔn)體系,而你如果只是駕馭著一套游離于標(biāo)準(zhǔn)化體系之外的私有解決方案,和事實(shí)標(biāo)準(zhǔn)體系競(jìng)爭(zhēng)無(wú)疑是蚍蜉撼樹。
當(dāng)然了,凡事都有例外,這種游離于標(biāo)準(zhǔn)化體系之外的解決方案在某些特定的業(yè)務(wù)下也是一種捷徑。極端一點(diǎn)的比如像礦機(jī),因?yàn)樾枨笞銐騿我?,而且市?chǎng)規(guī)模巨大,這時(shí)候拋開現(xiàn)有體系整個(gè)做一套獨(dú)立的體系倒也是可以分一杯羹。
但無(wú)論如何,NVidia駕馭著事實(shí)標(biāo)準(zhǔn)體系競(jìng)爭(zhēng)力也是非常強(qiáng)悍的,并且也在礦潮時(shí)狠狠大賺了一筆。對(duì)于礦老板而言,礦難了礦卡也就是電子垃圾了,NVidia顯卡還能轉(zhuǎn)手翻新一下賣給游戲佬和AI市場(chǎng)。
其他市場(chǎng),比如安防攝像頭、車載自動(dòng)駕駛芯片等等,相比礦機(jī)市場(chǎng)肯定差不少,但好在需求還沒分化得特別嚴(yán)重,也有脫離體系分一杯羹的空間。
到云端數(shù)據(jù)中心就別想了,從計(jì)算機(jī)發(fā)明至今多少巨頭共建的體系,業(yè)務(wù)需求變化極快。「不過這種特定市場(chǎng)分一杯羹雖然有捷徑,也同樣沒法建立真正意義上的生態(tài)統(tǒng)治力?!?/p>
今天你可以走捷徑拿到一定市場(chǎng),明天別人也可以走捷徑把你的市場(chǎng)拿走。今天客戶可以克服生態(tài)的慣性付出遷移成本遷到你的自建體系上,明天也一樣可以遷到其他自建體系或者標(biāo)準(zhǔn)化體系上,走捷徑實(shí)際上也意味著和生態(tài)帶來(lái)的統(tǒng)治力和護(hù)城河無(wú)緣。
「解決方案層面真實(shí)有效的競(jìng)爭(zhēng)是爭(zhēng)奪標(biāo)準(zhǔn)化體系內(nèi)的話語(yǔ)權(quán)」。
這套體系里的每一個(gè)手握方向盤、掌控著某一塊生態(tài)位的玩家都借助自己的生態(tài)位根據(jù)地,試圖按照符合自己利益的方式漸進(jìn)式改造整個(gè)標(biāo)準(zhǔn)化體系,「同時(shí)給競(jìng)爭(zhēng)對(duì)手使絆子?!?/p>
「比如Intel過去卡著PCIe帶寬的升級(jí)速度,讓NVidia的GPU始終存在各種瓶頸」,包括今天Intel推出CXL作出一定的讓利,希望團(tuán)結(jié)更多玩家一起打NVidia。
但這些都是已經(jīng)成功上車,手握方向盤的玩家之間的事情,沒有上車的玩家連參與這個(gè)層面競(jìng)爭(zhēng)的資格都沒有,打造自建的整體解決方案只是營(yíng)造了一種自己在車上的虛幻感。
其實(shí)NVidia本身也是生態(tài)競(jìng)爭(zhēng)的極佳案例,但學(xué)習(xí)NVidia不能光看人家今天大口吃肉就有樣學(xué)樣,更重要的反而是過去30年里,NVidia怎么從車下的nobody成功上車,并且拿到了體系里面一個(gè)足夠大生態(tài)位的方向盤。
這個(gè)尺度應(yīng)該拉長(zhǎng)到30年這個(gè)尺度去看NVidia如何在生態(tài)競(jìng)爭(zhēng)的殘酷邏輯里實(shí)現(xiàn)了上車掌握方向盤的壯舉。生態(tài)競(jìng)爭(zhēng)的邏輯無(wú)比殘酷,事實(shí)標(biāo)準(zhǔn)往往會(huì)給大家一種錯(cuò)覺,就是計(jì)算機(jī)系統(tǒng)似乎就應(yīng)該是這樣的,過于自然而然了,從而使很多人低估了生態(tài)競(jìng)爭(zhēng)的殘酷性,認(rèn)為老黃只是有超出常人的直覺和堅(jiān)持賭對(duì)了賽道。
「實(shí)際上建立賽道本身就是壯舉,只不過建立成功了,讓人覺得似乎本來(lái)就應(yīng)該存在這樣的賽道」。放到今天,我們會(huì)覺得計(jì)算機(jī)系統(tǒng)里自然而然就需要一塊獨(dú)立顯卡,因?yàn)镃PU的集成顯卡性能太差了,只能滿足中低端需求。但放到NVidia剛成立的那個(gè)年代,這件事情可不這么顯然。
NVidia當(dāng)時(shí)作為一個(gè)nobody,實(shí)際上需要競(jìng)爭(zhēng)的并不是已經(jīng)存在的幾百家顯卡公司,而是當(dāng)時(shí)整個(gè)標(biāo)準(zhǔn)化體系的王牌駕駛員Intel。
Intel作為車上的駕駛員,掌握著制訂游戲規(guī)則的權(quán)力,而Intel制訂的游戲規(guī)則就是它自己的產(chǎn)品CPU作為“中央”處理器,「通過PCIe擴(kuò)展的形式,讓圍繞CPU的整個(gè)計(jì)算機(jī)系統(tǒng)變得非常具有可擴(kuò)展性,可以圍繞CPU打造各行各業(yè)的解決方案?!?/p>
而這套游戲規(guī)則的殘酷之處在于,一旦一種PCIe設(shè)備的需求變得穩(wěn)定,Intel就在CPU里增加一些專用指令,于是這種PCIe設(shè)備就從歷史長(zhǎng)河中抹去了,這種方式消失的各類PCIe擴(kuò)展卡不計(jì)其數(shù),顯卡在這套游戲規(guī)則下也并不例外。
生態(tài)競(jìng)爭(zhēng)的殘酷實(shí)際上是運(yùn)動(dòng)員和裁判的競(jìng)爭(zhēng)。任何一種新興需求都有潛力催生一些新的生態(tài)位,但游戲規(guī)則的定制者會(huì)建立一套讓自己立于不敗之地的規(guī)則。
生態(tài)競(jìng)爭(zhēng)需要臺(tái)下的nobody構(gòu)造一個(gè)在這樣一個(gè)體系內(nèi)打造并守住獨(dú)立生態(tài)位的戰(zhàn)略。這個(gè)說實(shí)話,沒有可復(fù)制的路徑,不同時(shí)間節(jié)點(diǎn)下標(biāo)準(zhǔn)化體系的形態(tài)是完全不一致的,不同的需求和生態(tài)位對(duì)生態(tài)親和性的要求,包括可以借力的點(diǎn)也是完全不一致的。
如果沒有老黃對(duì)于這場(chǎng)競(jìng)爭(zhēng)深刻的洞察力,以及相應(yīng)的戰(zhàn)略,顯卡也一樣會(huì)消失在歷史的長(zhǎng)河中。老黃當(dāng)時(shí)意識(shí)到這個(gè)問題后,「提出了Intel的摩爾定律是十八個(gè)月翻一番,NVidia要做到六個(gè)月翻一番。用更快的性能提升曲線快速拉高需求,讓Intel的集顯變成落后的產(chǎn)品」。于是NVidia把顯卡越做越大,功耗越做越高,性能拉升的幅度也遠(yuǎn)超Intel,從而讓游戲畫質(zhì)提升飛快,導(dǎo)致Intel的集顯疲于去追NVidia的節(jié)奏,面積和功耗各方面都承受巨大的壓力。
「最終,獨(dú)立顯卡在Intel的游戲規(guī)則下成為了事實(shí)標(biāo)準(zhǔn),NVidia也卡住了游戲卡這個(gè)不大不小的生態(tài)位」。
但老黃這套競(jìng)爭(zhēng)邏輯,其實(shí)沒有直接借鑒的可能性,今天顯卡的生態(tài)位早成為事實(shí)標(biāo)準(zhǔn)中的一環(huán)。我們即使學(xué)會(huì)了怎么在Intel的規(guī)則下打Intel也沒有什么意義了,因?yàn)闀r(shí)過境遷,今天制訂規(guī)則的變成了NVidia,「實(shí)際上每個(gè)屠龍少年都會(huì)成為新的惡龍,他們的成功也同時(shí)堵死了對(duì)應(yīng)生態(tài)位的后來(lái)者。」
今天要爭(zhēng)取的是AI這個(gè)需求。老黃這套打法背后的思想,才是真正值得借鑒的,但如何因地制宜在現(xiàn)如今的情形下用好,也是極具挑戰(zhàn)性的。AI芯片這個(gè)形態(tài)不是既成事實(shí),而是需要靠AI芯片這個(gè)賽道的“老黃”去爭(zhēng)取這個(gè)賽道的獨(dú)立性的,否則NVidia的GPGPU就會(huì)把AI芯片這個(gè)賽道打成曇花一現(xiàn)的形態(tài),而GPGPU會(huì)生態(tài)位也會(huì)繼續(xù)擴(kuò)大到AI的整個(gè)領(lǐng)域。
過去十年,幾乎沒有人把NVidia的GPGPU襯托成AI需求下的落后產(chǎn)品,大家甚至在做產(chǎn)品規(guī)劃的時(shí)候,也是對(duì)標(biāo)著自己產(chǎn)品上市的時(shí)間點(diǎn),去預(yù)估NVidia的產(chǎn)品規(guī)格。
本質(zhì)上是沿著和老黃一樣的曲線去走,自然也不可能把老黃的產(chǎn)品搞成落后的產(chǎn)品,也更不可能爭(zhēng)取到獨(dú)立的生態(tài)位了。實(shí)際上大家產(chǎn)品迭代的曲線甚至比不過NVidia,在16年那個(gè)時(shí)間節(jié)點(diǎn)宣傳的都是比NVidia快十倍,到今天這個(gè)時(shí)間點(diǎn)宣傳的也僅僅是對(duì)標(biāo)了。
像TPU這種產(chǎn)品,其性能增長(zhǎng)曲線甚至不如NVidia。這種戰(zhàn)略意識(shí)的缺失本身就是致命的。誠(chéng)然,讓芯片性能提升速度超過NVidia也極具挑戰(zhàn)性,這不僅僅是某一代產(chǎn)品比它高個(gè)多少百分比的性能,也不是每一代都比NVidia高個(gè)多少百分比的性能。
而是NVidia基本2年一代產(chǎn)品,性能提升3~5倍,挑戰(zhàn)者如果能每代相比自己上一代提升10~20倍,和NVidia的性能優(yōu)勢(shì)越拉越大。這才是NVidia當(dāng)年挑戰(zhàn)Intel時(shí)所作的壯舉,這對(duì)于芯片設(shè)計(jì)本身也極具挑戰(zhàn),但當(dāng)年NVidia也是在摩爾定律演進(jìn)的半導(dǎo)體工藝上走出了黃氏定律增長(zhǎng)的GPU性能。
「生態(tài)競(jìng)爭(zhēng)最難的地方也在于沒有可復(fù)制的路徑。每一個(gè)成功從運(yùn)動(dòng)員翻身成為裁判的玩家,本質(zhì)上也都成功建立了新的游戲規(guī)則,堵死了后來(lái)者競(jìng)爭(zhēng)這個(gè)新生態(tài)位的機(jī)會(huì)?!?/p>
換句話講,每一個(gè)翻身的案例都是在特定歷史時(shí)期,特定需求下,設(shè)計(jì)一套超凡的戰(zhàn)略,并且配合超凡的戰(zhàn)術(shù)執(zhí)行才完成的壯舉。這方面的微操在今天實(shí)際上沒有任何現(xiàn)實(shí)意義。而老黃不僅完成了這樣的壯舉,還完成了兩次。
NVidia成立的最初十年,成功保住了獨(dú)立顯卡這個(gè)不大不小的生態(tài)位,也成功上市。而Intel雖然沒能按死獨(dú)立顯卡的生態(tài)位,但倒也不太動(dòng)搖Intel的王牌駕駛員地位,隨著互聯(lián)網(wǎng)的興起,Intel在數(shù)據(jù)中心大把大把撈錢。
要和Intel在數(shù)據(jù)中心領(lǐng)域競(jìng)爭(zhēng),最直接的辦法似乎是做一款更有競(jìng)爭(zhēng)力的CPU,但這件事AMD和ARM做了好多年,一直都翻不起巨大的浪花。
「生態(tài)競(jìng)爭(zhēng)最有效的路線是生態(tài)位的競(jìng)爭(zhēng)」。
實(shí)際上同一個(gè)生態(tài)位內(nèi)的競(jìng)爭(zhēng)只存在兩種可能性:一種是生態(tài)位建立的初期,新興的需求催生了新的生態(tài)位,但這個(gè)生態(tài)位的贏家還沒出現(xiàn)時(shí),無(wú)數(shù)玩家會(huì)下場(chǎng)去競(jìng)爭(zhēng)這個(gè)生態(tài)位。
但最終往往會(huì)決勝出一兩家,一旦穩(wěn)定下來(lái)之后基本是沒有什么機(jī)會(huì)的。
另外一種就是神仙打架了,整個(gè)標(biāo)準(zhǔn)化體系內(nèi)有無(wú)數(shù)大大小小的生態(tài)位,每個(gè)生態(tài)位也會(huì)和周邊的生態(tài)位有千絲萬(wàn)縷的聯(lián)系。
一個(gè)擁有更大生態(tài)位的裁判可以借著生態(tài)位的影響力去侵入其他稍弱一些的生態(tài)位,擴(kuò)張自己的地盤,比如今天ARM聯(lián)合蘋果和NVidia去侵蝕x86的生態(tài)位。但這兩條路實(shí)際上都不適合今天我們這些nobody。
實(shí)際上后面這種生態(tài)位都不適合以小博大,NVidia上市之后所掌握的獨(dú)立顯卡的生態(tài)位相比Intel的x86生態(tài)位還是小到可以忽略不計(jì)的。
想以小博大根本沒有可能性,甚至到16年前后NVidia已經(jīng)如日中天時(shí),想把NVLink擴(kuò)展到CPU上替換PCIe都沒能成功,只留下IBM的power處理器在風(fēng)中凌亂。
當(dāng)然,NVidia今天做ARM CPU也是持續(xù)不斷想侵蝕Intel最后的陣地,但這個(gè)過程以今天NVidia的話語(yǔ)權(quán)仍然不是一件容易的事情,放到當(dāng)年只有獨(dú)立顯卡的生態(tài)位時(shí)更是不可能。
而nobody做同一個(gè)生態(tài)位內(nèi)的競(jìng)爭(zhēng)就更是無(wú)稽之談了,但今天仍然有無(wú)數(shù)玩家前赴后繼要和已有的生態(tài)位上做差異化競(jìng)爭(zhēng)。其實(shí)NVidia的第二段壯舉向我們展示了另外一種更加有效的生態(tài)競(jìng)爭(zhēng)方式。
NVidia并不是靠差異化的CPU去和Intel競(jìng)爭(zhēng)的,「而是靠把GPGPU的生態(tài)位在數(shù)據(jù)中心的價(jià)值占比越做越大實(shí)現(xiàn)的。「這個(gè)過程實(shí)際上是」不同生態(tài)位隨著需求變化的此消彼長(zhǎng)」,而「不是同一個(gè)生態(tài)位內(nèi)部暴烈地替換」。
這種此消彼長(zhǎng)就意味著,在整個(gè)更替的全過程,兩種生態(tài)是高度親和共存的,而且在很長(zhǎng)一段時(shí)間內(nèi),原有生態(tài)位的體量會(huì)大得多。所以即使今天一臺(tái)服務(wù)器內(nèi)90%以上的價(jià)值是NVidia的產(chǎn)品,
「但服務(wù)器的常見形態(tài)仍然是2個(gè)“中央”處理器搭配8個(gè)“從屬設(shè)備”GPU」。這個(gè)形態(tài)實(shí)際上還是符合Intel的游戲規(guī)則,只不過“從屬設(shè)備”這邊的生態(tài)位已經(jīng)遠(yuǎn)大于“中央”處理器的生態(tài)位了,大家買服務(wù)器更多是為了買這些“從屬設(shè)備”,而且也盡量追求用更少的CPU來(lái)支持更多的“從屬設(shè)備”。
實(shí)際上今天這種2CPU+8GPU這種看起來(lái)自然而然的形態(tài)也不是天然就該這樣,而是老黃整個(gè)布局和執(zhí)行的結(jié)果,Intel在這個(gè)過程處處給老黃挖坑,但奈何老黃對(duì)生態(tài)競(jìng)爭(zhēng)邏輯的深刻理解以及十幾年的布局。
這個(gè)過程實(shí)際上要解決三個(gè)層級(jí)的問題:第一個(gè)層級(jí)是芯片本身要足夠好用,開發(fā)效率要足夠高。實(shí)際上今天很多AI芯片的開發(fā)效率是遠(yuǎn)低于NVidia的CUDA+GPGPU的。這個(gè)層級(jí)也是無(wú)數(shù)AI芯片玩家至今沒能邁過去的坎。
第二個(gè)層級(jí)是更進(jìn)一步的要求,芯片不是一代產(chǎn)品,而是一個(gè)延續(xù)十幾年,需要有持續(xù)生命力的體系。
硬件層面能有延續(xù)數(shù)十年的持續(xù)性能提升空間,而且這個(gè)提升的速度要比競(jìng)爭(zhēng)對(duì)手的更快,同時(shí)軟件層面也不光是開發(fā)效率要高,在芯片持續(xù)演進(jìn)的過程中,這種開發(fā)效率、兼容性要穩(wěn)定平滑地延續(xù)幾十代產(chǎn)品。
第三個(gè)層級(jí)就不光是純技術(shù)問題了,畢竟生態(tài)是具有巨大慣性的,一個(gè)再好的方案如果游離于目前的主流形態(tài)太遠(yuǎn),也很難克服生態(tài)巨大的慣性。
同時(shí),還需要足夠好的需求來(lái)催化,因?yàn)樯鷳B(tài)位是由需求產(chǎn)生的。
今天的AI芯片大多連第一個(gè)層級(jí)都還沒邁過去,老黃也用好幾年時(shí)間完成了GPU到GPGPU的改造,同時(shí)也建立了CUDA相關(guān)的體系,邁過了前兩個(gè)臺(tái)階,同時(shí)也為第三個(gè)階段的親和性做了極致的設(shè)計(jì),就像我們最開始講的,一方面保持對(duì)C/C++這套體系的親和性,另一方面減少對(duì)不相關(guān)部分的侵入性。
但第三個(gè)階段不光是技術(shù)問題,老黃的這套體系也需要需求的東風(fēng)吹起來(lái),在那個(gè)階段,老黃也很難預(yù)料什么樣的需求會(huì)爆發(fā),只能頂著股價(jià)下滑的壓力等,同時(shí)投資各種潛在的需求。
終于,等來(lái)了2012年AlexNet引爆的深度學(xué)習(xí)。整個(gè)這個(gè)階段,老黃給我們演示了,和Intel的CPU競(jìng)爭(zhēng)的最佳方式不是做另一種形態(tài)的CPU,而是在Intel的游戲規(guī)則下做大PCIe設(shè)備在加速計(jì)算領(lǐng)域的生態(tài)位。
讓這個(gè)生態(tài)位從CPU+PCIe擴(kuò)展的體系下一個(gè)小的生態(tài)位逐漸增長(zhǎng)為一個(gè)足夠大的生態(tài)位,甚至超過CPU的生態(tài)位,進(jìn)而吞噬Intel在數(shù)據(jù)中心的市場(chǎng)份額,甚至到今天可以拉著ARM試圖把Intel從數(shù)據(jù)中心的AI解決方案中抹掉。
其實(shí)這個(gè)事情對(duì)我們今天去搞AI芯片的生態(tài)是有很大借鑒意義的,當(dāng)然這種借鑒不是戰(zhàn)術(shù)層面的微操,生態(tài)競(jìng)爭(zhēng)的戰(zhàn)術(shù)戰(zhàn)略都很難復(fù)制,畢竟今天要應(yīng)對(duì)的是NVidia以及CUDA的軟件體系。
但從更宏觀的層面來(lái)講,和NVidia CUDA競(jìng)爭(zhēng)的不一定是AMD ROCm,這個(gè)本質(zhì)上還是同一個(gè)生態(tài)位內(nèi)部的競(jìng)爭(zhēng),AMD錯(cuò)過了2012年那個(gè)前后的時(shí)間窗口后其實(shí)就沒太多直接從這個(gè)生態(tài)內(nèi)部競(jìng)爭(zhēng)的機(jī)會(huì)了。
實(shí)際上,CUDA之上還有深度學(xué)習(xí)框架的生態(tài)位,當(dāng)然深度學(xué)習(xí)框架在12年前后開始形成需求,到16年前后也逐漸開始收斂,到今天事實(shí)上已經(jīng)被PyTorch把持,今天這個(gè)時(shí)間點(diǎn)繼續(xù)在深度學(xué)習(xí)框架上卷機(jī)會(huì)也不多。
深度學(xué)習(xí)框架同樣不是重點(diǎn),深度學(xué)習(xí)框架之上仍然有更多生態(tài)位機(jī)會(huì)。這里面任何一層抓住了機(jī)會(huì),如果在未來(lái)這一層的重要性變得更高了,其他層的重要性相對(duì)下滑,這里面實(shí)際上是存在非常多機(jī)會(huì)的。
不過挑戰(zhàn)也在魔鬼般的細(xì)節(jié)里,例如今天的深度學(xué)習(xí)框架實(shí)際上更多解決的是計(jì)算圖的表示和在不同設(shè)備上計(jì)算的問題,方便算法用戶能夠自由探索模型結(jié)構(gòu)。對(duì)于算子編寫這一層并沒有真正意義上隔離,只是通過內(nèi)置上千個(gè)算子的方式滿足了高頻需求。
因此PyTorch這一層實(shí)際上沒有辦法真正意義上隔離掉CUDA的生態(tài)位,類似TensorFlow希望隔離GPU和TPU的差異這種嘗試就走得異常痛苦。當(dāng)然了,Google的TensorFlow還是在深度學(xué)習(xí)框架領(lǐng)域占據(jù)過很長(zhǎng)一段時(shí)間上風(fēng)的,在這個(gè)生態(tài)位是,Google至少是有方向盤的,其他沒有方向盤的肯定就別想通過這種方式借力了。
今天要看生態(tài)的機(jī)會(huì),從軟件角度也更應(yīng)當(dāng)著眼于PyTorch之上的生態(tài)位機(jī)會(huì),來(lái)構(gòu)思一整套打法,比如今天的大模型實(shí)際上也催生了PyTorch之上的大模型訓(xùn)練/推理框架的生態(tài)位機(jī)會(huì),而且目前實(shí)際上正處于生態(tài)位建設(shè)的早期,大量玩家在這個(gè)領(lǐng)域造輪子爭(zhēng)奪這一塊的生態(tài)位。
「當(dāng)然了,這種軟件生態(tài)位的機(jī)會(huì)怎么反哺芯片生態(tài)位,其實(shí)老黃在12年之后的整個(gè)動(dòng)作也可以體會(huì)到NVidia對(duì)這一塊的把控,機(jī)會(huì)來(lái)了怎么把控好也非常關(guān)鍵」。
生態(tài)的卡位靠的是開發(fā)者而不是業(yè)務(wù)。**生態(tài)卡位最終目的是要讓業(yè)務(wù)“不得不用”,但如果這個(gè)組件時(shí)直接服務(wù)最終業(yè)務(wù)的,**那只能因?yàn)閱渭兊摹昂糜谩倍?,但任何一個(gè)產(chǎn)品都有不好用的地方,「很難真正意義上長(zhǎng)期綁定,達(dá)不到“不得不用”的地步?!?/p>
實(shí)際上不得不用需要兩層遞進(jìn)關(guān)系,也就是說在一個(gè)組件之上有大量“好用”的二次開發(fā)的組件,用戶因?yàn)楹芏喽伍_發(fā)的組件“好用”,進(jìn)而才能“不得不用”這些組件依賴的組件。
這個(gè)層級(jí)遞進(jìn)越深,「這種“不得不用”會(huì)越來(lái)越強(qiáng)烈」。我們看NVIDIA第三個(gè)階段,借著深度學(xué)習(xí)的熱潮是怎么布局自己的生態(tài)位的。
他并不去搶深度學(xué)習(xí)框架的生態(tài)位,而是給各個(gè)造深度學(xué)習(xí)框架的開發(fā)者提供無(wú)微不至的服務(wù),包括異常健全的文檔,甚至連debug API這種估計(jì)很少有開發(fā)者會(huì)關(guān)注的文檔都寫得非常詳細(xì),也包括給很多開發(fā)者送顯卡。
當(dāng)然最關(guān)鍵的,還是產(chǎn)品在這個(gè)生態(tài)位需求下的絕對(duì)競(jìng)爭(zhēng)力。換句話講,寫深度學(xué)習(xí)框架的核心需求是讓海量算法用戶能簡(jiǎn)單獲得極高的算力跑深度學(xué)習(xí)模型,AlexNet也證明了GPU比CPU快太多,因此對(duì)于做深度學(xué)習(xí)框架的開發(fā)者,支持GPU的框架顯然也比只支持CPU的框架更具有競(jìng)爭(zhēng)力,這就給了上面無(wú)數(shù)開發(fā)者最基礎(chǔ)的動(dòng)力去支持GPU,再加上事無(wú)巨細(xì)的文檔和無(wú)微不至圍繞開發(fā)者的一整套打法,自然海量開發(fā)者涌入CUDA體系。
在CUDA之上寫了無(wú)數(shù)的深度學(xué)習(xí)框架去競(jìng)爭(zhēng)。上面開發(fā)者開發(fā)了不同特點(diǎn)的框架,每個(gè)最終用戶都會(huì)其中一些框架的“好用”而加入某一陣營(yíng),「但也因?yàn)樗锌蚣芑径贾С諧UDA和NVidia的GPU,從而使得用戶進(jìn)入了“不得不用“CUDA和NVidia的GPU的狀態(tài)?!?/p>
「這實(shí)際上做所有解決方案都繞不開的子集的思路」,而大多數(shù)人做項(xiàng)目「都不自覺會(huì)陷入做大而全的超集的思路」。
以NVidia的軟件開發(fā)能力,在那個(gè)階段去研發(fā)一個(gè)深度學(xué)習(xí)框架和TensorFlow、PyTorch包括早期的Caffe、theano競(jìng)爭(zhēng)是完全沒問題的,甚至可以借助軟硬件協(xié)同的能力比各家的框架做得更有競(jìng)爭(zhēng)力,甚至借此干掉其他框架。
但NVidia實(shí)際上沒有這么做,「NVidia是一種典型的做子集的思路,做一個(gè)所有人都繞不開的子集」。
與之相對(duì)的是做一個(gè)大而全的超集的思路,這種思路是今天很多項(xiàng)目不自覺就會(huì)落入的思路,所有競(jìng)爭(zhēng)對(duì)手有的所有好的特性我們也都支持,我們?cè)僮鲆恍┳约旱奶匦裕@樣是一個(gè)功能比所有人更全的超集。
實(shí)際上NVidia在下面看上面所有人卷超集,各個(gè)超集都把自己的CUDA納入其中,間接促成了自己成為所有人繞不開的子集的目的。而成為很多解決方案的子集,無(wú)論每個(gè)方案有多少用戶覺得好用,每個(gè)解決方案都能給NVidia帶來(lái)足夠多“不得不用”CUDA的用戶。
而每個(gè)深度學(xué)習(xí)框架自己僅僅靠“好用”捆綁用戶,那自然也很容易因?yàn)椤安缓糜谩倍挥脩魭仐墶?/p>
這個(gè)其實(shí)是一個(gè)極具生態(tài)競(jìng)爭(zhēng)智慧的打法,今天很多人說NVidia是一家軟件公司,有大量軟件的人,于是也投海量的軟件工程師去打造產(chǎn)品競(jìng)爭(zhēng)力,「最后都落入了大而全的超集思路,實(shí)際上跟NVidia這種做子集的思路完全南轅北轍。」
大家想想以NVidia的軟件能力,真的要去搶各種軟件層面的生態(tài)位,雖說不一定能干掉其他目前主流的產(chǎn)品,但至少分一杯羹完全不在話下。
NVidia真正下場(chǎng)干的軟件,要么開源讓大家隨便抄,把自己的產(chǎn)品繼續(xù)抄成所有人的子集,要么是覺得整個(gè)業(yè)界實(shí)在沒在某個(gè)場(chǎng)景下用好GPU,不得不下場(chǎng)帶一波節(jié)奏。
「解決方案式的打法是最后的收割階段」。
實(shí)際上NVidia這幾年才算真正開啟了收割模式,如果你關(guān)注老黃這幾年的演進(jìn),他會(huì)更多提到“重構(gòu)計(jì)算機(jī)工作方式”,實(shí)際上這是向Intel發(fā)起沖鋒了,今天的整個(gè)計(jì)算機(jī)系統(tǒng)實(shí)際上是圍繞CPU定義的,圍繞CPU定義了指令集、軟件、以及繁榮的軟硬件生態(tài),老黃今天終于拿到了整個(gè)生態(tài)位里面最大的話語(yǔ)權(quán)。
老黃借著三十年臥薪嘗膽打下來(lái)的生態(tài)地位,開始真正對(duì)這個(gè)事實(shí)標(biāo)準(zhǔn)的體系進(jìn)行重塑。這種重塑同樣不是destructive的,無(wú)論有多大的話語(yǔ)權(quán),生態(tài)的慣性仍然需要遵從。
老黃更多把AI作為切入點(diǎn),要在今天的計(jì)算機(jī)系統(tǒng)上支撐一個(gè)圍繞AI的全新計(jì)算機(jī)系統(tǒng),那么在AI領(lǐng)域擁有最大話語(yǔ)權(quán)的老黃自然也就可以將底層的經(jīng)典計(jì)算機(jī)系統(tǒng)塑造成一個(gè)更適用于支撐上層新興的AI計(jì)算機(jī)系統(tǒng)的底座。這種重塑是王者的特權(quán)。
回到我們開頭說的,學(xué)習(xí)NVidia不能光看老黃這幾年吃肉的模樣有樣學(xué)樣,這屬于生態(tài)競(jìng)爭(zhēng)最基本的邏輯都沒搞清楚。我們更需要關(guān)注NVidia這三十年的臥薪嘗膽,以及整套戰(zhàn)略思維,反過來(lái),去考慮今天在NVidia游戲規(guī)則下的真正出路,當(dāng)然這也是今天最難的問題了。
其實(shí)生態(tài)這個(gè)事情就是這樣,我們今天站在如此自然而然的計(jì)算機(jī)系統(tǒng)看過去,似乎到了那個(gè)時(shí)間點(diǎn)自然而然有這樣那樣的一些機(jī)會(huì)被今天的王者抓住了,而今天似乎缺乏這樣那樣的機(jī)會(huì)。
殊不知,今天的王者正是當(dāng)時(shí)那種絕境種塑造了這樣那樣的機(jī)會(huì),把整個(gè)計(jì)算機(jī)系統(tǒng)塑造成了這種形態(tài),也只有這種今天看起來(lái)足夠自然而然的形態(tài)才能順應(yīng)生態(tài)的邏輯取得競(jìng)爭(zhēng)的勝利。
萬(wàn)字長(zhǎng)文看到這里也是不容易,說了這么多競(jìng)爭(zhēng)邏輯,今天該怎么做?
今天圍繞NVidia建立的標(biāo)準(zhǔn)化體系看起來(lái)似乎堅(jiān)不可摧,CUDA牢牢卡住了算子編程生態(tài)位,甚至PyTorch都沒法屏蔽,而今天海量軟件又都建立在這套體系之上。
但需求一直都在變,這種變化實(shí)際上也造成了很多生態(tài)位的此消彼長(zhǎng),生態(tài)位的萎縮并不是那么立竿見影的,CPU的生態(tài)位已經(jīng)萎縮到今天這個(gè)當(dāng)量也絲毫不會(huì)讓大家覺得x86似乎沒影響力了,其實(shí)仍然是強(qiáng)大到基本不可動(dòng)搖。同樣,這些今天看起來(lái)牢不可破的生態(tài)位實(shí)際上也在悄悄發(fā)生很多變化。
CUDA的生態(tài)位最大的時(shí)候?qū)嶋H上是2012~2018年,無(wú)數(shù)的深度學(xué)習(xí)框架在CUDA的基礎(chǔ)上爭(zhēng)奪用戶,上面這些通過自身的“好用”幫助CUDA實(shí)現(xiàn)“不得不用”的東西越多越碎片,CUDA自然就越穩(wěn)固。
而深度學(xué)習(xí)框架收斂到TensorFlow和PyTorch之后,實(shí)際上CUDA的生態(tài)位是一定程度下降的,但問題在于深度學(xué)習(xí)框架并沒有屏蔽算子編程,只不過內(nèi)置了一個(gè)子集消除絕大多數(shù)算子編程的需求。
所以實(shí)際上CUDA的需求實(shí)際上是穿透了深度學(xué)習(xí)框架捅上去了,今天仍然有無(wú)數(shù)PyTorch之上的領(lǐng)域框架寫了大量PyTorch算子集之外的CUDA算子,所以實(shí)際上CUDA雖然削弱了一些,但還是極具生命力。這實(shí)際上也是很多希望通過PyTorch這一層解決AI芯片軟件生態(tài)問題屢屢碰壁的主要原因。
而深度學(xué)習(xí)框架最輝煌的階段是在2023年以前,深度學(xué)習(xí)框架是提供了一個(gè)構(gòu)建不同深度學(xué)習(xí)模型結(jié)構(gòu)的平臺(tái),在模型結(jié)構(gòu)探索最活躍的年代自然也是深度學(xué)習(xí)框架最高光的時(shí)刻。
而隨著Transformer is all you need被大模型進(jìn)一步鎖定,模型結(jié)構(gòu)的探索活躍度實(shí)際上是降低的,深度學(xué)習(xí)框架的生態(tài)位重要性實(shí)際上開始逐步降低。今天最活躍的是大模型的框架,大量開發(fā)者在PyTorch之上瘋狂造輪子,從各個(gè)角度解決大模型訓(xùn)練、推理的各種問題。
「這里面最核心的實(shí)際上是顯存和帶寬的利用,是大模型不同數(shù)據(jù)如何在這有限的顯存和帶寬之上調(diào)度,并合理地穿插相應(yīng)的計(jì)算」。
這一塊實(shí)際上是一個(gè)全新生態(tài)位的形成階段,對(duì)于大模型infra開發(fā)者而言,是生態(tài)卡位的時(shí)間窗口,對(duì)于芯片廠商而言,也是學(xué)習(xí)CUDA卡位的邏輯最好的時(shí)候,當(dāng)然現(xiàn)在大模型infra層面,需要肯定不是算子編程,學(xué)習(xí)CUDA卡位的微操肯定死路一條,各種邊界條件完全不同,「沒有可復(fù)制的路徑?!?/p>
怎么用好這樣的機(jī)會(huì),全看對(duì)上面生態(tài)邏輯的理解和細(xì)節(jié)的把控了。
除了軟件生態(tài)上的契機(jī),NVidia這么多年構(gòu)建的護(hù)城河實(shí)際上也在削弱,我在之前的一篇文章里也講了大模型對(duì)NVidia的巨大沖擊,NVidia構(gòu)建的護(hù)城河是建立在對(duì)算力的巨大需求上,利用CUDA在硬件抽象和軟件接口位置的精準(zhǔn)卡位,卡住了一波又一波DSA芯片沖擊算力高地的企圖。
實(shí)際上對(duì)NVidia而言最危險(xiǎn)的并不是DSA芯片的算力沖得比它高,反正他有生態(tài)位話語(yǔ)權(quán),最危險(xiǎn)的是芯片最大的需求不再是算力了。
那么此時(shí)無(wú)論是圍繞算力建立起來(lái)的CUDA護(hù)城河還是在DSA這種在算力這個(gè)賽道的競(jìng)爭(zhēng)者都失去了最重要的東西——需求。
NVidia今年實(shí)際上過去延續(xù)了十幾年的產(chǎn)品路線和節(jié)奏被徹底打亂了,這個(gè)節(jié)奏在過去一波又一波AI芯片的攻勢(shì)下從未動(dòng)搖過,但今年AMD的MI300X都足以引起老黃巨大的恐慌。實(shí)際上并不是AMD有多強(qiáng),而是NVidia最大的危機(jī)來(lái)了。
今年早些時(shí)候,我也因?yàn)檫@樣的原因唱衰了DSA,DSA這種為堆算力而生,帶著一系列軟件問題的形態(tài),如果在算力需求收縮的背景下,就只剩下軟件上的巨大問題了。當(dāng)然對(duì)于生態(tài)競(jìng)爭(zhēng)來(lái)講,這種混亂和行業(yè)洗牌實(shí)際上是最大的生態(tài)競(jìng)爭(zhēng)機(jī)遇。
「NVidia另一個(gè)巨大的潛在隱患在于整套游戲規(guī)則沒有給其他人空間」。
相比上一代裁判Intel而言,實(shí)際上Intel設(shè)計(jì)的游戲規(guī)則是分配了很多蛋糕給行業(yè)內(nèi)其他賽道的,而NVidia這種幾乎吃獨(dú)食的方式,也給它在各個(gè)領(lǐng)域樹立了無(wú)數(shù)競(jìng)爭(zhēng)對(duì)手。
這種模式在生態(tài)穩(wěn)定的階段可以拿到超額的利潤(rùn),同樣在危局之下同樣也面臨全行業(yè)甚至客戶的敵對(duì)。這種特點(diǎn)減少了像NVidia當(dāng)年在Intel劃出的蛋糕下長(zhǎng)出一個(gè)獨(dú)立王國(guó)的空間,但也帶來(lái)了聯(lián)合全行業(yè)上下游構(gòu)成松散的反NVidia聯(lián)盟的空間。
今天NVidia不僅在GPU領(lǐng)域面臨競(jìng)爭(zhēng),在網(wǎng)絡(luò)層面也同樣面臨諸多競(jìng)爭(zhēng)。今天的挑戰(zhàn)者在這樣的游戲規(guī)則下有更多的勢(shì)能去聯(lián)合其他生態(tài)位的競(jìng)爭(zhēng)者構(gòu)造一套白盒標(biāo)準(zhǔn)化的方案。
實(shí)際上今天有太多競(jìng)爭(zhēng)者陷入了打造全棧對(duì)標(biāo)的陷阱,即跟NVidia比GPU,又跟NVidia拼互聯(lián),也做整機(jī),這樣實(shí)際上很難借力反NVidia聯(lián)盟的力。
相反,能通過一系列技術(shù)和產(chǎn)品的布局塑造一套不同生態(tài)位都可以切入并受益的體系,也能更好的在這樣的體系中獲取更多的生態(tài)競(jìng)爭(zhēng)力。
當(dāng)然了,這些都是今天各種生態(tài)競(jìng)爭(zhēng)上最大的機(jī)會(huì),生態(tài)競(jìng)爭(zhēng)始終仍然是一個(gè)無(wú)比艱難的挑戰(zhàn),歷史上成功案例很多,很多有運(yùn)氣和機(jī)緣巧合,但多次成功的恐怕也只有老黃做到了。
除了對(duì)生態(tài)競(jìng)爭(zhēng)底層邏輯的理解,還需要一整套生態(tài)競(jìng)爭(zhēng)的無(wú)解陽(yáng)謀來(lái)實(shí)現(xiàn)以小博大,更需要技術(shù)和產(chǎn)品設(shè)計(jì)能匹配,這里面每個(gè)點(diǎn)都極具挑戰(zhàn)性。審核編輯:黃飛
評(píng)論
查看更多