科技巨頭“組局”對抗英偉達,CUDA平臺為何這么強?
Nvidia 之所以如此成功,要歸功于一套名為CUDA的強大專有軟件,它使人工智能科學(xué)家能夠訪問 GPU 中的所有硬件功能。英特爾正在與包括谷歌在內(nèi)的其他芯片和軟件巨頭合作,構(gòu)建非專有的開放軟件,使軟件公司能夠輕松更換芯片提供商。
科技巨頭組局,對抗英偉達
據(jù)報道,由英特爾、谷歌、Arm、高通、三星和其他科技公司組成的一個組織正在開發(fā)一個開源軟件生態(tài)系統(tǒng),以防止人工智能開發(fā)人員被“套牢”在英偉達的專有技術(shù)中。
這個聯(lián)合項目名為UXL,旨在創(chuàng)建一個開放源代碼的人工智能硬軟件生態(tài)系統(tǒng),將允許開發(fā)人員的代碼在任何硬件上和任何芯片上運行。該項目將在今年上半年確定技術(shù)規(guī)格,并且其技術(shù)細節(jié)應(yīng)該會在今年下半年達到“成熟”狀態(tài),不過UXL尚未給出最終發(fā)布的目標。
據(jù)悉,該項目將包含由英特爾開發(fā)的OneAPI開放標準,該標準旨在消除將開發(fā)人員捆綁在特定架構(gòu)上的特定編碼語言、代碼庫和其他工具等門檻。
高通人工智能和機器學(xué)習(xí)負責(zé)人Vinesh Sukumar在接受采訪時表示,“我們實際上是在向開發(fā)人員展示如何從英偉達平臺遷移出去,提供多元化的運算平臺?!?/span>
谷歌高性能計算總監(jiān)兼首席技術(shù)專家Bill Magro認為,“這是關(guān)于在機器學(xué)習(xí)框架的背景下,我們?nèi)绾蝿?chuàng)建一個開放的生態(tài)系統(tǒng),促進生產(chǎn)力和硬件選擇。”
UXL表示,雖然該項目最初的目標是為人工智能應(yīng)用和高性能計算應(yīng)用提供更多選擇,為其平臺贏得大量開發(fā)者,但從長遠來看,UXL的最終目標是支持英偉達的硬件和代碼。
當被問及開源和風(fēng)險投資軟件正努力打破英偉達在人工智能領(lǐng)域的主導(dǎo)地位時,英偉達高管Ian Buck在一份聲明中回應(yīng)道,“世界正在加速發(fā)展。加速計算的新想法來自整個生態(tài)系統(tǒng),這將有助于推進人工智能和加速計算所能實現(xiàn)的范圍?!?/span>
對此,金融和戰(zhàn)略咨詢公司D2D Advisory的首席執(zhí)行官Jay Goldberg指出,英偉達在AI領(lǐng)域的軟硬件地位目前來看很難撼動,“重要的是,人們已經(jīng)使用CUDA 15年了,他們圍繞CUDA編寫代碼、優(yōu)化工作。”
CUDA到底是什么?
CUDA,全稱Compute Unified Device Architecture(統(tǒng)一計算設(shè)備架構(gòu)),是由NVIDIA開發(fā)的一種技術(shù),讓我們能夠利用顯卡(也就是GPU)來進行大規(guī)模的計算。通常,GPU是用來處理電腦游戲中的圖形和影像的,但CUDA讓它能夠做更多,比如科學(xué)計算、深度學(xué)習(xí)等。
核心技術(shù)與特點
1. 并行計算模型
CUDA基于單指令多數(shù)據(jù)流(SIMD)和多線程并行處理架構(gòu),允許程序員定義并行執(zhí)行的“線程塊”(thread blocks),每個線程塊又包含多個線程。這些線程在GPU的流處理器(Streaming Multiprocessors, SMs)上并行執(zhí)行,從而實現(xiàn)大規(guī)模并發(fā)計算。
2. 虛擬指令集與編程接口
CUDA提供了直接訪問GPU虛擬指令集的途徑,以及一組高級編程接口(Application Programming Interface, API),如cudaMalloc()、cudaMemcpy()、cudaLaunchKernel()等,使得開發(fā)者可以便捷地管理GPU內(nèi)存、執(zhí)行數(shù)據(jù)傳輸以及啟動并行計算內(nèi)核(kernel)。
3. 編譯器與編程語言支持
CUDA配備了一個C/C++編譯器,允許程序員使用擴展后的C/C++語法編寫GPU代碼(通常稱為CUDA C/C++)。此外,CUDA還支持其他編程語言,如Fortran、Python、Java等,通過相應(yīng)的語言綁定或接口實現(xiàn)對GPU的編程。
4. 庫與工具鏈
CUDA附帶一系列豐富的庫,如 cuBLAS(基礎(chǔ)線性代數(shù)子程序庫)、cuDNN(深度神經(jīng)網(wǎng)絡(luò)庫)、cuFFT(快速傅里葉變換庫)等,封裝了針對特定計算任務(wù)優(yōu)化的算法,極大地簡化了開發(fā)過程。完整的CUDA工具鏈還包括性能分析工具(如nvprof/nvvp)、調(diào)試器(Nsight Systems/Debugger)以及樣例代碼和教程,為開發(fā)者提供了全面的支持環(huán)境。
CUDA有哪些作用?
科學(xué)研究:在物理、化學(xué)、生物等領(lǐng)域,CUDA能夠加速復(fù)雜的模擬和計算過程。比如,模擬宇宙的起源、分析大量的基因序列等。
深度學(xué)習(xí):深度學(xué)習(xí)需要處理大量的數(shù)據(jù)和復(fù)雜的計算。使用CUDA,訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時間可以從幾周縮短到幾小時。
圖像處理:從電影的特效制作到醫(yī)學(xué)圖像的分析,CUDA能夠加速圖像處理的過程,讓復(fù)雜的圖像分析變得更加快速和準確。
金融分析:在金融領(lǐng)域,CUDA被用來加速風(fēng)險分析、市場模擬等計算密集型任務(wù),幫助分析師更快地做出決策等等。
CUDA的優(yōu)勢
高效的并行計算能力:CUDA能夠讓成千上萬的GPU核心同時工作,大幅提高計算速度。
廣泛的應(yīng)用場景:從科學(xué)研究到商業(yè)分析,CUDA的應(yīng)用幾乎遍及所有需要大量計算的領(lǐng)域。
強大的生態(tài)支持:NVIDIA提供了豐富的文檔、教程和工具,讓開發(fā)者更容易地開發(fā)基于CUDA的應(yīng)用。
護城河難跨
CUDA之所以能成為英偉達的護城河,正是因為其龐大的GPU軟件計算生態(tài)。
你可以把他理解成GPU的Windows系統(tǒng),雖然有Linux這樣的替代品,但因為多年以來構(gòu)成起來的生態(tài)以及用戶粘性,很少會有科技企業(yè)會放棄這個編程語言從頭訓(xùn)練AI產(chǎn)品。
從本質(zhì)上講,是否使用CUDA,還是取決于任務(wù)的需求。對于較小的AI設(shè)備的話,工程師確實可以使用其他開發(fā)工具替代CUDA。
但涉及到大公司的企業(yè)級任務(wù),包括AI大模型、自動駕駛模型,CUDA憑借自身出色的速度以及可擴展性,始終是大公司的首選解決方案。
長期來看,雖然其他廠商也會推薦新的AI芯片以及非CUDA標準,但想要完全取代英偉達芯片并不現(xiàn)實。
另外,英偉達自身也意識到CUDA的地位可能在下滑。因此在今年GTC大會之前,開始禁止第三方硬件兼容CUDA。
在過去,英特爾、AMD等公司會參與ZLUDA這樣的第三方項目,國產(chǎn)廠商也有類似的兼容方案,這些非英偉達GPU可以直接兼容CUDA接口,從而直接運行CUDA 程序。
但現(xiàn)在來看,英偉達希望再度加固CUDA系統(tǒng)的壟斷,客戶要么重新選一個生態(tài)系統(tǒng),要么繼續(xù)使用英偉達的產(chǎn)品。
雖然競爭對手們一直在“炮轟”英偉達的 CUDA,不少人都認為開源軟件開發(fā)框架會比CUDA更高效地使用。
但奈何英特爾、AMD等芯片廠商在硬件層面都很難追上英偉達,更不要說帶著第三方開發(fā)者們放棄目前最好用的AI訓(xùn)練生態(tài)。
我們可以說UXL基金會的愿景很好,但想要取代CUDA,現(xiàn)在看起來似乎還挺遙遠的。
