近日,一則「輝達禁止第三方GPU公司相容CUDA」的消息在業界引起熱議。其實自2021年起,輝達在其授權條款中明文規定,不允許使用轉譯層在其他硬體平台上執行基於CUDA的軟體。最近,這項規定被加入了CUDA 11.6及更新版本的最終用戶授權協議(EULA)中,正式形成了禁止轉譯的限制條款。
CUDA生態建構輝達AI晶片護城河
CUDA(Compute Unified Device Architecture)是輝達在2006年推出的一種平行運算架構和程式設計模型,它允許開發者使用C/C++等程式語言來編寫程序,並在支援CUDA的GPU上運行。 CUDA透過利用GPU的大規模平行處理器核心,在較短的時間內執行大量的平行運算任務,實現高效能運算和大規模資料處理。 CUDA的出現開啟了GPU通用運算的新時代。
CUDA的角色主要體現在以下幾個方面:
首先,CUDA可以將複雜的運算任務拆解為若干簡單的子任務,並透過層次化的執行緒結構來實現。在這一結構中,線程被組織成線程塊,而線程塊則進一步組合成網格。這種組織方式允許線程塊內的線程高效共享資料和同步操作。透過合理的執行緒管理,開發者可以充分利用GPU的平行處理能力,提升運算密集型應用的效能。
其次,CUDA透過合理的記憶體存取方式減少延遲,提高效能。由於每個執行緒擁有唯一的執行緒ID,因此執行緒區塊則擁有區塊ID,這兩個識別碼共同決定了執行緒在網格中的位置。 CUDA透過精確控制線程和資料的索引計算,顯著提升記憶體存取效率,並提高了資料傳輸效率。
此外,CUDA底層為NVCC(NVIDIA CUDA Compiler)編譯器,可以將開發者編寫的高階C/C++程式碼轉換為可以在輝達GPU上執行的低階機器指令,而CUDA本身為一種運算平台,上面融合了多種加速庫、運算庫,其多樣性和效能直接影響到底層的AI晶片的運算效能。
在CUDA出現以前,開發者呼叫GPU主要依賴低階圖形API,這不僅程式設計複雜度高,難以實現效能最佳化,且缺乏跨平台相容性。 CUDA推出後,其提供了高級編程接口,簡化了並行計算的編程過程,提高了跨平台兼容性,同時藉助豐富的生態資源,釋放了GPU在通用計算中的應用潛能。
CUDA採用當時已經流行的C/C++語言作為程式語言,提供大量的高效能運算指令開發能力,開發者學習門檻低,使用效率高,提供了簡單易用的開發環境。經過多年的發展,CUDA已建立龐大的軟體生態系統,包括了CUDA Toolkit、CUDA庫、CUDA相容的深度學習框架以及廣泛的開發者社群。
根據輝達2023財年年報,目前有450萬名開發者正在與CUDA合作,而且規模還在擴大,CUDA的下載量也已經超過了4800萬次。目前CUDA生態已升級到12代版本,儲備了大量軟體元件,培養了使用者習慣。強大的軟體生態系統使得輝達在與其他廠商的競爭中保持長期領先地位。
越來越多的非輝達廠商選擇“相容CUDA”
隨著AI進入快速發展期,算力需求大幅提升,越來越多的廠商加入算力晶片行列。 AMD和英特爾近期分別推出的AI算力晶片MI300X和Gaudi3,效能超越輝達H100。
中國製AI晶片公司也順利獲得融資,推出自己的產品。但由於輝達在業界生態障礙已逐漸建立,開發者如果想使用輝達以外的算力晶片,軟體適配和遷移便成為一個難題。因此,越來越多的第三方廠商選擇“相容CUDA”,以期能在其硬體平台上運行基於CUDA的軟體。
其中一種「相容」方式是以ZLUDA為代表的。 ZLUDA是一個開源項目,旨在打破硬體平台間的界限。它將開發者基於CUDA開發的程式使用CUDA編譯器「NVCC」編譯出的二進位文件,透過ZLUDA即時轉譯運行在AMD/Intel等第三方硬體上,而不用預先把整個CUDA原始碼程式進行翻譯再運行。
另一種「相容」方式是以AMD為代表的路線。 AMD在2016年4月發布了ROCm生態系統,相較於CUDA,它的開放性更好,開發者可以自由使用和修改程式碼,用戶能夠更靈活地客製化和優化軟體。中國製AI晶片廠商也紛紛推出自有生態系。以中國製廠商摩爾線程為例,它將開發者基於CUDA開發的程式原始碼透過自研的MUSA編譯器編譯成MUSA程式碼再運行在摩爾線程自己的晶片上。
輝達禁止CUDA轉譯,禁止的是什麼
根據輝達CUDA官方消息,新授權條款規定,不得對CUDA程式進行逆向工程/反編譯/反彙編,以將CUDA開發的程式轉譯到其他非輝達的硬體平台上運作。此條款主要指向的是以ZLUDA為代表的「轉譯層」的兼容方法。
此種相容方法使用了輝達的程式碼和編譯器,並將CUDA程式碼直接不經修改無縫運作在第三方硬體平台上。輝達新條款的目的是為了防止其他廠商透過ZLUDA等翻譯層使用CUDA程式碼,也即限制了其他廠商直接將CUDA生態軟體透過ZLUDA等轉換後使用在其他AI晶片平台上。
雖然透過ZLUDA這類翻譯層直接移植軟體被禁止,但重新編譯現有的CUDA程式仍然合法。 AMD的ROCm和大部分中國製AI晶片廠商,開發了具有自主智慧財產權的工具庫、編譯器和技術棧,在這過程中沒有使用輝達的程式碼和編譯器,不涉及輝達的智慧財產權。因此整體而言,國內的AI算力晶片公司,其官方軟體生態多不涉及ZLUDA,輝達的新條款實際影響有限。
CUDA生態系統自2006年推出至今,已經歷了超過15年的發展,具有成熟的軟體工具鏈,可提供開發環境,幫助開發者更為容易地使用輝達的晶片做高效能運算。相較之下,中國製AI晶片軟體生態尚處於發展階段,可用的算子庫、工具和文件資源還比較少,在應用場景的拓展上仍存在一些限制,尤其是在AI和深度學習方面的應用比較少,使用者數方面也存在不小的差距,在軟體生態的建構上面臨一定的挑戰。
近年來,中國政府陸續推出了一系列政策舉措,旨在優化智慧算力基礎設施佈局,大幅擴展中國製硬體的部署規模,推動資訊科技產業的自主可控與永續發展。隨著中國製算力晶片硬體日益壯大,軟體開發商紛紛看到新的機遇,更加積極地投身於為這些硬體平台開發應用的熱潮中,軟體生態系統將由此日漸豐富多彩。
硬體與軟體之間的這種緊密而和諧的互動,將形成推動AI產業鏈不斷前進的良性循環。相信在這一積極態勢的引領下,中國的AI產業鏈將朝著更自主、可控且可持續的未來邁進,將為用戶提供更加多樣化、高效且安全的AI服務與解決方案。
資料來源:
1. 國泰君安:重視AI晶片配套的軟體生態
2. 華西證券:Sora算力倍增,中國製架構+生態崛起
3. 東吳證券:中國製AI算力產業報告:浪潮洶湧,勢不可擋