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