關(guān)于 GPU ,你所應(yīng)該了解的
眾所周知,隨著人工智能和機(jī)器學(xué)習(xí)的迅猛發(fā)展,智能應(yīng)用如雨后春筍般地不斷涌現(xiàn)出來。然而,傳統(tǒng)馮·諾依曼架構(gòu)的 CPU 在面對日益復(fù)雜的深度學(xué)習(xí)模型時(shí),性能瓶頸日益凸顯。摩爾定律的放緩更是加劇了這一問題。為了滿足人工智能應(yīng)用對算力的爆炸性需求,人民開始積極探索新的計(jì)算架構(gòu)。
而與此同時(shí),GPU(圖形處理器)憑借其高度并行的架構(gòu),在圖形渲染和并行計(jì)算方面展現(xiàn)出卓越性能,成為加速深度學(xué)習(xí)的首選。TPU(張量處理器)則由谷歌專門為機(jī)器學(xué)習(xí)任務(wù)設(shè)計(jì),在張量運(yùn)算方面具有顯著優(yōu)勢。這些新型處理器通過異構(gòu)計(jì)算的方式,與CPU協(xié)同工作,構(gòu)建了更強(qiáng)大的計(jì)算平臺。
一、GPU 是什么 ?
GPU,即“圖形處理單元”, 是一種專門設(shè)計(jì)用于處理圖形渲染的電子電路,其核心優(yōu)勢在于高度并行的計(jì)算架構(gòu)。
傳統(tǒng)上,GPU 主要用于加速計(jì)算機(jī)圖形的生成和顯示,例如在游戲、視頻編輯等領(lǐng)域。然而,隨著深度學(xué)習(xí)等人工智能技術(shù)的興起,GPU 的并行計(jì)算能力使其成為了加速 AI 訓(xùn)練和推理的理想選擇。
通常而言,與傳統(tǒng) CPU 的串行處理方式不同,GPU(圖形處理器)擁有數(shù)千個(gè)高度并行的核心,能夠?qū)?fù)雜的計(jì)算任務(wù)分解成無數(shù)個(gè)小任務(wù),并同時(shí)進(jìn)行處理。這種高度并行的架構(gòu)使得 GPU在處理圖形渲染、機(jī)器學(xué)習(xí)(ML)、視頻編輯、游戲應(yīng)用程序、計(jì)算機(jī)視覺、比特幣等加密貨幣的挖礦以及生成人工智能等需要大量計(jì)算的任務(wù)場景時(shí)表現(xiàn)出色。
尤其是,在深度學(xué)習(xí)領(lǐng)域,GPU 的地位更是無可替代。 深度學(xué)習(xí)模型通常涉及大量的矩陣運(yùn)算,而 GPU 的并行計(jì)算能力恰好可以加速這些運(yùn)算。此外,GPU還 支持混合精度計(jì)算,即同時(shí)處理單精度和半精度浮點(diǎn)數(shù),進(jìn)一步提升了計(jì)算效率。這種加速效果使得訓(xùn)練大型神經(jīng)網(wǎng)絡(luò)成為可能,推動了深度學(xué)習(xí)在圖像識別、自然語言處理、語音識別等領(lǐng)域的快速發(fā)展。
二、GPU 與 CPU 是如何協(xié)同工作的 ?
CPU(中央處理單元)和 GPU(圖形處理單元)是現(xiàn)代計(jì)算系統(tǒng)中兩個(gè)互補(bǔ)的重要組成部分,兩者通過分工協(xié)作,發(fā)揮各自的優(yōu)勢,從而極大提高了應(yīng)用程序的數(shù)據(jù)吞吐量和并發(fā)計(jì)算能力。
GPU 最初被設(shè)計(jì)用于生成計(jì)算機(jī)圖形和視頻游戲的視覺效果,以滿足日益增長的圖形渲染需求。自2010年代初開始,由于 GPU 強(qiáng)大的并行計(jì)算能力,其應(yīng)用范圍逐漸擴(kuò)展到需要大規(guī)模數(shù)據(jù)并行處理的領(lǐng)域,如科學(xué)計(jì)算、人工智能等,從而加速了這些領(lǐng)域的計(jì)算過程。
1. CPU:通用計(jì)算的引擎
CPU 擅長處理各種通用計(jì)算任務(wù),例如操作系統(tǒng)管理、應(yīng)用程序執(zhí)行、數(shù)據(jù)處理等。它具有高度靈活的指令集,可以執(zhí)行復(fù)雜的邏輯操作。由于其串行處理的特性,CPU在處理順序執(zhí)行的任務(wù)時(shí)效率較高。
2. GPU:并行計(jì)算的加速器
GPU最初設(shè)計(jì)用于渲染圖形,其核心特點(diǎn)是高度并行的計(jì)算架構(gòu)。它包含數(shù)千個(gè)流處理器,能夠同時(shí)執(zhí)行大量的簡單指令。這種并行處理能力使得 GPU 在處理需要大量重復(fù)計(jì)算的任務(wù)時(shí)具有顯著優(yōu)勢,例如矩陣運(yùn)算、圖像處理等。
3. CPU 與 GPU 的協(xié)同工作
其實(shí),在整個(gè)計(jì)算機(jī)生態(tài)體系中,CPU 和 GPU在系統(tǒng)中分工合作,相輔相成。具體可參考如下:
(1)CPU 負(fù)責(zé)整體控制: CPU 負(fù)責(zé)操作系統(tǒng)管理、應(yīng)用程序調(diào)度、內(nèi)存管理等任務(wù),并協(xié)調(diào) GPU 的運(yùn)行。
(2)GPU 負(fù)責(zé)加速計(jì)算: GPU 將計(jì)算密集型任務(wù),如深度學(xué)習(xí)模型的訓(xùn)練、圖像渲染等,卸載到 GPU上執(zhí)行,從而加速應(yīng)用程序的運(yùn)行速度。
(3)異構(gòu)計(jì)算: 現(xiàn)代計(jì)算系統(tǒng)采用了異構(gòu)計(jì)算的架構(gòu),將 CPU 和 GPU 結(jié)合起來,以發(fā)揮各自的優(yōu)勢。
接下來,我們來了解一下 CPU 與 GPU 設(shè)備生產(chǎn)廠商,具體可參考如下所示:
三、GPU 是如何工作的 ?
現(xiàn)代 GPU 通常采用大規(guī)模并行架構(gòu)設(shè)計(jì),包含數(shù)以千計(jì)的小型處理核心。每個(gè)處理核心都擁有自己的寄存器和共享內(nèi)存塊,用于存儲數(shù)據(jù)和程序指令。GPU 本身還配備了一定容量的板載內(nèi)存(稱為“Device Memory”或顯存),用于存儲大量運(yùn)算數(shù)據(jù)及中間結(jié)果。
通常而言,不同 GPU 的具體工作方式會有所不同,取決于其設(shè)計(jì)用途、制造商、芯片架構(gòu)以及協(xié)調(diào) GPU 運(yùn)行的軟件和編程框架。例如,英偉達(dá)公司開發(fā)的 CUDA(Compute Unified Device Architecture)并行計(jì)算平臺,專門為開發(fā)人員提供了一套工具和 API,使他們能夠充分利用 GPU 的并行計(jì)算能力,針對廣泛的通用并行計(jì)算應(yīng)用進(jìn)行 GPU 加速。
根據(jù)與主機(jī)系統(tǒng)的集成方式不同,GPU可以分為獨(dú)立顯卡 GPU(離散 GPU)和集成 GPU(iGPU)兩大類:
1. 離散 GPU
離散 GPU 是一種獨(dú)立的專用芯片,主要用于圖形渲染、科學(xué)計(jì)算、機(jī)器學(xué)習(xí)等密集型并行計(jì)算任務(wù)。離散 GPU 通常安裝在插入主板的獨(dú)立顯卡上。除了用于圖形渲染外,現(xiàn)代離散 GPU 也廣泛應(yīng)用于深度學(xué)習(xí)訓(xùn)練、科學(xué)模擬等領(lǐng)域,用作通用并行加速器。
2. 集成 GPU
相對比于離散 GPU,集成 GPU 則是將 GPU 核心與 CPU 集成在同一個(gè)芯片組(SoC)上的設(shè)計(jì)。最初的 iGPU 主要應(yīng)用于普通桌面計(jì)算和低端游戲,如英特爾酷睿和賽揚(yáng)系列處理器的集成顯卡。近年來,隨著移動設(shè)備的飛速發(fā)展,ARM 等公司也推出了將 CPU 和 GPU 高度集成到單芯片 SoC 中的產(chǎn)品,廣泛應(yīng)用于智能手機(jī)、平板電腦等移動設(shè)備。
除了物理 GPU 之外,虛擬 GPU(vGPU)也逐漸興起。vGPU 是基于軟件虛擬化技術(shù)實(shí)現(xiàn)的 GPU,可在云服務(wù)器實(shí)例上與其他虛擬 GPU 共享底層物理 GPU 資源。用戶可靈活地調(diào)配和使用 vGPU 資源,而無需關(guān)注底層硬件的具體情況,極大簡化了 GPU 加速計(jì)算的部署和管理。
無論是離散 GPU、集成 GPU 還是虛擬 GPU,三者都為現(xiàn)代計(jì)算系統(tǒng)提供了強(qiáng)大的并行計(jì)算加速能力,顯著提升了圖形渲染、科學(xué)計(jì)算、人工智能等領(lǐng)域的性能表現(xiàn),推動了各個(gè)行業(yè)的技術(shù)創(chuàng)新和發(fā)展。
四、GPU 是 Video Card (顯卡)嗎 ?
GPU(圖形處理單元)和顯卡這兩個(gè)名詞雖然常常交替使用,但在實(shí)際的計(jì)算場景中,兩者并不是完全等同的概念。二者之間存在著細(xì)微但重要的區(qū)別:
顯卡(Video Card)也被稱為“獨(dú)立顯卡”或“顯卡板(Graphics Card)”,是一種可拆卸的擴(kuò)展板,需要插入計(jì)算機(jī)主板上的專用插槽(如 PCI-E 插槽)才能使用。顯卡本身是一個(gè)獨(dú)立的硬件單元,包含了 GPU 芯片作為其核心組件,同時(shí)還集成了視頻內(nèi)存(VRAM)、視頻輸出接口(HDMI、DisplayPort 等)、輔助電源接口、散熱模組等多個(gè)部件。
而 GPU(Graphics Processing Unit)則是指顯卡上的圖形處理芯片本身,是實(shí)現(xiàn)圖形渲染和并行計(jì)算的關(guān)鍵硬件。GPU 芯片通常采用高度并行的多核心設(shè)計(jì),能夠同時(shí)執(zhí)行海量的數(shù)據(jù)運(yùn)算,以提供強(qiáng)大的圖形渲染和通用計(jì)算能力。
除了集成在獨(dú)立顯卡之上,GPU 也可以直接內(nèi)置在計(jì)算機(jī)主板芯片組中,或者與 CPU 集成在同一個(gè)芯片組(SoC)上,形成集成顯卡(Integrated Graphics)的設(shè)計(jì)。這種設(shè)計(jì)常見于筆記本電腦、平板電腦和低功耗桌面系統(tǒng)中,以獲得合理的圖形性能和節(jié)能表現(xiàn)。
因此,總的來說,GPU 是實(shí)現(xiàn)圖形渲染和通用并行計(jì)算的核心硬件,而顯卡則是將 GPU 和其他必需部件集成在一起的擴(kuò)展板形式。獨(dú)立顯卡通常擁有更強(qiáng)大的 GPU 和更多視頻內(nèi)存,能夠提供卓越的圖形性能和計(jì)算加速能力,適用于高端游戲、工作站、專業(yè)繪圖等領(lǐng)域。而集成顯卡則在成本、尺寸和功耗方面具有優(yōu)勢,更適合日常辦公和媒體娛樂等基本需求。
從本質(zhì)上來講,兩者在硬件架構(gòu)和定位上存在差異,但都是現(xiàn)代計(jì)算系統(tǒng)中不可或缺的關(guān)鍵組成部分,共同推動著圖形圖像處理和并行計(jì)算技術(shù)的飛速發(fā)展。
五、為什么需要 GPU 以及應(yīng)用場景有哪些 ?
GPU(圖形處理單元)之所以被廣泛需求和應(yīng)用,主要是源于其獨(dú)特的高度并行計(jì)算架構(gòu),能夠顯著提升許多數(shù)據(jù)密集型應(yīng)用的計(jì)算性能。以下是需要 GPU 及其典型應(yīng)用場景:
1. 專業(yè)可視化
GPU 不僅在娛樂領(lǐng)域發(fā)揮作用,還在專業(yè)應(yīng)用中表現(xiàn)突出。例如,在 CAD(計(jì)算機(jī)輔助設(shè)計(jì))繪圖、視頻編輯、產(chǎn)品演示與交互、醫(yī)療成像和地震成像中,GPU 為處理和渲染復(fù)雜的圖形提供了強(qiáng)大的計(jì)算能力。這些應(yīng)用程序通常需要處理大量數(shù)據(jù)和復(fù)雜的圖像處理任務(wù),GPU 的并行處理能力使其成為這些任務(wù)的理想選擇。此外,隨著 WebGL 等瀏覽器技術(shù)的發(fā)展,基于瀏覽器的應(yīng)用程序現(xiàn)在也可以利用 GPU 的強(qiáng)大性能,提供高效的在線圖形渲染和互動體驗(yàn)。
2. 機(jī)器學(xué)習(xí)領(lǐng)域
在機(jī)器學(xué)習(xí)(ML)領(lǐng)域,GPU 的作用日益顯著。訓(xùn)練復(fù)雜的機(jī)器學(xué)習(xí)模型通常需要大量的計(jì)算能力,而 GPU 憑借其并行處理架構(gòu),可以顯著加速這一過程。對于那些在本地硬件上訓(xùn)練模型的人來說,這可能需要數(shù)天甚至數(shù)周的時(shí)間,而借助云端 GPU 資源,模型訓(xùn)練可以在數(shù)小時(shí)內(nèi)完成。這種高效的計(jì)算能力,使得 GPU 成為深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)訓(xùn)練的標(biāo)準(zhǔn)工具。
3. 區(qū)塊鏈場景
在區(qū)塊鏈技術(shù)中,GPU 同樣扮演著關(guān)鍵角色。尤其是在使用工作量證明(Proof of Work, PoW)算法的加密貨幣中,GPU 通常是進(jìn)行復(fù)雜哈希運(yùn)算的首選硬件。雖然特定于應(yīng)用的集成電路(ASIC)正在成為 GPU 的替代品,但 GPU 仍然是許多加密貨幣礦工的首選,特別是在需要更高靈活性的場合。盡管股權(quán)證明(Proof of Stake, PoS)等區(qū)塊鏈算法正在崛起,并減少了對大量計(jì)算資源的需求,但工作量證明的使用仍然廣泛存在于行業(yè)中。
4. 模擬技術(shù)
在高端模擬領(lǐng)域,GPU 的應(yīng)用極為廣泛。包括分子動力學(xué)、天氣預(yù)報(bào)、天體物理學(xué)等領(lǐng)域的模擬應(yīng)用,都是通過 GPU 來實(shí)現(xiàn)復(fù)雜計(jì)算的。GPU 憑借其強(qiáng)大的并行計(jì)算能力,能夠快速處理和模擬大規(guī)模的物理系統(tǒng)。此外,在汽車和大型車輛的設(shè)計(jì)中,涉及流體動力學(xué)等復(fù)雜模擬的應(yīng)用也依賴于 GPU 的強(qiáng)大計(jì)算能力,以進(jìn)行精確的建模和仿真,幫助工程師優(yōu)化設(shè)計(jì)并減少物理測試的需求。
當(dāng)然,除了上述領(lǐng)域外,GPU 在其他的場景中應(yīng)用也是蠻廣泛的,尤其是隨著人工智能技術(shù)的蓬勃發(fā)展,越來越多基于 AI 技術(shù)的業(yè)務(wù)場景都需要 GPU 為其賦能,加速業(yè)務(wù)落地。