當(dāng)前位置:首頁(yè) > 外匯資訊 > 正文內(nèi)容

誰(shuí)能挑戰(zhàn)CUDA?

激石外匯2023-12-21 11:57:31外匯資訊257

激石Pepperstone(http://xcvvvm.com/)報(bào)道:

在最近的一場(chǎng)“AI Everywhere”發(fā)布會(huì)上,Intel的CEO Pat Gelsinger炮轟Nvidia的CUDA生態(tài)護(hù)城河并不深,而且已經(jīng)成為行業(yè)的眾矢之的。Gelsinger稱,“整個(gè)行業(yè)都希望能干掉CUDA,包括Google、OpenAI等公司都在想方設(shè)法讓人工智能訓(xùn)練更加開(kāi)放。我們認(rèn)為CUDA的護(hù)城河既淺又窄?!?/p>

Gelsinger的這番話確實(shí)道出了整個(gè)人工智能行業(yè)對(duì)于Nvidia的CUDA又愛(ài)又恨的情緒;一方面,由于有了CUDA生態(tài),人工智能算法的訓(xùn)練和部署從硬件層角度變得容易,人工智能工程師無(wú)需成為芯片專家,也能夠讓人工智能訓(xùn)練高效地運(yùn)行在Nvidia的GPU上。而從另一個(gè)角度,整個(gè)業(yè)界也過(guò)于依賴CUDA,以至于不少主打人工智能公司都對(duì)于CUDA的過(guò)度依賴產(chǎn)生了警惕性,這也就是Gelsinger所說(shuō)的Google、OpenAI等公司都在設(shè)法研制自己的相應(yīng)解決方案(例如OpenAI的Triton)。本文將深入分析CUDA的強(qiáng)勢(shì)到底來(lái)源于哪里,以及究竟誰(shuí)能打破CUDA壟斷。

什么是CUDA?

首先,我們先分析一下CUDA的來(lái)龍去脈。當(dāng)我們?cè)谡務(wù)摗癈UDA”的時(shí)候,我們究竟在談?wù)撌裁??事?shí)上,我們認(rèn)為,CUDA包含三個(gè)層次。

首先,CUDA是一套編程語(yǔ)言。最初,3D圖像加速卡的主要任務(wù)是加速3D圖像的渲染,其用途相當(dāng)專一。在本世紀(jì)初,Nvidia推出了GPU的概念以允許用戶使用圖像加速卡去做通用計(jì)算,并且在大約十五年前推出了相應(yīng)的CUDA編程語(yǔ)言,其主要任務(wù)是提供GPU的編程模型,從而實(shí)現(xiàn)通用GPU編程。在CUDA編程語(yǔ)言中,Nvidia提供了GPU的各種硬件抽象,例如基于線程的并行計(jì)算、內(nèi)存存取等概念,從而為GPU編程提供了方便。

除了編程語(yǔ)言之外,CUDA的第二層含義是一套高性能編譯系統(tǒng)。在使用CUDA編程之后,還需要把用CUDA語(yǔ)言編寫的程序使用CUDA編譯器針對(duì)相應(yīng)硬件優(yōu)化并且映射到更底層的硬件指令(對(duì)于Nvidia顯卡來(lái)說(shuō)就是PTX)。CUDA的編譯器和GPU硬件的整合效率相當(dāng)高,因此能編譯出非常高效的底層指令,這也是CUDA的另一個(gè)核心組成部分。

最后,CUDA的第三層是含義是Nvidia基于CUDA語(yǔ)言的一系列高性能函數(shù)庫(kù),以及人工智能/高性能計(jì)算社區(qū)基于CUDA語(yǔ)言開(kāi)發(fā)的一系列代碼庫(kù)。例如,CUDA的常用高性能函數(shù)庫(kù)包括用于線性計(jì)算的cuBLAS和CUTLASS,用于稀疏矩陣計(jì)算的cuSPARSE,用于傅立葉變幻的cuFFT,用于數(shù)值求解的cuSOLVER等。這些函數(shù)庫(kù)的發(fā)展至今已經(jīng)歷經(jīng)了十余年的努力,其優(yōu)化幾乎已經(jīng)做到了極致。另外,人工智能社區(qū)也有大量基于CUDA開(kāi)發(fā)的代碼庫(kù),例如Pytorch的默認(rèn)后端就是CUDA。

