• 正文
    • 讓英偉達(dá)確立主導(dǎo)地位的并非芯片本身
    • CUDA構(gòu)成的三大核心要素
    • 防御壁壘的深度甚至超越了硬件本身
    • 從底層邏輯到上層策略的生態(tài)系統(tǒng)
    • CUDA在英偉達(dá)硬件生態(tài)中的核心地位
    • 結(jié)尾:
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

深度丨CUDA作為英偉達(dá)底層算法平臺(tái)的核心意義

3小時(shí)前
98
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者 | 方文三

CUDA最初是為科學(xué)計(jì)算領(lǐng)域設(shè)計(jì)的,英偉達(dá)致力于在消費(fèi)級(jí)游戲顯卡之外拓展新的市場(chǎng)機(jī)遇。借助CUDA的發(fā)展,英偉達(dá)成功地在數(shù)據(jù)中心等高性能計(jì)算領(lǐng)域找到了第二個(gè)增長(zhǎng)點(diǎn)。

英偉達(dá)確立主導(dǎo)地位的并非芯片本身

GPU與CPU在設(shè)計(jì)上存在本質(zhì)差異。

CPU作為處理復(fù)雜任務(wù)的全能型處理器,一次僅能處理有限數(shù)量的任務(wù);

而GPU則如同流水線工人,擅長(zhǎng)于同時(shí)執(zhí)行大量簡(jiǎn)單且重復(fù)的計(jì)算。

自21世紀(jì)初,研究人員開始意識(shí)到GPU的非凡潛力。

然而,當(dāng)時(shí)GPU編程的復(fù)雜性令人望而卻步。

程序員需借助多種圖形API來(lái)引導(dǎo)GPU執(zhí)行非圖形任務(wù),效率極低。

對(duì)此,英偉達(dá)的工程師們深感憂慮。于是,在2006年,英偉達(dá)推出了CUDA。

一個(gè)允許程序員直接使用C語(yǔ)言(后續(xù)還支持Python、Fortran等語(yǔ)言)來(lái)控制GPU的平臺(tái)。

從此,GPU的角色不再局限于游戲的[渲染機(jī)器],而是轉(zhuǎn)變?yōu)橐粋€(gè)功能強(qiáng)大的通用計(jì)算引擎。

隨后,英偉達(dá)還推出了CUDA Toolkit,其中集成了調(diào)試工具、優(yōu)化器等,使得編程體驗(yàn)更加流暢。

正是這些創(chuàng)新,使得CUDA從一項(xiàng)技術(shù)演變?yōu)橐粋€(gè)平臺(tái),吸引了眾多開發(fā)者的加入。

這一成就歸功于人工智能的興起,特別是深度學(xué)習(xí)的迅猛發(fā)展。

2012年,深度學(xué)習(xí)模型AlexNet在ImageNet圖像識(shí)別大賽中大放異彩,震驚了科技界。

該模型的訓(xùn)練需要大量的矩陣計(jì)算,而GPU與CUDA正是這類計(jì)算的理想選擇。

這一生態(tài)系統(tǒng)的關(guān)鍵[種子]在2016年播下。

OpenAI接受了英偉達(dá)的捐贈(zèng),標(biāo)志著[世界上首臺(tái)專為人工智能設(shè)計(jì)的超級(jí)計(jì)算機(jī)]的誕生,其核心由8個(gè)基于Volta架構(gòu)的V100 GPU構(gòu)成。

數(shù)年后,隨著GPT系列的成功,行業(yè)標(biāo)準(zhǔn)被納入CUDA的語(yǔ)法之中,訓(xùn)練流程、算子接口、資源調(diào)度均圍繞CUDA構(gòu)建。

OpenAI的成功路徑迅速成為整個(gè)行業(yè)的默認(rèn)選擇。

無(wú)論是谷歌的TensorFlow、Facebook的PyTorch,還是后來(lái)的Hugging Face transformers,都依賴于CUDA的底層支持。

英偉達(dá)借助這股東風(fēng),在AI崛起的關(guān)鍵時(shí)刻,悄然將CUDA從一個(gè)選項(xiàng)轉(zhuǎn)變?yōu)樾袠I(yè)標(biāo)準(zhǔn)。

