當(dāng)前,生成式AI模型的參數(shù)規(guī)模已躍升至數(shù)十億乃至數(shù)萬(wàn)億之巨,遠(yuǎn)遠(yuǎn)超出了傳統(tǒng)CPU的處理范疇。在此背景下,GPU憑借其出色的并行處理能力,已成為人工智能加速領(lǐng)域的中流砥柱。然而,就在GPU備受關(guān)注之時(shí),一個(gè)新的競(jìng)爭(zhēng)力量——LPU(Language Processing Unit,語(yǔ)言處理單元)已悄然登場(chǎng),LPU專(zhuān)注于解決自然語(yǔ)言處理(NLP)任務(wù)中的順序性問(wèn)題,是構(gòu)建AI應(yīng)用不可或缺的一環(huán)。
本文旨在探討深度學(xué)習(xí)工作負(fù)載中GPU與LPU的主要差異,并深入分析它們的架構(gòu)、優(yōu)勢(shì)及性能表現(xiàn)。
GPU 架構(gòu)
GPU 的核心是計(jì)算單元(也稱(chēng)為執(zhí)行單元),其中包含多個(gè)處理單元(在 NVIDIA GPU中稱(chēng)為流處理器或 CUDA 核心),以及共享內(nèi)存和控制邏輯。在某些架構(gòu)中,尤其是為圖形渲染而設(shè)計(jì)的架構(gòu)中,還可能存在其他組件,例如光柵引擎和紋理處理集群 (TPC)。
每個(gè)計(jì)算單元由多個(gè)小型處理單元組成,能夠同時(shí)管理和執(zhí)行多個(gè)線(xiàn)程。它配備有自己的寄存器、共享內(nèi)存和調(diào)度單元。計(jì)算單元通過(guò)并行操作多個(gè)處理單元,協(xié)調(diào)它們的工作以高效處理復(fù)雜任務(wù)。每個(gè)處理單元負(fù)責(zé)執(zhí)行基本算術(shù)和邏輯運(yùn)算的單獨(dú)指令。
處理單元和指令集架構(gòu) (ISA)
計(jì)算單元中的每個(gè)處理單元被設(shè)計(jì)用于執(zhí)行由GPU的指令集架構(gòu)(ISA)定義的一組特定指令。ISA確定處理單元可以執(zhí)行的操作類(lèi)型(算術(shù)、邏輯等)以及這些指令的格式和編碼。不同的 GPU 架構(gòu)可能具有不同的 ISA,這會(huì)影響其在特定工作負(fù)載下的性能和功能。某些 GPU 為特定任務(wù)(例如圖形渲染或機(jī)器學(xué)習(xí))提供專(zhuān)用 ISA,以?xún)?yōu)化這些用例的性能。
雖然處理單元可以處理通用計(jì)算,但許多 GPU 還包含專(zhuān)門(mén)的單元來(lái)進(jìn)一步加速特定的工作負(fù)載(例如,Double-Precision Units處理高精度浮點(diǎn)計(jì)算)。此外,專(zhuān)為加速矩陣乘法設(shè)計(jì)的Tensor Core(NVIDIA)或Matrix Core(AMD)現(xiàn)在是計(jì)算單元的組成部分。
GPU 使用多層內(nèi)存層次結(jié)構(gòu)來(lái)平衡速度和容量。最靠近處理核心的是小型片上寄存器,用于臨時(shí)存儲(chǔ)經(jīng)常訪(fǎng)問(wèn)的數(shù)據(jù)和指令。這種寄存器文件提供最快的訪(fǎng)問(wèn)時(shí)間,但容量有限。
共享內(nèi)存是一種快速、低延遲的內(nèi)存空間,可在計(jì)算單元集群內(nèi)的處理單元之間共享。共享內(nèi)存促進(jìn)了計(jì)算過(guò)程中的數(shù)據(jù)交換,從而提高受益于線(xiàn)程塊內(nèi)數(shù)據(jù)重用的任務(wù)的性能。
全局內(nèi)存作為主內(nèi)存池適用于片上存儲(chǔ)器無(wú)法容納的較大數(shù)據(jù)集和程序指令。全局內(nèi)存比寄存器或共享存儲(chǔ)器提供更大的容量,但訪(fǎng)問(wèn)時(shí)間較慢。
GPU 內(nèi)的通信網(wǎng)絡(luò)
GPU性能的關(guān)鍵在于處理單元、內(nèi)存及其他組件間的高效通信。為此,GPU采用了多種互連技術(shù)和拓?fù)浣Y(jié)構(gòu)。以下是它們的分類(lèi)及工作原理:
高帶寬互連
基于總線(xiàn)的互連:這是GPU中常見(jiàn)的連接方式,它提供了組件間數(shù)據(jù)傳輸?shù)墓蚕砺窂健1M管實(shí)現(xiàn)簡(jiǎn)單,但在高流量情況下,由于多個(gè)組件要爭(zhēng)奪總線(xiàn)訪(fǎng)問(wèn)權(quán),可能會(huì)形成瓶頸。
片上網(wǎng)絡(luò) (NoC) 互連:高性能GPU則傾向于采用NoC互連,這種方案更具可擴(kuò)展性和靈活性。NoC 由多個(gè)互連的路由器組成,負(fù)責(zé)在不同組件之間路由數(shù)據(jù)包,相較于傳統(tǒng)的總線(xiàn)系統(tǒng),它能提供更高的帶寬和更低的延遲。
點(diǎn)對(duì)點(diǎn) (P2P) 互連:P2P 互連支持特定組件(例如處理單元和內(nèi)存庫(kù))之間的直接通信,無(wú)需共享公共總線(xiàn),因此可以顯著減少關(guān)鍵數(shù)據(jù)交換的延遲。
互連拓?fù)?/p>
交叉開(kāi)關(guān)(Crossbar Switch):該拓?fù)湓试S任意計(jì)算單元與任意內(nèi)存模塊通信,提供了靈活性,但當(dāng)多個(gè)計(jì)算單元需要同時(shí)訪(fǎng)問(wèn)同一個(gè)內(nèi)存模塊時(shí),可能會(huì)形成瓶頸。
Mesh網(wǎng)絡(luò):該拓?fù)渲忻總€(gè)計(jì)算單元都以網(wǎng)格狀結(jié)構(gòu)與其相鄰單元相連,減少了資源爭(zhēng)用,并實(shí)現(xiàn)了更高效的數(shù)據(jù)傳輸,尤其適用于本地化通信模式。
環(huán)形總線(xiàn):計(jì)算單元和內(nèi)存模塊以循環(huán)方式連接。這樣數(shù)據(jù)就可以單向流動(dòng),與總線(xiàn)相比,可以減少爭(zhēng)用。雖然廣播效率不如其他拓?fù)?,但它仍然可以使某些通信模式受益?/p>
此外,GPU還需與主機(jī)系統(tǒng)(CPU和主內(nèi)存)通信,這通常通過(guò)PCI Express(PCIe)總線(xiàn)完成,它是一種高速接口,支持GPU與系統(tǒng)其他部分之間的數(shù)據(jù)傳輸。
通過(guò)結(jié)合不同的互連技術(shù)和拓?fù)洌珿PU 可以?xún)?yōu)化各個(gè)組件之間的數(shù)據(jù)流和通信,從而實(shí)現(xiàn)跨各種工作負(fù)載的高性能。為了最大限度地利用其處理資源,GPU 使用了兩種關(guān)鍵技術(shù):多線(xiàn)程和流水線(xiàn)。
多線(xiàn)程:GPU 通常采用同步多線(xiàn)程(SMT),允許單個(gè)計(jì)算單元同時(shí)執(zhí)行來(lái)自相同或不同程序的多個(gè)線(xiàn)程,從而能夠更好地利用資源,即使任務(wù)具有一些固有的串行部分。GPU支持兩種形式的并行性:線(xiàn)程級(jí)并行(TLP)和數(shù)據(jù)級(jí)并行(DLP)。TLP涉及同時(shí)執(zhí)行多個(gè)線(xiàn)程,常采用單指令多線(xiàn)程(SIMT)模型;而DLP則利用矢量指令在單個(gè)線(xiàn)程內(nèi)處理多個(gè)數(shù)據(jù)元素。
流水線(xiàn):通過(guò)將復(fù)雜任務(wù)分解為更小的階段來(lái)進(jìn)一步提高效率,然后在計(jì)算單元內(nèi)的不同處理單元上同時(shí)進(jìn)行處理,從而減少總體延遲。GPU通常采用深度流水線(xiàn)架構(gòu),指令被分解為眾多小階段,流水線(xiàn)不僅在處理單元內(nèi)部實(shí)現(xiàn),還應(yīng)用于內(nèi)存訪(fǎng)問(wèn)和互連中。
綜上所述,眾多流處理器、針對(duì)特定工作負(fù)載設(shè)計(jì)的專(zhuān)用單元、多層內(nèi)存結(jié)構(gòu)以及高效的互連組合,共同賦予了GPU同時(shí)處理大量數(shù)據(jù)的能力。
LPU的架構(gòu)
LPU 是市場(chǎng)上的新產(chǎn)品,盡管目前知名度不高,但其性能卻極為出色,專(zhuān)為滿(mǎn)足自然語(yǔ)言處理(NLP)工作負(fù)載的獨(dú)特計(jì)算需求而設(shè)計(jì)。這里重點(diǎn)討論 Groq 的 LPU。
Groq LPU采用了Tensor Streaming Processor(TSP)架構(gòu),這一設(shè)計(jì)特別針對(duì)順序處理進(jìn)行了優(yōu)化,與 NLP 工作負(fù)載的性質(zhì)完美契合。與GPU在處理NLP任務(wù)時(shí)可能因內(nèi)存訪(fǎng)問(wèn)模式不規(guī)則而遇到的挑戰(zhàn)不同,TSP擅長(zhǎng)處理數(shù)據(jù)的順序流,從而能夠更快、更有效地執(zhí)行語(yǔ)言模型。
LPU 架構(gòu)還解決了大規(guī)模 NLP 模型中經(jīng)常遇到的兩個(gè)關(guān)鍵瓶頸:計(jì)算密度和內(nèi)存帶寬。通過(guò)精心管理計(jì)算資源并優(yōu)化內(nèi)存訪(fǎng)問(wèn)模式,LPU 可確保有效平衡處理能力和數(shù)據(jù)可用性,從而顯著提高 NLP 任務(wù)的性能。
LPU 尤其擅長(zhǎng)推理任務(wù),包括使用預(yù)訓(xùn)練的語(yǔ)言模型來(lái)分析和生成文本。其高效的數(shù)據(jù)處理機(jī)制和低延遲設(shè)計(jì)使其成為聊天機(jī)器人、虛擬助手和語(yǔ)言翻譯服務(wù)等實(shí)時(shí)應(yīng)用的理想選擇。LPU 還集成了專(zhuān)用硬件來(lái)加速注意力機(jī)制等關(guān)鍵操作,這對(duì)于理解文本數(shù)據(jù)中的上下文和關(guān)系至關(guān)重要。
軟件堆棧
為了彌補(bǔ)LPU專(zhuān)用硬件與NLP軟件之間的差距,Groq提供了全面的軟件堆棧。專(zhuān)用的編譯器能夠優(yōu)化并翻譯NLP模型和代碼,使它們?cè)贚PU架構(gòu)上高效運(yùn)行。該編譯器兼容流行的NLP框架,如TensorFlow和PyTorch,讓開(kāi)發(fā)人員能夠無(wú)需大幅改動(dòng),即可利用他們現(xiàn)有的工作流程和專(zhuān)業(yè)知識(shí)。
LPU的運(yùn)行時(shí)環(huán)境負(fù)責(zé)執(zhí)行期間的內(nèi)存分配、線(xiàn)程調(diào)度和資源利用率管理。它還為開(kāi)發(fā)人員提供了API,方便他們與LPU硬件進(jìn)行交互,從而輕松實(shí)現(xiàn)定制和集成到各種NLP應(yīng)用程序中。
內(nèi)存架構(gòu)
Groq LPU 采用多層內(nèi)存架構(gòu),確保數(shù)據(jù)在計(jì)算的各個(gè)階段都隨時(shí)可用。最靠近處理單元的是標(biāo)量和矢量寄存器,它們?yōu)轭l繁訪(fǎng)問(wèn)的數(shù)據(jù)(如中間結(jié)果和模型參數(shù))提供快速的片上存儲(chǔ)。LPU 使用更大、更慢的二級(jí) (L2) 緩存來(lái)存儲(chǔ)不常訪(fǎng)問(wèn)的數(shù)據(jù),減少了從較慢的主內(nèi)存中獲取數(shù)據(jù)的需要。
大容量數(shù)據(jù)的主要存儲(chǔ)是主存儲(chǔ)器,用于存儲(chǔ)預(yù)訓(xùn)練模型以及輸入和輸出數(shù)據(jù)。在主存儲(chǔ)器中分配了專(zhuān)用的模型存儲(chǔ)以確保高效訪(fǎng)問(wèn)預(yù)訓(xùn)練模型的參數(shù)。
此外,LPU 還集成了高帶寬片上 SRAM,進(jìn)一步減少了對(duì)外部存儲(chǔ)器的依賴(lài),從而最大限度地減少延遲并提高了吞吐量。這對(duì)于處理大量數(shù)據(jù)的任務(wù),如語(yǔ)言建模,尤為關(guān)鍵。
互連技術(shù)
Groq LPU 使用互連技術(shù)以促進(jìn)處理單元和內(nèi)存之間的高效通信?;诳偩€(xiàn)的互連可處理一般通信任務(wù),而片上網(wǎng)絡(luò) (NoC) 互連可為要求更高的數(shù)據(jù)交換提供高帶寬、低延遲通信。點(diǎn)對(duì)點(diǎn) (P2P) 互連可實(shí)現(xiàn)特定單元之間的直接通信,從而進(jìn)一步降低關(guān)鍵數(shù)據(jù)傳輸?shù)难舆t。
性能優(yōu)化
為了最大限度地利用處理資源,LPU 采用了多線(xiàn)程和流水線(xiàn)技術(shù)。神經(jīng)網(wǎng)絡(luò)處理集群 (NNPC) 將專(zhuān)門(mén)為 NLP 工作負(fù)載設(shè)計(jì)的處理單元、內(nèi)存和互連分組。每個(gè) NNPC 可以同時(shí)執(zhí)行多個(gè)線(xiàn)程,從而顯著提高吞吐量并實(shí)現(xiàn)線(xiàn)程和數(shù)據(jù)級(jí)并行。
流水線(xiàn)技術(shù)將復(fù)雜任務(wù)分解為多個(gè)小階段,允許不同的處理單元同時(shí)處理不同的階段,從而進(jìn)一步提高效率。這可減少總體延遲并確保數(shù)據(jù)通過(guò) LPU 的連續(xù)流動(dòng)。
性能比較
LPU 和 GPU 具有不同的用例和應(yīng)用。
LPU 被設(shè)計(jì)為NLP算法的推理引擎,因此很難在相同的基準(zhǔn)上直接將這兩類(lèi)芯片進(jìn)行并排比較。Groq的LPU在加速AI模型推理方面的表現(xiàn)尤為出色,其速度遠(yuǎn)超當(dāng)前市場(chǎng)上的任何GPU,其每秒最多可生成五百個(gè)推理令牌,這意味著用它來(lái)撰寫(xiě)一本小說(shuō),可能僅需幾分鐘的時(shí)間。
相比之下,GPU并非專(zhuān)為推理而設(shè)計(jì),它們的應(yīng)用范圍更為廣泛,涵蓋了整個(gè)AI生命周期,包括推理、訓(xùn)練和部署各種類(lèi)型的AI模型。此外,GPU還廣泛應(yīng)用于數(shù)據(jù)分析、圖像識(shí)別和科學(xué)模擬等領(lǐng)域。
在處理大型數(shù)據(jù)集時(shí),LPU和GPU都表現(xiàn)出色。LPU能夠容納更多數(shù)據(jù),從而進(jìn)一步加快推理過(guò)程。而GPU在通用并行處理方面也表現(xiàn)出色。它能夠加速涉及大型數(shù)據(jù)集和并行計(jì)算的各種任務(wù),因此在數(shù)據(jù)分析、科學(xué)模擬和圖像識(shí)別等領(lǐng)域中發(fā)揮著不可替代的作用。
總體而言,如果你的工作負(fù)載高度并行,且需要在各種任務(wù)中實(shí)現(xiàn)高計(jì)算吞吐量,那么GPU可能是更好的選擇。特別是當(dāng)你需要處理從開(kāi)發(fā)到部署的整個(gè)AI流程時(shí),GPU無(wú)疑是最值得投資的硬件選擇。但如果你主要關(guān)注NLP應(yīng)用,特別是那些涉及大型語(yǔ)言模型和推理任務(wù)的應(yīng)用程序,那么LPU的專(zhuān)門(mén)架構(gòu)和優(yōu)化可以在性能、效率和潛在降低成本方面提供顯著優(yōu)勢(shì)。
-
gpu
+關(guān)注
關(guān)注
28文章
4739瀏覽量
128941 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121157
原文標(biāo)題:GPU 與 LPU:哪個(gè)更適合 AI 工作負(fù)載?
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論