CUDA每個(gè)層面的護(hù)城河

如上分析可知,CUDA其實(shí)包含了三個(gè)層面:編程語(yǔ)言,編譯器和生態(tài)。那么,CUDA這三個(gè)層面的護(hù)城河究竟在有多高?

首先,從編程語(yǔ)言的角度,事實(shí)上一直有OpenCL等社區(qū)開(kāi)源語(yǔ)言試圖去實(shí)現(xiàn)類似(甚至更加廣泛的功能;OpenCL針對(duì)的不只是GPU編程,還包括了FPGA等異構(gòu)計(jì)算體系)的功能,AMD的ROCm平臺(tái)也是試圖做到與CUDA語(yǔ)言等價(jià)。從編程語(yǔ)言角度,CUDA并非不可取代。

其次,從編譯器的角度來(lái)看,CUDA提供的高性能編譯器確實(shí)是一個(gè)很高的護(hù)城河。編譯器的性能從很大程度上決定了用戶編寫的程序在GPU上執(zhí)行的效率;或者換句話說(shuō),對(duì)于人工智能應(yīng)用來(lái)說(shuō),一個(gè)很直觀的衡量標(biāo)準(zhǔn)就是用戶編寫的人工智能算法,能多大程度上利用GPU的峰值算力?大多數(shù)情況下,峰值算力平均利用率不到50%。另外,編譯器的性能還牽扯到了用戶調(diào)優(yōu)的過(guò)程。如果用戶是GPU專家,通過(guò)在編寫GPU程序時(shí)進(jìn)行調(diào)優(yōu)(例如使用某種特定的方式去編寫語(yǔ)句),也可以很大程度上彌補(bǔ)編譯器的不足(因?yàn)榫幾g器的一個(gè)重要功能就是對(duì)編寫的程序做優(yōu)化,那么如果編寫的程序已經(jīng)比較優(yōu)化了那么對(duì)編譯器優(yōu)化能力的要求就可以低一些)。但是,這就牽扯到了用戶的門檻,如果編譯器性能不夠好,需要用戶是專家才能實(shí)現(xiàn)高效率的GPU程序,就會(huì)大大提高用戶門檻,即只有擁有一支精英GPU編程專家團(tuán)隊(duì)的公司才能充分發(fā)揮出GPU的性能;相反如果編譯器性能夠好,那么就可以降低用戶門檻,讓更多公司和個(gè)人也可以使用GPU高性能運(yùn)行算法。從這個(gè)角度來(lái)說(shuō),經(jīng)過(guò)十多年的積累,CUDA的編譯器(NVCC)已經(jīng)達(dá)到了相當(dāng)高的水平。最近的另一個(gè)新聞也從側(cè)面印證了編譯器性能的重要性:AMD在12月初的發(fā)布會(huì)上宣布新的MI300X平臺(tái)在運(yùn)行Llama2-70B模型的推理任務(wù)時(shí),比起Nvidia H100 HGX的性能要強(qiáng)1.4倍;一周后,Nvidia回應(yīng)稱AMD在編譯測(cè)試時(shí)并沒(méi)有使用合理的設(shè)置,在使用正確設(shè)置后H100 HGX的性能事實(shí)上比MI300X要強(qiáng)1.5倍。由此可見(jiàn),一個(gè)好的編譯器優(yōu)化對(duì)于充分利用GPU的性能可以說(shuō)是至關(guān)重要。