CUDA構(gòu)成的三大核心要素

①開發(fā)函數(shù)庫(kù):基于CUDA技術(shù),提供了一系列應(yīng)用開發(fā)庫(kù)。

CUDA數(shù)學(xué)庫(kù)(包括CUBLAS、CUFFT等)中,CUBLAS是基礎(chǔ)的線性代數(shù)子程序庫(kù),它提供了矩陣乘法、向量運(yùn)算等高性能線性代數(shù)操作函數(shù),顯著提升了線性代數(shù)計(jì)算的效率;

CUFFT則是快速傅里葉變換庫(kù),用于高效計(jì)算離散傅里葉變換及其逆變換,在信號(hào)處理、圖像處理等領(lǐng)域具有廣泛的應(yīng)用。

CUDA深度學(xué)習(xí)庫(kù)(CUDNN)專為深度學(xué)習(xí)設(shè)計(jì),提供了卷積、池化、歸一化等深度學(xué)習(xí)常用操作的高性能實(shí)現(xiàn),是深度學(xué)習(xí)框架如TensorFlow、PyTorch等在GPU上高效運(yùn)行的關(guān)鍵支撐。

此外,還有其他實(shí)用庫(kù),CUDA的并行算法庫(kù)Thrust,它提供了類似于C++STL的并行算法和數(shù)據(jù)結(jié)構(gòu),包括排序、搜索、規(guī)約等操作。

②CUDA運(yùn)行時(shí)庫(kù):提供了應(yīng)用開發(fā)接口和運(yùn)行期組件,涵蓋了基本數(shù)據(jù)類型的定義以及各類計(jì)算、類型轉(zhuǎn)換、內(nèi)存管理、設(shè)備訪問和執(zhí)行調(diào)度等函數(shù)。

這些函數(shù)用于在主機(jī)(CPU)與設(shè)備(GPU)之間進(jìn)行數(shù)據(jù)傳輸、內(nèi)存管理、內(nèi)核啟動(dòng)等操作。

例如,開發(fā)者可以利用運(yùn)行時(shí)庫(kù)函數(shù)將數(shù)據(jù)從主機(jī)內(nèi)存復(fù)制到GPU內(nèi)存,隨后啟動(dòng)GPU內(nèi)核對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算,最終再將計(jì)算結(jié)果從GPU內(nèi)存復(fù)制回主機(jī)內(nèi)存。

③CUDA驅(qū)動(dòng):負(fù)責(zé)與底層GPU硬件通信,將CUDA程序轉(zhuǎn)換為GPU可理解的指令和數(shù)據(jù)格式,并管理GPU資源,如顯存分配、線程調(diào)度等。

它是CUDA程序與GPU硬件之間的橋梁,確保程序能夠在不同型號(hào)的英偉達(dá) GPU 上順利運(yùn)行。

防御壁壘的深度甚至超越了硬件本身

英偉達(dá)的CUDA生態(tài)系統(tǒng)并非單純的軟件工具集合,而是一個(gè)構(gòu)建于[開發(fā)者粘性-工具鏈壟斷-框架綁定-商業(yè)利益]之上的閉環(huán)體系。

①關(guān)于開發(fā)者粘性,CUDA之所以能夠占據(jù)主導(dǎo)地位,得益于其先發(fā)優(yōu)勢(shì)和規(guī)模效應(yīng)。

經(jīng)過(guò)二十年的積累,眾多開發(fā)者已經(jīng)形成了難以改變的[代碼慣性]。

若試圖將CUDA代碼遷移到其他平臺(tái),很可能需要重寫30%-50%的核心邏輯(例如內(nèi)存管理、并行優(yōu)化),同時(shí)面臨30%-60%的性能損失,遷移成本極為龐大。

②就工具鏈壟斷而言,英偉達(dá)在過(guò)去二十年中不斷完善CUDA生態(tài)系統(tǒng),最終實(shí)現(xiàn)了從開發(fā)到部署的[全鏈條捆綁]。

舉例來(lái)說(shuō),CUDA擁有眾多卓越的深度學(xué)習(xí)加速庫(kù),其底層庫(kù)如cuDNN、cuBLAS的優(yōu)化程度遠(yuǎn)超競(jìng)爭(zhēng)對(duì)手。

