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