然而,編譯器的護(hù)城河也并不是高不可破。例如,OpenAI的開(kāi)源Triton編譯器可以同時(shí)兼容Nvidia和AMD以及更多平臺(tái),支持把用戶使用Python編寫的程序直接優(yōu)化編譯到底層硬件指令語(yǔ)言,并且在Nvidia的成熟GPU上實(shí)現(xiàn)和CUDA接近的執(zhí)行效率。如果Triton這樣的開(kāi)源編譯器獲得成功的話,至少?gòu)哪撤N角度上可以省去其他人工智能芯片公司花數(shù)年精力去開(kāi)發(fā)自己的編譯器的需求。

第三個(gè)層面是生態(tài)。目前,CUDA在生態(tài)領(lǐng)域可以說(shuō)是遙遙領(lǐng)先,因?yàn)镃UDA有著十多年的高性能程序庫(kù)的積累,以及基于這些程序庫(kù)上面社區(qū)開(kāi)發(fā)的各種高性能框架代碼。生態(tài)的積累首先需要能提供一個(gè)領(lǐng)先的解決方案——如果其他公司也能提供一個(gè)高性能的編程語(yǔ)言和編譯器方案的話,自然會(huì)有社區(qū)去基于它開(kāi)發(fā)代碼,而經(jīng)過(guò)長(zhǎng)期不懈的積累之后,生態(tài)自然也會(huì)趕上。例如,人工智能領(lǐng)域最流行的框架PyTorch從這兩年開(kāi)始也對(duì)于AMD的ROCm提供了支持,這就是生態(tài)領(lǐng)域的一個(gè)例子。換句話說(shuō),只要給足夠的時(shí)間和與CUDA語(yǔ)言/編譯器性能接近的方案,生態(tài)自然會(huì)慢慢趕上。

誰(shuí)能打破CUDA的護(hù)城河

之前我們分析了CUDA從三個(gè)層面的護(hù)城河,我們可以發(fā)現(xiàn),Nvidia的CUDA從三個(gè)層面分別來(lái)看,編譯器和生態(tài)的護(hù)城河比較高,但也不是不可超越。我們看到,軟件科技公司之間正在試圖超越這條護(hù)城河,例如OpenAI的Triton編譯器能提供幾乎比肩CUDA的性能,而人工智能編程框架PyTorch的最新版本已經(jīng)在后端集成了Triton,可望在Nvidia已經(jīng)推出的成熟GPU上能實(shí)現(xiàn)很高的性能。

然而,Nvidia CUDA最強(qiáng)的護(hù)城河事實(shí)上在于軟件-芯片協(xié)同設(shè)計(jì)。如前所述,在Nvidia的GPU推出一段時(shí)間之后(例如半年或一年),第三方的軟件公司的方案(例如OpenAI的Triton)在研究透徹這款GPU之后,可以讓自己的方案做到比肩CUDA的水平。這意味著兩點(diǎn):

首先,第三方軟件公司開(kāi)發(fā)編譯器去嘗試匹配CUDA的性能永遠(yuǎn)是一個(gè)追趕的過(guò)程,Nvidia發(fā)布新的GPU和相應(yīng)CUDA版本之后,需要半年到一年的時(shí)間才能實(shí)現(xiàn)性能基本匹配,但是基本難以到達(dá)Nvidia新GPU發(fā)布就立刻實(shí)現(xiàn)性能匹配甚至領(lǐng)先。

其次,芯片公司如果被動(dòng)等待第三方軟件公司的編譯器去適配自己的人工智能加速硬件以追趕Nvidia的話,永遠(yuǎn)無(wú)法打破Nvidia CUDA的領(lǐng)先地位。原因是,第三方軟件公司適配新的人工智能加速硬件需要時(shí)間;而在一年后等到第三方軟件公司的方案達(dá)到接近CUDA的水平的時(shí)候,Nvidia已經(jīng)發(fā)布下一代GPU了。這就陷入了永遠(yuǎn)在追趕過(guò)程中的陷阱,難以打破CUDA護(hù)城河并實(shí)現(xiàn)領(lǐng)先。