在ResNet-50推理任務(wù)中,cuDNN的性能是ROCm的MIOpen的2.3倍,是Intel oneDNN的3.1倍。

再如,CUDA的推理引擎TensorRT能夠?qū)⒛P屯评硌舆t降低至毫秒級(jí)別;

AMD的MIGraphX在相同精度下的延遲高出55%,華為昇騰的CANN引擎僅支持有限的算子。

③CUDA與主流AI框架的深度耦合,也助其形成了[框架即生態(tài)]的隱形壟斷。

以全球使用率最高的深度學(xué)習(xí)框架PyTorch為例,在其V2.3版本中,85%的算子優(yōu)化代碼僅針對(duì)CUDA實(shí)現(xiàn)。

至于PyTorch的新功能(如動(dòng)態(tài)shape推理)也會(huì)優(yōu)先適配CUDA 12.x版本,而AMD ROCm則需等待社區(qū)貢獻(xiàn)代碼,適配周期平均會(huì)延遲六個(gè)月。

此外,CUDA在框架底層就獲得了英偉達(dá)的獨(dú)家優(yōu)化特權(quán),與其他競(jìng)品形成了顯著的性能差距。

例如,PyTorch的TorchScript在編譯時(shí)會(huì)自動(dòng)調(diào)用CUDA專屬優(yōu)化(如自動(dòng)內(nèi)核融合);

而ROCm版本則需要開發(fā)者手動(dòng)插入HIP API,這極大地增加了代碼的復(fù)雜性。

④英偉達(dá)通過(guò)Inception計(jì)劃,支持了眾多AI初創(chuàng)公司,這些公司被納入[英偉達(dá)生態(tài)]后,被要求優(yōu)先使用CUDA,并將代碼共享至NGC(英偉達(dá)GPU Cloud)模型庫(kù)。

從底層邏輯到上層策略的生態(tài)系統(tǒng)

CUDA及其衍生工具(如PTX、Run:AI、Omniverse)所構(gòu)建的,已不僅僅是一套工具鏈,而是一套從底層執(zhí)行邏輯到上層調(diào)度策略的完整操作系統(tǒng)。

一旦采用CUDA,就必須使用其編譯器,并遵循其張量并行模型設(shè)計(jì);

使用Run:AI,就必須在該工具定義的資源調(diào)度規(guī)則中優(yōu)化算力

使用PTX,就要接受其底層線程分配和執(zhí)行方式。

換言之,從底層硬件編程到上層應(yīng)用開發(fā)、調(diào)試、優(yōu)化以及集群管理的各個(gè)層面,均由英偉達(dá)所定義。

今日之CUDA已不再是一種工具,而是一整套控制結(jié)構(gòu)。

英偉達(dá)所控制的,不僅僅是某個(gè)產(chǎn)品,而是整個(gè)AI工程世界的[運(yùn)行方式]。

在Windows平臺(tái)上運(yùn)行AI框架時(shí),英偉達(dá)實(shí)際上控制著[中間三層],即AI軟件棧中最核心的執(zhí)行與接口層,這與微軟當(dāng)年通過(guò)Windows控制PC行業(yè)的情形如出一轍。

你可以更換鍵盤、鼠標(biāo),但無(wú)法更換操作系統(tǒng)。同樣,在AI時(shí)代,你可以更換供應(yīng)商,但無(wú)法繞過(guò)CUDA的接口。

CUDA在英偉達(dá)硬件生態(tài)中的核心地位

①與GPU硬件的深度融合:CUDA與英偉達(dá)GPU硬件之間存在著深度融合的關(guān)系,二者相輔相成,共同為用戶提供強(qiáng)大的計(jì)算能力。

CUDA 能夠充分發(fā)揮英偉達(dá)GPU硬件的性能優(yōu)勢(shì),這得益于其獨(dú)特的設(shè)計(jì)和優(yōu)化。

