文|侃科技
外界常有這樣一種錯覺,因為英特爾CPU賣的好就將其歸于一家成功的硬件公司,而事實上,英特爾統(tǒng)治桌面處理器的功臣是誕生于1978年的X86架構(gòu)。
同樣的錯覺在英偉達(dá)身上也有。
英偉達(dá)之所以能夠壟斷人工智能訓(xùn)練芯片市場,CUDA架構(gòu)絕對是幕后功臣之一。
這個誕生于2006年的架構(gòu),已經(jīng)涉及計算機(jī)計算的各個領(lǐng)域,幾乎被塑造成了英偉達(dá)的形狀。航空航天、生物科學(xué)研究、機(jī)械和流體模擬及能源探索等領(lǐng)域的研究,80%在CUDA的基礎(chǔ)上進(jìn)行。
而在最火爆的AI領(lǐng)域,幾乎所有的大廠都在準(zhǔn)備Plan B:谷歌、亞馬遜、華為、微軟、OpenAI、百度……誰也不想讓自己的未來攥在別人手中。
創(chuàng)業(yè)服務(wù)咨詢機(jī)構(gòu)Dealroom.co公布過一組數(shù)據(jù),在這波生成式AI的熱浪中,美國獲得了全球投融資的89%,而在AI芯片的投融資中,中國AI芯片投融資世界第一,超過美國兩倍。
也就是說,盡管中美企業(yè)在大模型的發(fā)展方式和階段都存在諸多差異,但在掌控算力這件事,大家卻顯得格外一致。
為什么CUDA有這種魔力?
2003年,英偉達(dá)為了與推出4核CPU的英特爾競爭,開始著手發(fā)展統(tǒng)一計算設(shè)備架構(gòu)技術(shù),也就是CUDA。
CUDA的初衷是為GPU增加一個易用的編程接口,讓開發(fā)者無需學(xué)習(xí)復(fù)雜的著色語言或者圖形處理原語。英偉達(dá)最初的想法是為游戲開發(fā)者提供一個圖形計算領(lǐng)域的應(yīng)用,也就是黃仁勛口中的"make graphics programmable"。
不過CUDA推出后一直找不到關(guān)鍵應(yīng)用,也缺少重要客戶支持。而且英偉達(dá)還要花費(fèi)大筆金錢來開發(fā)應(yīng)用、維持服務(wù)并推廣與行銷,到2008年遭遇金融風(fēng)暴,顯卡銷售不好的英偉達(dá)營收大跌,股價一度跌到只剩1.5美元,比AMD最慘的時候還要慘。
直到2012年,Hinton的兩個學(xué)生用英偉達(dá)的GPU參加了一個叫做ImageNet的圖像識別速度比賽。他們使用GTX580顯卡,利用CUDA技術(shù)進(jìn)行訓(xùn)練,結(jié)果算出的速度超過第二名數(shù)十倍,精確度也比第二名高10%以上。
讓業(yè)內(nèi)震驚的不只是ImageNet模型本身。這個需要1400萬張圖片、總計262千萬億次浮點運(yùn)算訓(xùn)練的神經(jīng)網(wǎng)絡(luò),一個星期的訓(xùn)練過程中僅用了四顆GTX 580。作為參考,谷歌貓用了1000萬張圖片、16000顆CPU和1000臺計算機(jī)。
這次比賽不僅是AI的一次歷史轉(zhuǎn)折,也為英偉達(dá)打開了突破口。英偉達(dá)開始與業(yè)界合作推動AI生態(tài),推廣開源AI框架,并與Google、Facebook等公司合作推動TensorFlow等AI技術(shù)發(fā)展。
這等于完成了黃仁勛口中的第二步,"open up GPU for programmability for all kinds of things"。
當(dāng)GPU的算力價值被發(fā)現(xiàn)后,大廠也猛然醒悟,英偉達(dá)此前數(shù)年迭代和鋪墊的CUDA,已然成為AI繞不開的一堵高墻。
為了籌建CUDA生態(tài),英偉達(dá)為開發(fā)者提供了豐富的庫和工具,如cuDNN、cuBLAS和TensorRT等,方便開發(fā)者進(jìn)行深度學(xué)習(xí)、線性代數(shù)和推理加速等任務(wù)。此外,英偉達(dá)還提供包括CUDA編譯器和優(yōu)化器在內(nèi)的完整開發(fā)工具鏈,使開發(fā)者能夠更方便地進(jìn)行GPU編程和性能優(yōu)化。
與此同時英偉達(dá)也與許多流行的深度學(xué)習(xí)框架(如TensorFlow、PyTorch和MXNet)緊密合作,為CUDA提供了在深度學(xué)習(xí)任務(wù)中的顯著優(yōu)勢。
這種“扶上馬,送一程”的奉獻(xiàn)精神,使英偉達(dá)僅用了兩年半時間,就將CUDA生態(tài)的開發(fā)者數(shù)量翻了一倍。
這還不夠,過去十余年里英偉達(dá)將CUDA的教學(xué)課程推廣到超過350所大學(xué),平臺內(nèi)有專業(yè)的開發(fā)者和領(lǐng)域?qū)<?,他們通過分享經(jīng)驗和解答疑難問題,為CUDA的應(yīng)用提供了豐富的支持。
更關(guān)鍵的是,英偉達(dá)深知硬件作為護(hù)城河的缺陷在于沒有用戶粘性,于是將硬件與軟件捆綁,GPU渲染要用CUDA、AI降噪要用OptiX、自動駕駛計算需要CUDA……
盡管英偉達(dá)目前憑借GPU+NVlink+CUDA壟斷了AI算力90%的市場,但帝國的裂縫已經(jīng)不止一條了。
一條條裂縫
AI廠商苦CUDA久矣,并不是危言聳聽。
CUDA的神奇之處就在于它處在軟硬結(jié)合的關(guān)鍵位置,對軟件來說它是整個生態(tài)的基石,競爭對手難以繞過CUDA去兼容英偉達(dá)的生態(tài);對硬件來說,CUDA的設(shè)計基本就是英偉達(dá)硬件形態(tài)的軟件抽象,基本每個核心概念都和GPU的硬件概念相對應(yīng)。
那么對于競爭對手來說,就只剩兩個選擇:
1、繞開CUDA,重建一套軟件生態(tài),這就要直面英偉達(dá)用戶粘性的巨大挑戰(zhàn);
2、兼容CUDA,但也要面臨兩個問題,一是如果你的硬件路線和英偉達(dá)不一致,那么就有可能實現(xiàn)的低效且難受,二是CUDA會跟隨英偉達(dá)硬件特性演進(jìn),兼容這也只能選擇跟隨。
但為了擺脫英偉達(dá)的鉗制,兩種選擇都有人嘗試。
2016年,AMD推出的基于開源項目的GPU生態(tài)系統(tǒng)ROCm,提供HIP工具完全兼容CUDA,就是一種跟隨路線。
但因為工具鏈庫資源匱乏、開發(fā)和迭代兼容性代價較大等掣肘,使ROCm生態(tài)難以壯大。在Github上,貢獻(xiàn)CUDA軟件包倉庫的開發(fā)者超過32600位,而 ROCm只有不到600個。
走兼容英偉達(dá)CUDA路線的難點在于,其更新迭代速度永遠(yuǎn)跟不上CUDA并且很難做到完全兼容:
1、迭代永遠(yuǎn)慢一步:英偉達(dá)GPU在微架構(gòu)和指令集上迭代很快,上層軟件堆棧的很多地方也要做相應(yīng)的功能更新。但AMD不可能知道英偉達(dá)的產(chǎn)品路線圖,軟件更新永遠(yuǎn)會慢英偉達(dá)一步。例如AMD有可能剛宣布支持了CUDA11,但是英偉達(dá)已經(jīng)推出CUDA12了。
2、難以完全兼容反而會增加開發(fā)者的工作量:像CUDA這樣的大型軟件本身架構(gòu)很復(fù)雜,AMD需要投入大量人力物力用幾年甚至十幾年才能追趕上。因為難免存在功能差異,如果兼容做不好反而會影響性能(雖然99%相似了,但是解決剩下來的1%不同之處可能會消耗開發(fā)者99%的時間)。
也有公司選擇繞開CUDA,比如2022年1月成立的Modular。

