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