以深度學(xué)習(xí)中的卷積計(jì)算為例,CUDA通過(guò)精心設(shè)計(jì)的線程調(diào)度和內(nèi)存訪問模式,能夠讓GPU的大量CUDA核心同時(shí)參與計(jì)算,極大地提高了卷積計(jì)算的速度。

在硬件加速功能方面,CUDA與英偉達(dá)GPU硬件緊密聯(lián)系,許多硬件加速功能只有通過(guò)CUDA才能充分發(fā)揮出來(lái)。

例如,英偉達(dá)GPU中的Tensor Core專門用于加速矩陣乘法和累加運(yùn)算。

CUDA提供了相應(yīng)的編程接口,使得開發(fā)者能夠方便地利用Tensor Core的強(qiáng)大性能,在深度學(xué)習(xí)訓(xùn)練中實(shí)現(xiàn)更快的計(jì)算速度和更高的效率。

此外,CUDA對(duì)英偉達(dá)GPU硬件的調(diào)用具有獨(dú)特性,它能夠直接訪問GPU的硬件資源,實(shí)現(xiàn)高效的并行計(jì)算。

這種直接訪問硬件的方式,減少了中間層的開銷,提高了計(jì)算效率,使得CUDA在處理大規(guī)模數(shù)據(jù)和復(fù)雜計(jì)算任務(wù)時(shí)具有明顯的優(yōu)勢(shì)。

②推動(dòng)硬件產(chǎn)品的發(fā)展與迭代:CUDA的發(fā)展對(duì)英偉達(dá)硬件產(chǎn)品的更新?lián)Q代起到了重要的推動(dòng)作用。

隨著CUDA功能的不斷增強(qiáng)和應(yīng)用場(chǎng)景的不斷拓展,對(duì)英偉達(dá)GPU硬件的性能和架構(gòu)提出了更高的要求,促使英偉達(dá)不斷優(yōu)化硬件架構(gòu),提升硬件性能,以滿足CUDA的需求。

在硬件架構(gòu)優(yōu)化方面,英偉達(dá)根據(jù)CUDA的并行計(jì)算需求,不斷改進(jìn)GPU的架構(gòu)設(shè)計(jì)。

例如,從早期的Fermi架構(gòu)到后來(lái)的Volta、Ampere架構(gòu),英偉達(dá)不斷增加CUDA核心的數(shù)量,優(yōu)化內(nèi)存帶寬和緩存機(jī)制,提高GPU的并行計(jì)算能力和數(shù)據(jù)處理速度。

同時(shí),CUDA的發(fā)展也促使英偉達(dá)不斷推出新的硬件產(chǎn)品,以適應(yīng)不同應(yīng)用場(chǎng)景的需求。

例如,英偉達(dá)推出的A100、H100等高端GPU產(chǎn)品,不僅在硬件性能上有了大幅提升,還針對(duì)CUDA進(jìn)行了深度優(yōu)化,為人工智能、高性能計(jì)算等領(lǐng)域提供了更強(qiáng)大的計(jì)算支持。

這些新的硬件產(chǎn)品,反過(guò)來(lái)又促進(jìn)了CUDA的發(fā)展和應(yīng)用,形成了良性循環(huán)。

③構(gòu)建完整的硬件生態(tài)系統(tǒng):CUDA在英偉達(dá)的硬件生態(tài)系統(tǒng)中扮演著連接硬件與軟件的關(guān)鍵角色。

它促進(jìn)了基于英偉達(dá)GPU硬件的軟件和應(yīng)用的開發(fā),構(gòu)建了一個(gè)完整的硬件生態(tài)系統(tǒng)。

在這個(gè)生態(tài)系統(tǒng)中,CUDA作為核心平臺(tái),吸引了眾多開發(fā)者基于其進(jìn)行軟件和應(yīng)用的開發(fā)。

從深度學(xué)習(xí)框架到科學(xué)計(jì)算軟件,從數(shù)據(jù)分析工具到圖形圖像處理應(yīng)用,基于CUDA開發(fā)的軟件和應(yīng)用涵蓋了多個(gè)領(lǐng)域,滿足了不同用戶的需求。

以深度學(xué)習(xí)領(lǐng)域?yàn)槔?,TensorFlow、PyTorch等主流深度學(xué)習(xí)框架都對(duì)CUDA提供了良好的支持。