因此,能真正打破CUDA護(hù)城河的,必須是有芯片-軟件協(xié)同設(shè)計(jì)能力的團(tuán)隊(duì),而不僅僅是一個(gè)軟件公司。這個(gè)團(tuán)隊(duì)可以是一家擁有強(qiáng)大軟件能力的芯片公司(例如,Nvidia就是這樣的一個(gè)擁有強(qiáng)大芯片-軟件協(xié)同設(shè)計(jì)能得芯片公司的例子),或者是芯片和科技公司的結(jié)合。只有在芯片設(shè)計(jì)過(guò)程中就開(kāi)始編譯器和軟件生態(tài)的適配,才能夠在芯片發(fā)布的初期就能推出芯片性能和軟件性能同時(shí)都比肩Nvidia GPU +CUDA的產(chǎn)品,從而真正打破CUDA的護(hù)城河。

如何在芯片設(shè)計(jì)過(guò)程中就實(shí)現(xiàn)軟硬件協(xié)同設(shè)計(jì)?事實(shí)上,編譯器的設(shè)計(jì)是基于一種編程模型,把硬件抽象為一些不同的層次(例如內(nèi)部并行計(jì)算,內(nèi)存存取等等),并且進(jìn)一步根據(jù)這些硬件抽象去構(gòu)建性能模型,來(lái)實(shí)現(xiàn)性能的預(yù)測(cè)和優(yōu)化。從芯片設(shè)計(jì)的角度,需要能充分理解編譯器層面的這些硬件抽象和性能模型并不會(huì)百分百準(zhǔn)確,因此如何設(shè)計(jì)一個(gè)好的芯片架構(gòu)讓編譯器能夠較為容易地去優(yōu)化程序就很重要。而從編譯器的角度,如前所述每一款芯片的編程模型和硬件抽象層都會(huì)略有不同,因此需要在芯片設(shè)計(jì)周期中就介入開(kāi)始編譯器的優(yōu)化和硬件建模。兩者相結(jié)合,就能實(shí)現(xiàn)在芯片推出時(shí)就同時(shí)有很強(qiáng)的芯片理論性能和高度優(yōu)化的編程語(yǔ)言/編譯器,最終實(shí)現(xiàn)整體解決方案能和Nvidia的GPU+CUDA做有力的競(jìng)爭(zhēng)。

從這個(gè)角度來(lái)看,Google的TPU+XLA就是一個(gè)滿足之前所屬芯片-軟件協(xié)同設(shè)計(jì)的案例。Google的自研TPU過(guò)程中和XLA編譯器通過(guò)軟硬件結(jié)合設(shè)計(jì)實(shí)現(xiàn)整體高性能方案(這也是TPU在MLPerf benchmark上和Nvidia的方案性能接近甚至領(lǐng)先的重要原因)。雖然TPU并不對(duì)第三方銷售因此這個(gè)方案并不會(huì)完全打破Nvidia CUDA的護(hù)城河,但是它至少提供了一個(gè)打破Nvidia CUDA護(hù)城河的技術(shù)方向。從另一個(gè)方面,AMD和Intel等芯片公司在編譯器領(lǐng)域的方案目前還有待加強(qiáng),但是通過(guò)和OpenAI等科技公司合作,通過(guò)在下一代AI產(chǎn)品的設(shè)計(jì)過(guò)程中就和Triton這樣的領(lǐng)先編譯器方案協(xié)同設(shè)計(jì),可望能在未來(lái)追趕Nvidia GPU + CUDA的性能;而在性能接近之后,生態(tài)的培養(yǎng)就只是一個(gè)時(shí)間問(wèn)題了。

綜上,我們認(rèn)為,CUDA雖然是一個(gè)軟件生態(tài),但是如果想要打破CUDA的護(hù)城河,需要的是軟硬件協(xié)同設(shè)計(jì)。?????????

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由激石Pepperstone發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://xcvvvm.com/news/2409.html

標(biāo)簽: CUDA

“誰(shuí)能挑戰(zhàn)CUDA?” 的相關(guān)文章

A股走勢(shì)分化 汽車產(chǎn)業(yè)鏈再掀漲停潮 半導(dǎo)體強(qiáng)勢(shì)拉升 農(nóng)業(yè)種植、醫(yī)藥股下挫