Modular的思路是盡可能降低門檻,但更像是一種奇襲。它提出“用于提高人工智能模型性能”的AI引擎,通過“模塊化”方式解決“當(dāng)前AI應(yīng)用棧常與特定硬件和軟件耦合”的問題。
為了配合這個AI引擎,Modular還開發(fā)了開源編程語言Mojo。你可以把它想象成一個“專為AI而生”的編程語言,Modular用它開發(fā)各種工具整合到前面提到的AI引擎里,同時又可以無縫銜接上Python,降低學(xué)習(xí)成本。
但Modular的問題在于,其所設(shè)想的“全平臺開發(fā)工具”太過理想化。
雖然頂著“超越Python”的頭銜,又有Chris Lattner名聲作為背書,但Mojo作為一種新語言,在推廣上還需要經(jīng)過眾多開發(fā)者的考驗。
而AI引擎要面臨的問題就更多,不僅需要與眾多硬件公司之間達(dá)成協(xié)議,還要考慮各平臺之間的兼容。這些都是需要長時間的打磨才能完成的工作,到時候的英偉達(dá)會進(jìn)化成什么樣子,恐怕沒人會知道。
尾聲
在英偉達(dá)展開宏大敘事的2006年,沒有人認(rèn)為CUDA會是一個革命性的產(chǎn)品,黃仁勛要苦口婆心的說服董事會每年投入5億美金,來賭一個回報期超過10年的未知,而當(dāng)年英偉達(dá)的營收也不過30億美金而已。
但在所有以技術(shù)和創(chuàng)新作為關(guān)鍵詞的商業(yè)故事里,總有人因為對長遠(yuǎn)目標(biāo)的持久堅持而收獲巨大的成功,英偉達(dá)和華為都是其中的佼佼者。
參考資料
[1] 英偉達(dá)的「鐮刀」,不是AI芯片,硅基研究室
[2] 為了成為“英偉達(dá)平替”,大模型廠商開卷了,小飯桌創(chuàng)服
[3] 成立僅1年,這家AI明星創(chuàng)企,想挑戰(zhàn)英偉達(dá),鎂客網(wǎng)
[4] 英偉達(dá)帝國的一道裂縫,遠(yuǎn)川研究所
[7] 2023年AIGC行業(yè)專題報告:AI 芯片四大技術(shù)路線,寒武紀(jì)復(fù)制英偉達(dá),申萬宏源
[8] CUDA如何成就NVIDIA:AI領(lǐng)域的巨大突破,騰訊云社區(qū)