開發(fā)者可以利用這些框架在英偉達(dá)GPU上快速搭建和訓(xùn)練深度學(xué)習(xí)模型,實(shí)現(xiàn)高效的圖像識(shí)別、自然語(yǔ)言處理等任務(wù)。

在科學(xué)計(jì)算領(lǐng)域,諸如Matlab、LAMMPS等軟件也借助CUDA加速計(jì)算過(guò)程,提高了科研工作的效率。

結(jié)尾:

經(jīng)濟(jì)學(xué)中有一個(gè)經(jīng)典理論:[當(dāng)一個(gè)生態(tài)系統(tǒng)的遷移成本遠(yuǎn)高于留存成本時(shí),該生態(tài)系統(tǒng)便被鎖定。]

這正是CUDA的厲害之處——它使用戶產(chǎn)生了路徑依賴,而這種依賴不再局限于硬件層面的[兼容性],而是將整個(gè)AI工程師的思維方式納入其結(jié)構(gòu)之中。

無(wú)論是OpenCL/OneAPI、TVM/XLA、MLIR,抑或其他一些出發(fā)點(diǎn)良好的項(xiàng)目,我們目睹了眾多旨在構(gòu)建統(tǒng)一AI基礎(chǔ)設(shè)施的有力嘗試。

但遺憾的是,尚未有任何一個(gè)能提供令開發(fā)者完全滿意的結(jié)果。

項(xiàng)目逐漸走向碎片化,承諾未能兌現(xiàn),使用替代硬件的用戶手中的工具往往不盡人意。

現(xiàn)實(shí)情況是:唯有英偉達(dá)真正解決了這一問題。

部分資料參考:InfoQ:《GPU 編程[改朝換代]:英偉達(dá)終為CUDA 添加原生 Python 支持,百萬(wàn)用戶變千萬(wàn)?》,科魯叔叔趣說(shuō)AI:《CUDA:英偉達(dá)的魔法引擎如何改變世界》,Rog3r:《究竟什么是英偉達(dá)的CUDA?真的堅(jiān)不可摧嗎?》,半導(dǎo)體行業(yè)觀察:《如何打破CUDA壟斷?LLVM奠基人長(zhǎng)文解讀》,牛山AI公園:《DeepSeek是否真繞開了CUDA?一文搞懂CUDA為何是英偉達(dá)的核心壁壘》

英偉達(dá)

英偉達(dá)

NVIDIA(中國(guó)大陸譯名:英偉達(dá),港臺(tái)譯名:輝達(dá)),成立于1993年,是一家美國(guó)跨國(guó)科技公司,總部位于加利福尼亞州圣克拉拉市,由黃仁勛、克里斯·馬拉科夫斯基(Chris Malachowsky)和柯蒂斯·普里姆(Curtis Priem)共同創(chuàng)立。公司早期專注于圖形芯片設(shè)計(jì)業(yè)務(wù),隨著公司技術(shù)與業(yè)務(wù)發(fā)展,已成長(zhǎng)為一家提供全棧計(jì)算的人工智能公司,致力于開發(fā)CPU、DPU、GPU和AI軟件,為建筑工程、金融服務(wù)、科學(xué)研究、制造業(yè)、汽車等領(lǐng)域的計(jì)算解決方案提供支持。

NVIDIA(中國(guó)大陸譯名:英偉達(dá),港臺(tái)譯名:輝達(dá)),成立于1993年,是一家美國(guó)跨國(guó)科技公司,總部位于加利福尼亞州圣克拉拉市,由黃仁勛、克里斯·馬拉科夫斯基(Chris Malachowsky)和柯蒂斯·普里姆(Curtis Priem)共同創(chuàng)立。公司早期專注于圖形芯片設(shè)計(jì)業(yè)務(wù),隨著公司技術(shù)與業(yè)務(wù)發(fā)展,已成長(zhǎng)為一家提供全棧計(jì)算的人工智能公司,致力于開發(fā)CPU、DPU、GPU和AI軟件,為建筑工程、金融服務(wù)、科學(xué)研究、制造業(yè)、汽車等領(lǐng)域的計(jì)算解決方案提供支持。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