激石Pepperstone(http://xcvvvm.com/)報(bào)道:6月23日,A股三大指數(shù)高開(kāi)后走勢(shì)分化,創(chuàng)業(yè)板指一度沖高漲超1%。截至發(fā)稿,滬指漲0.06%,深成指跌0.09%,創(chuàng)業(yè)板指漲幅回落至0.43%。 個(gè)股漲跌參半,截至發(fā)稿,兩市共2100股飄紅,2485股下挫。...

港股低開(kāi)高走 汽車教育回暖 商湯股份解禁暴跌40%

港股低開(kāi)高走 汽車教育回暖 商湯股份解禁暴跌40%

激石Pepperstone(http://xcvvvm.com/)報(bào)道:6月的最后一個(gè)交易日,港股低開(kāi),恒指開(kāi)跌0.36%,恒生科技指數(shù)開(kāi)跌0.69%。 隨后,恒指和恒生科技指數(shù)雙雙轉(zhuǎn)漲。盤面上,汽車股和教育股回暖。 汽車股回暖,理想汽車漲超5%,蔚來(lái)漲近4%,吉利汽車漲近3%。 教...

外資行紛紛唱多!新興市場(chǎng)能夠抵御美國(guó)衰退,中國(guó)復(fù)蘇將帶來(lái)重大支持

激石Pepperstone(http://xcvvvm.com/)報(bào)道:在40年來(lái)最嚴(yán)重的通脹壓力之下,美聯(lián)儲(chǔ)的激進(jìn)“收水”令越來(lái)越多投資者擔(dān)憂美國(guó)經(jīng)濟(jì)將在不遠(yuǎn)的未來(lái)陷入衰退。 高盛此前指出,美國(guó)陷入衰退,新興市場(chǎng)會(huì)跟著遭殃,但中國(guó)股票是亮點(diǎn)。 不同于高盛的觀點(diǎn),摩根大通和德意志銀行等外資...

美國(guó)零售業(yè)“凜冬將至”,誰(shuí)的危?誰(shuí)的機(jī)?

激石Pepperstone(http://xcvvvm.com/)報(bào)道:美國(guó)零售商正在面臨自互聯(lián)網(wǎng)泡沫破滅以來(lái)最嚴(yán)重的“庫(kù)存危機(jī)”。 三周前,分析人士曾援引密歇根州分析的政府?dāng)?shù)據(jù)表示,美國(guó)包括家具、家居用品和電器、建筑材料和園藝設(shè)備,以及“其他一般商品”類別的零售商的庫(kù)存銷售比出現(xiàn)了創(chuàng)記錄...

恒指、恒生科技雙雙跌超1% 新能源汽車股逆勢(shì)拉升 蔚小理集體沖高

恒指、恒生科技雙雙跌超1% 新能源汽車股逆勢(shì)拉升 蔚小理集體沖高

激石Pepperstone(http://xcvvvm.com/)報(bào)道:7月6日,港股開(kāi)盤走勢(shì)分化,恒指低開(kāi)0.35%,恒生科技指數(shù)漲0.14%。 隨后,恒指、恒生科技指數(shù)跌幅雙雙擴(kuò)大至超1%。 盤面上,科技股走低,石油股跌幅繼續(xù)擴(kuò)大,新能源汽車股持續(xù)走高。 科技股走低,京東跌幅一度擴(kuò)...

“雪糕刺客”鐘薛高:花最多的錢,吃最多的膠?

激石Pepperstone(http://xcvvvm.com/)報(bào)道:“網(wǎng)紅”從來(lái)都是一把雙刃劍,捧的時(shí)候,把你抬得有多高,踩的時(shí)候,就把你罵得有多慘。 鐘薛高不融化的話題持續(xù)發(fā)酵,一直把公司架在火上烤。 盡管,鐘薛高添加卡拉膠等增稠劑符合國(guó)家標(biāo)準(zhǔn),但在普遍存在“添加劑恐懼癥”的背景之下...