在計算機的(de)(de)世界中,CPU(中央處理(li)器)和(he)GPU(圖(tu)形處理(li)器)是兩個耳熟能詳的(de)(de)詞匯(hui)。隨著AI技術(shu)的(de)(de)認讀,作(zuo)為最(zui)重(zhong)要硬件(jian)支持之(zhi)一,GPU變成了AI、加密貨(huo)幣、科學研究等(deng)領域的(de)(de)“新寵”,甚至引發全球(qiu)爭搶,身價暴漲。作(zuo)為計算機性能的(de)(de)核(he)心組件(jian)之(zhi)一,GPU的(de)(de)性能優(you)劣也(ye)直(zhi)接(jie)影響著計算機在圖(tu)形處理(li)、游戲運行(xing)、視頻渲染等(deng)多(duo)方面的(de)(de)表現。
那么(me),為什么(me)算力支持現在(zai)(zai)在(zai)(zai)炒GPU,而不是CPU?為什么(me)GPU近(jin)年來突然“爆紅”?今天,就(jiu)帶大家了解一(yi)下關(guan)于(yu)GPU的(de)基本知識~
GPU:圖形處理小能手
什么是GPU?
GPU英(ying)文全(quan)稱為Graphics Processing Unit,即圖(tu)形處(chu)理(li)單元(圖(tu)形處(chu)理(li)器),它(ta)是顯(xian)卡的(de)(de)(de)核心部件,最初(chu)的(de)(de)(de)使命是處(chu)理(li)圖(tu)形渲染——比如游戲(xi)里光影(ying)、爆炸、建(jian)模(mo)等復(fu)雜畫面(mian)。在生活中,人們(men)常常把GPU和顯(xian)卡的(de)(de)(de)概念混為一談,實際(ji)上,顯(xian)卡除了GPU之外(wai),還包括顯(xian)存、供電(dian)模(mo)塊、散(san)熱器、風扇(shan)和各(ge)種接(jie)口(kou)(如顯(xian)示接(jie)口(kou)、通訊(xun)接(jie)口(kou)、供電(dian)接(jie)口(kou)等等)。它(ta)們(men)之間是不能畫等號(hao)的(de)(de)(de)。GPU的(de)(de)(de)主要特(te)點(dian)有核心數量(liang)多、并行處(chu)理(li)能力超強、適合處(chu)理(li)海量(liang)相似的(de)(de)(de)任務等。
GPU的歷史
20世紀90年代末,隨著游戲和(he)(he)多媒體業務(wu)的(de)蓬勃發展,人們對計(ji)算機(ji)的(de)3D圖(tu)形(xing)(xing)處理和(he)(he)渲(xuan)染能(neng)(neng)力提(ti)出(chu)了(le)更高的(de)要求。傳(chuan)統(tong)CPU雖(sui)然功能(neng)(neng)強大,但在處理這(zhe)(zhe)些(xie)圖(tu)形(xing)(xing)密集型任務(wu)時(shi)顯得力不(bu)從(cong)心。1999年,英偉達(NVIDIA)公司推出(chu)了(le)被廣泛認為是第一(yi)款真正(zheng)意義上(shang)(shang)的(de)GPU的(de)GeForce 256芯片(pian),每秒至少(shao)能(neng)(neng)處理1000萬個多邊形(xing)(xing)。這(zhe)(zhe)款芯片(pian)讓計(ji)算機(ji)圖(tu)形(xing)(xing)處理工作完(wan)全不(bu)依(yi)賴CPU,而是在這(zhe)(zhe)款獨立(li)的(de)芯片(pian)上(shang)(shang)完(wan)成。其運算速度(du)比(bi)CPU快2-4倍,有(you)效減輕了(le)CPU的(de)負擔,大幅提(ti)升了(le)計(ji)算機(ji)的(de)圖(tu)形(xing)(xing)處理能(neng)(neng)力。就這(zhe)(zhe)樣(yang),GPU時(shi)代來臨了(le)。
GPU與CPU傻傻分不清楚 誰是圖形處理的王者?
CPU和(he)GPU都是計(ji)算機中的重要(yao)組(zu)成部分,但它們在功能和(he)設(she)計(ji)架構上有著(zhu)(zhu)顯著(zhu)(zhu)的區(qu)別。
CPU全稱是Central Processing Unit(中央處(chu)理單(dan)元),自計(ji)算(suan)(suan)機誕生(sheng)以來就是運算(suan)(suan)核心。作(zuo)為(wei)通(tong)用計(ji)算(suan)(suan)芯片(pian),它負責指令解析、任務調度、邏(luo)輯判斷、系統控(kong)制,是整(zheng)個設備的(de)大腦。而作(zuo)為(wei)并行(xing)計(ji)算(suan)(suan)芯片(pian),GPU則具備強大的(de)并行(xing)計(ji)算(suan)(suan)能力,對靈(ling)活性要求較(jiao)低,善(shan)于將復雜的(de)數學計(ji)算(suan)(suan)變為(wei)大量簡單(dan)和(he)重復的(de)任務,且GPU無(wu)法單(dan)獨(du)工作(zuo),需要被CPU調度管理。
從設計(ji)架構上來看,無論是CPU還(huan)是GPU,任何(he)處理器(qi)內部都由3部分(fen)組成,即(ji)算術(shu)邏輯單(dan)元(yuan)(核心ALU/CORE)、控制(zhi)單(dan)元(yuan)(CONTROL)以及緩存(CACHE)。而CPU和GPU這(zhe)三部分(fen)的架構占比完全不同。
CPU的核(he)心數(shu)較(jiao)少(通常2~64個(ge)(ge)),但(dan)每個(ge)(ge)核(he)心功能豐(feng)富,能力較(jiao)強(qiang)。CPU擁有大(da)量的緩存(cun)和復雜(za)的邏輯(ji)控制(zhi)單元,適合處理各(ge)種復雜(za)的任務。當程序擁有多個(ge)(ge)分(fen)支(zhi)的時候(hou),控制(zhi)單元通過分(fen)支(zhi)預測(ce)的能力來降低執行延遲。
而(er)GPU包含成百上千(qian)個較小(xiao)、更高(gao)效的核心(xin),這使(shi)得GPU在處(chu)理(li)視(shi)(shi)頻游戲(xi)、三維動畫、圖形設(she)計和(he)視(shi)(shi)頻編輯等視(shi)(shi)覺密集型任務(wu)時表現卓越。GPU的控(kong)制單(dan)元(yuan)也相對簡單(dan),圖形渲染的高(gao)度并(bing)(bing)行性,使(shi)GPU可以通過簡單(dan)增(zeng)加并(bing)(bing)行處(chu)理(li)單(dan)元(yuan)和(he)存儲器控(kong)制單(dan)元(yuan)的方式,提(ti)高(gao)處(chu)理(li)能力和(he)存儲器帶寬。
簡(jian)單來說,CPU更擅長復雜邏輯的運算(suan),而GPU構架(jia)相對簡(jian)單,但(dan)運算(suan)核心多,適用于大(da)量邏輯簡(jian)單但(dan)高并發(fa)量的高密(mi)度計(ji)算(suan)。
簡單類比一(yi)下,如果CPU是一(yi)個廠(chang)長(chang),GPU就是一(yi)整個車間的工人隊伍。每個工人可能(neng)能(neng)力不強,但(dan)一(yi)起(qi)動(dong)手效率驚人!
雖然CPU和GPU在功能和設計上有所不同,但它們之間并不是非此即彼的關系。在現代計算機中,CPU和GPU通常協同工作。CPU負責處理各種復雜的任務和邏輯判斷,而GPU則專注于圖形處理任務。這種協作模式使得計算機能夠在保持高性能的同時,還能有效地降低功耗。
AI與GPU
GPU從圖形計算拓展至通用計算
將(jiang)GPU應(ying)用(yong)于圖形之外的(de)(de)計(ji)算(suan)(suan),最早可(ke)追溯到2003年(nian)。彼時(shi),隨著計(ji)算(suan)(suan)機圖形復雜度不斷提升以及半(ban)導體技術的(de)(de)持續進步,GPU開始被用(yong)于通(tong)用(yong)計(ji)算(suan)(suan)(General Purpose computing on GPU,簡稱GPGPU),應(ying)用(yong)場景涵蓋科學(xue)模擬(ni)、數據分析和機器學(xue)習等領域。開發者借助專(zhuan)門的(de)(de)編程框架,如CUDA或(huo)OpenCL,通(tong)過編寫可(ke)在(zai)GPU上執行(xing)的(de)(de)代碼,利用(yong)其(qi)并行(xing)架構加速計(ji)算(suan)(suan),使GPU本(ben)質上成為能同時(shi)處理(li)多個計(ji)算(suan)(suan)任務的(de)(de)硬件加速器。
2006年,英偉達(da)推出(chu)CUDA(Compute Unified Device Architecture,計(ji)算統一設備架(jia)構),讓GPU在通用計(ji)算領(ling)域嶄露頭角,開始在科學(xue)模擬、金融分(fen)析(xi)和深度學(xue)習等領(ling)域發揮關鍵作用。深度學(xue)習尤其依賴(lai)GPU強大(da)(da)的并(bing)行(xing)處理能力(li),來進行(xing)大(da)(da)規模的矩陣(zhen)和向量(liang)計(ji)算。
2012年,谷歌大腦(Google Brain)團隊(dui)成(cheng)員Jeff Dean和吳恩達等通過深度(du)學習技術,斥資100萬(wan)美元,成(cheng)功(gong)讓16000臺電腦學習1000萬(wan)張圖片后,在YouTube視頻中“認出”了貓。
神(shen)(shen)經(jing)網絡(luo)之父杰弗里·辛頓(dun)(Geoffrey Hinton)知道這件事后(hou),認為如果利用GPU進行(xing)神(shen)(shen)經(jing)網絡(luo)訓練,則不需要消耗這么多(duo)資源。
于(yu)(yu)是(shi)他和自己的兩個(ge)學生亞歷克斯·克里切夫(fu)斯基(Alex Krizhevsky)、伊利(li)亞·蘇茨克沃(Ilya Sutskever),利(li)用(yong)“深度學習+GPU”的方案,推出(chu)了深度神經(jing)(jing)網絡(luo)(luo)模型(xing)“AlexNet”,其使用(yong)2個(ge)基于(yu)(yu)CUDA的GPU,進行神經(jing)(jing)網絡(luo)(luo)訓練,是(shi)第一(yi)個(ge)錯(cuo)誤率低于(yu)(yu)25個(ge)百(bai)分點的模型(xing)。該模型(xing)也一(yi)舉贏得Image Net大規模視覺識別挑戰賽(ILSVRC)的冠軍。
這次比賽(sai)后(hou)不久,谷歌大腦又將CPU替換成(cheng)GPU,重新進行了(le)讓計算(suan)機(ji)識別(bie)一只貓的實驗。實驗結果發現,僅用(yong)16臺電(dian)腦的64個GPU,就能(neng)達到之前(qian)相(xiang)同(tong)的效果。
AlexNet的推(tui)出(chu),進一步推(tui)動了GPU在(zai)AI深(shen)度學(xue)習(xi)領域的廣泛應用。此后,GPU在(zai)AI領域的應用還(huan)獲得了生(sheng)態支持。英偉(wei)達等(deng)公司(si)建立了基于(yu)自(zi)家GPU的CUDA生(sheng)態系統,提(ti)供(gong)完善的開(kai)發(fa)環境(jing)和方案,助力開(kai)發(fa)人員(yuan)更便捷地使用GPU進行深(shen)度學(xue)習(xi)開(kai)發(fa)或高性能運算。
AI青睞GPU的原因
如今,在(zai)(zai)AI計(ji)算(suan)領域,GPU的(de)(de)(de)地位從“邊緣配角(jiao)”走向了科(ke)技(ji)舞臺(tai)中央的(de)(de)(de)原因(yin)在(zai)(zai)于在(zai)(zai)其深度學習的(de)(de)(de)過(guo)程(cheng)需(xu)“投喂(wei)”大(da)量(liang)數據,這個過(guo)程(cheng)需(xu)要進行(xing)(xing)大(da)量(liang)矩陣(zhen)相(xiang)乘(cheng)、卷積等(deng)運(yun)算(suan),GPU憑借自身強大(da)的(de)(de)(de)并(bing)行(xing)(xing)計(ji)算(suan)能力(li)和內存帶寬恰(qia)好(hao)能夠很好(hao)地應(ying)對這些任務(wu)。在(zai)(zai)合(he)理優化的(de)(de)(de)情況下(xia),一塊GPU卡所能提供的(de)(de)(de)算(suan)力(li),相(xiang)當于數十(shi)臺(tai)至上百(bai)臺(tai)CPU服務(wu)器(qi)。
當(dang)然,在AI計算(suan)(suan)中,并非只有GPU“獨領(ling)風騷”。FPGA(現(xian)場可(ke)編程(cheng)門陣列)和(he)ASIC(專(zhuan)用(yong)集成電路)等計算(suan)(suan)芯片(pian)在AI領(ling)域也有廣泛(fan)應用(yong)。它們各(ge)有優勢,FPGA靈活(huo)可(ke)編程(cheng),適合快速迭代(dai)和(he)原型開發;ASIC則針對特定算(suan)(suan)法(fa)進行(xing)優化,性(xing)能更(geng)高、功耗更(geng)低。但無(wu)論如何,GPU在AI領(ling)域的(de)地位都不可(ke)撼動。
經過(guo)上述內容(rong)的(de)介紹,想必(bi)你對GPU已經有(you)了初步的(de)認識(shi)。如(ru)果說過(guo)去50年(nian)是CPU的(de)天下,那么未來(lai)50年(nian),GPU也許才是真(zhen)正的(de)主角。但這并不意味著CPU退出舞臺,而(er)是人類已經進(jin)入了一(yi)個“多計算架構協同(tong)”的(de)新時代。
今天(tian),我們用(yong)(yong)CPU瀏覽網頁、編(bian)輯文檔,用(yong)(yong)GPU啟動AI應用(yong)(yong)、訓練模型,用(yong)(yong)FPGA和NPU執行特定算法(fa)。計(ji)算正在(zai)(zai)成(cheng)為一(yi)種更(geng)靈活(huo)、更(geng)智能的服務,就(jiu)像水(shui)、電(dian)一(yi)樣流淌(tang)在(zai)(zai)我們生活(huo)中。
展望未來,隨著科技的持續革新(xin)與飛速發展,GPU的性能必將迎來更為顯著的飛躍,能效(xiao)比(bi)也將得到進一步優化(hua)提升。屆時,它將為各類復雜的應(ying)用場景提供更為強勁、高(gao)效(xiao)的支持,助力我們在數字世界中暢行無阻。
未來(lai)的“算力戰爭”,才剛(gang)剛(gang)開(kai)始。
參考資料:
1. 鳳凰(huang)網:《華裔科學家竟(jing)然用(yong)AI識別(bie)喵星人?》;
2. 阿里云:《什(shen)么是GPU?》;
3. 云計算科普研究所blibili:【什(shen)么是GPU?十(shi)分鐘帶(dai)你了解(jie)(jie)GPU的前世今生(sheng)!(GPU與CPU的區別)》《硬核(he)解(jie)(jie)析》從GPGPU到CUDA,看完(wan)秒懂GPU為何主宰AI !】;
4. 鮮棗課堂(tang):《AI計(ji)算,為什么要用GPU?》。