輝達突然出手方背後,是CUDA的”霸權“受到威脅!
最近,軟體工程師Longhorn注意到,安裝的EULA 文字檔案中的一個條款寫道:「不得對使用SDK 元件產生的軟體產品的任何部分進行逆向工程、反編譯或反彙編,以便轉換此類軟體產品、從而在非輝達平台上運行。 」(You may not reverse engineer, decompile or disassemble any portion of the output generated using SDK elements for the purpose of translating such output artifacts to elements for the purpose of translating such output artifacts to IAget a non-IDIAID.
這是輝達對於「禁止使用轉換層在其他硬體平台上運行基於CUDA 的軟體」的警告。實際上,輝達在2021年已經在網路上公示的授權條款中禁止,不過先前這則警告並未出現在安裝過程中加入主機系統上的文件中。
而現在,這個警告已經加入了安裝CUDA 11.6 及更新版本時所附的最終使用者授權協議(EULA)。
輝達針對CUDA 11.6及更高版本的突發舉動,引發了業界震動。不少人士認為,這一招是針對Intel、AMD都有參與的ZLUDA等第三方項目,摩爾線程MUSA、登臨科技GPU+以及中國廠商的兼容方案。
輝達突然出手的背後,是CUDA的「霸權」受到威脅。
01 CUDA的“霸權”
CUDA是什麼?簡單來說,CUDA就是輝達推出的平行運算框架。
CUDA不僅可以呼叫GPU運算,還可以呼叫GPU硬體加速,讓GPU擁有了解決複雜運算問題的能力,可以幫助客戶為不同的任務對處理器進行程式設計。
在CUDA之前,輝達的GPU只是一個負責在螢幕上繪製影像的“圖形處理單元”,也就是原本只能當作獨立顯示卡的存在。有了CUDA後,GPU就可以通用了。GPU通用的意思是,所有類似顯示卡運算的簡單量大的工作,GPU都能幹。例如AI深度學習,就需要GPU。
CUDA之於輝達,可以說是歷史的轉捩點。
自2006年開始,輝達將大筆資金投入CUDA的研發。為了把旗下的所有晶片都納入CUDA的架構裡,輝達累計花了超過100億美元。
2009年開始,也就是CUDA推出兩、三年後,輝達每年的研發費用從營收的15%陡增到25%甚至30%。為了顯示這個研發費用的超高,給大家舉幾個例子:蘋果每年不到10%,微軟每年15%-20%,英特爾每年約20%。
所以可以看出來,輝達在CUDA裡,投入了大量的財力。
同時,CUDA的出現,也確實讓輝達在AI晶片領域快速起飛。CUDA推出後,輝達迅速打開了新業務的大門,在航空航太、天文學、氣象學領域都有GPU的身影。
深諳需要利用工具和應用來幫助擴展自己的市場的輝達,對於CUDA的策略是:“不開源,但免費提供,並處於輝達的嚴格控制之下。”
因此,輝達為人們取得自身硬體設定了非常低的門檻,包括CUDA 工具包。CUDA在「使用人數越多,CUDA平台就越好用,新開發者就越傾向於選擇CUDA」的良性循環中,加強了生態優勢。
知名分析師本·湯普森(Ben Thompson)曾說:“輝達既不是一家硬體公司,也不是一家軟體公司:它是一家將兩者融為一體的公司。”
CUDA最強的護城河事實上在於軟體-晶片協同設計。輝達強大的軟硬體協同完善的生態,讓第三方軟體公司難以打破輝達的CUDA領先地位。
嘗試超越CUDA的企業往往會出現三種可能。
第一種,陷入追趕狀態。第三方軟體公司在研究透徹輝達的GPU後,需要半年到一年的時間才能實現性能基本匹配CUDA,但很難在新GPU發布後立即實現性能匹配甚至領先。
第二種,時間滯後。第三方軟體公司適配新的人工智慧加速硬體需要時間,而在一年後等到其方案達到接近CUDA的水平時,輝達已經發布了下一代GPU。這種時間滯後導致晶片公司無法及時利用最新的技術。
第三種,無法打破領先地位。由於輝達的不斷創新和市場領先,第三方軟體公司很難打破這種局面。他們不僅面臨技術上的挑戰,也面臨市場競爭的壓力。
輝達靠著CUDA 綁定了數百萬AI 開發者,吸引大型雲端運算公司購買它的GPU。目前,CUDA生態合作者規模翻倍成長。
根據輝達2023財年年報,目前有400萬名開發者正在與CUDA合作,而且規模還在擴大。輝達透過12年的時間達到200萬名開發者,在過去的兩年半裡該數字翻了一番。目前CUDA的下載量已經超過了4000萬次。
02 CUDA的相容問題
事實證明CUDA 和輝達硬體的結合非常高效,大批程式都依賴這種結合。然而,隨著更多競爭性的硬體湧入市場,更多的用戶傾向於在與輝達競爭的平台上運行其CUDA 程式。
有兩種方法可以做到這一點:重新編譯程式碼(這種方法可供對應程式的開發人員使用),或使用轉換層(也就是相容)。
其實這裡的「兼容」並不是真正的兼容。因為CUDA不是開源代碼,是“黑盒子”,因此100%相容CUDA在技術上是無法實現的。這裡是說,透過架構的相似性,讓產品可以比較容易運作CUDA的程式碼。
使用像ZLUDA 這樣的轉換層是在非輝達硬體上執行CUDA 程式最簡單的方法。你要做的就是拿來已經編譯好的二進位程式碼,然後使用ZLUDA 或其他轉換層來執行它們。
談到這裡,我們可以一起來了解ZLUDA。其實,這個專案是在2020年時候開始的,被描述為'英特爾GPU 上CUDA 的直接替代品'。這個專案提出了一個概念:在非輝達顯示卡上執行未更改的CUDA 應用程式。
不過,隨著英特爾、AMD轉向支援自有軟體平台,ZLUDA 現在似乎舉步維艱。今年2月,AMD放棄資助ZLUDA計畫。受到資金的限制,「ZLUDA」專案已經在GitHub 上開源。
現在,輝達已經禁止第三方公司相容CUDA。
顯而易見,使用轉換層威脅到了輝達在加速運算領域的霸主地位,尤其是在AI 應用領域。這可能是輝達決定禁止使用轉換層在其他硬體平台上執行CUDA 應用程式背後的初衷。
其實,從全球來看,許多國外的做算力晶片企業,例如Graphcore、SambaNova、tenstorrent,沒有一家可以兼容CUDA。而之所以不去相容CUDA,歸根究底,是因為各家希望探索出更適合做AI運算的路。
許多算力晶片企業選擇在軟體堆疊上另闢蹊徑,主要是因為擔心「相容」CUDA會成為自家產品發展的「天花板」。
03 CUDA遭到業界“炮轟”
其實,輝達的CUDA一直是業界被頻頻提及的話題。
去年12月時,英特爾CEO 帕特·基辛格曾公開抨擊輝達,稱其CUDA 技術護城河又淺又小,並聲稱對於人工智慧來說推理技術將比訓練更重要。
在接受採訪的時候,基辛格還在暗示輝達CUDA的主導地位不會永遠持續下去。
基辛格說到:「你知道,整個產業都在想如何消滅CUDA 市場。」「我們認為CUDA 護城河又淺又窄。因為整個產業都致力於為廣泛的訓練、創新、資料科學等領域帶來更廣泛的技術。”
頂級晶片大師吉姆・凱勒也在今年2月發布推文,吐槽輝達CUDA,認為CUDA是「沼澤」而不是「護城河」。
凱勒在後續推文中表示:「CUDA 毫無美感,只是粗暴地堆砌而成。基本上沒有人會寫CUDA,即便是寫了相關代碼,其執行速度也不快。這也是為何Triton、Tensor RT、 Neon、Mojo 孕育而出的原因。”
凱勒認為CUDA 像X86 一樣,輝達為了確保軟體和硬體的向後相容性,逐步增加功能的過程中拖慢了效能,增加了程式開發的難度。同時,許多開源軟體開發框架可以比CUDA 更有效率地使用。
不過,此前Semi Analysis首席分析師Dylan Patel曾表示:“隨著PyTorch支持更多GPU廠商,再加上OpenAI的Triton攪局,輝達手中的利器CUDA 逐漸鋒芒不再。”
Triton其實是Open AI推出了個「簡化版CUDA」。Triton是一種新的語言和編譯器。它的操作難度比CUDA低,但效能卻可與後者媲美。
OpenAI聲稱:「Triton只要25行程式碼,就能在FP16矩陣乘法shang上達到與cuBLAS相當的效能。」值得一提的是,Triton是開源的。相較於閉源的CUDA,其他硬體加速器能直接整合到Triton中,大幅減少了為新硬體建立AI編譯器堆疊的時間。
04 中國企業回應
在中國,目前一部分國產GPU廠商採取兼容CUDA的策略,以確保用慣了輝達產品的客戶在遷移時沒有障礙。另外也有廠商著手培育自己的軟體生態,其中包括摩爾線程、壁仞科技、登臨科技等。如摩爾線程推出基於旗下GPU產品的「MUSA」軟體架構。
昨日晚間,摩爾線程發布聲明,強調摩爾線程MUSA/MUSIFY未受影響。摩爾線程MUSA/MUSIFY不涉及輝達EULA相關條款,開發者可放心使用。
摩爾線程表示,MUSA是摩爾線程自主研發、擁有全部智慧財產權、軟硬一體的全功能GPU先進運算統一系統架構,與CUDA無任何依賴關係。
MUSIFY是摩爾線程為廣大MUSA開發者提供的開發工具,方便使用者在MUSA運算平台上進行應用移植與開發,可以讓開發者將自己的C++原始碼,轉換成MUSA C++原始碼,再透過MUSA編譯器MCC編譯產生基於MUSA指令集的二進位程式碼,最終運行在摩爾執行緒全功能GPU上。
總體來說,目前,輝達只是在CUDA 11.6協議中增加了警告條款,尚未有實際行動。不過,這次警告,也代表著輝達對兼容CUDA的一種態度。
重新編譯現有的CUDA 程式仍然完全合法。為了簡化這項工作,AMD 和英特爾都有工具將CUDA 程式分別移植到ROCm(1)平台和OpenAPI 平台上。
AMD去年12月發布ROCm 6.0之後,正馬不停蹄地推進6.1版本更新,從而進一步增強同輝達CUDA的競爭力。AMD在2月向GitHub 公共倉庫提交了大量關於ROCm 6.1 的提交,這表明AMD 預計將在近期發布新版本。(半導體產業縱橫)