今天這篇文章,我們繼續(xù)來(lái)聊聊芯片。
在之前的文章里,小棗君說(shuō)過(guò),行業(yè)里通常會(huì)把半導(dǎo)體芯片分為數(shù)字芯片和模擬芯片。其中,數(shù)字芯片的市場(chǎng)規(guī)模占比較大,達(dá)到70%左右。
數(shù)字芯片,還可以進(jìn)一步細(xì)分,分為:邏輯芯片、存儲(chǔ)芯片以及微控制單元(MCU)。
存儲(chǔ)芯片和MCU以后再介紹,今天小棗君重點(diǎn)講講邏輯芯片。
邏輯芯片,其實(shí)說(shuō)白了就是計(jì)算芯片。它包含了各種邏輯門(mén)電路,可以實(shí)現(xiàn)運(yùn)算與邏輯判斷功能,是最常見(jiàn)的芯片之一。
大家經(jīng)常聽(tīng)說(shuō)的CPU、GPU、FPGA、ASIC,全部都屬于邏輯芯片。而現(xiàn)在特別火爆的AI,用到的所謂“AI芯片”,也主要是指它們。
CPU(中央處理器)
先說(shuō)說(shuō)大家最熟悉的CPU,英文全稱Central Processing Unit,中央處理器。
CPU
但凡是個(gè)人都知道,CPU是計(jì)算機(jī)的心臟。
現(xiàn)代計(jì)算機(jī),都是基于1940年代誕生的馮·諾依曼架構(gòu)。在這個(gè)架構(gòu)中,包括了運(yùn)算器(也叫邏輯運(yùn)算單元,ALU)、控制器(CU)、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備等組成部分。
馮·諾依曼架構(gòu)
數(shù)據(jù)來(lái)了,會(huì)先放到存儲(chǔ)器。然后,控制器會(huì)從存儲(chǔ)器拿到相應(yīng)數(shù)據(jù),再交給運(yùn)算器進(jìn)行運(yùn)算。運(yùn)算完成后,再把結(jié)果返回到存儲(chǔ)器。
這個(gè)流程,還有一個(gè)更有逼格的叫法:“Fetch(取指)-Decode(譯碼)- Execute(執(zhí)行)-Memory Access(訪存)-Write Back(寫(xiě)回)”。
大家看到了,運(yùn)算器和控制器這兩個(gè)核心功能,都是由CPU負(fù)責(zé)承擔(dān)的。
具體來(lái)說(shuō),運(yùn)算器(包括加法器、減法器、乘法器、除法器),負(fù)責(zé)執(zhí)行算術(shù)和邏輯運(yùn)算,是真正干活的??刂破?,負(fù)責(zé)從內(nèi)存中讀取指令、解碼指令、執(zhí)行指令,是指手畫(huà)腳的。
除了運(yùn)算器和控制器之外,CPU還包括時(shí)鐘模塊和寄存器(高速緩存)等組件。
時(shí)鐘模塊負(fù)責(zé)管理CPU的時(shí)間,為CPU提供穩(wěn)定的時(shí)基。它通過(guò)周期性地發(fā)出信號(hào),驅(qū)動(dòng)CPU中的所有操作,調(diào)度各個(gè)模塊的工作。
寄存器是CPU中的高速存儲(chǔ)器,用于暫時(shí)保存指令和數(shù)據(jù)。它的CPU與內(nèi)存(RAM)之間的“緩沖”,速度比一般的內(nèi)存更快,避免內(nèi)存“拖累”CPU的工作。
寄存器的容量和存取性能,可以影響CPU到對(duì)內(nèi)存的訪問(wèn)次數(shù),進(jìn)而影響整個(gè)系統(tǒng)的效率。后面我們講存儲(chǔ)芯片的時(shí)候,還會(huì)提到它。
CPU一般會(huì)基于指令集架構(gòu)進(jìn)行分類,包括x86架構(gòu)和非x86架構(gòu)。x86基本上都是復(fù)雜指令集(CISC),而非x86基本為精簡(jiǎn)指令集(RISC)。
PC和大部分服務(wù)器用的是x86架構(gòu),英特爾和AMD公司占據(jù)主導(dǎo)地位。非x86架構(gòu)的類型比較多,這些年崛起速度很快,主要有ARM、MIPS、Power、RISC-V、Alpha等。以后會(huì)專門(mén)介紹。
GPU(圖形處理器)
再來(lái)看看GPU。
GPU是顯卡的核心部件,英文全名叫Graphics Processing Unit,圖形處理單元(圖形處理器)。
GPU并不能和顯卡劃等號(hào)。顯卡除了GPU之外,還包括顯存、VRM穩(wěn)壓模塊、MRAM芯片、總線、風(fēng)扇、外圍設(shè)備接口等。
1999年,英偉達(dá)(NVIDIA)公司率先提出了GPU的概念。
之所以要提出GPU,是因?yàn)?0年代游戲和多媒體業(yè)務(wù)高速發(fā)展。這些業(yè)務(wù)給計(jì)算機(jī)的3D圖形處理和渲染能力提出了更高的要求。傳統(tǒng)CPU搞不定,所以引入了GPU,分擔(dān)這方面的工作。
根據(jù)形態(tài),GPU可分為獨(dú)立GPU(dGPU,discrete/dedicated GPU)和集成GPU(iGPU,integrated GPU),也就是常說(shuō)的獨(dú)顯、集顯。
GPU也是計(jì)算芯片。所以,它和CPU一樣,包括了運(yùn)算器、控制器和寄存器等組件。
但是,因?yàn)镚PU主要負(fù)責(zé)圖形處理任務(wù),所以,它的內(nèi)部架構(gòu)和CPU存在很大的不同。
如上圖所示,CPU的內(nèi)核(包括了ALU)數(shù)量比較少,最多只有幾十個(gè)。但是,CPU有大量的緩存(Cache)和復(fù)雜的控制器(CU)。
這樣設(shè)計(jì)的原因,是因?yàn)镃PU是一個(gè)通用處理器。作為計(jì)算機(jī)的主核心,它的任務(wù)非常復(fù)雜,既要應(yīng)對(duì)不同類型的數(shù)據(jù)計(jì)算,還要響應(yīng)人機(jī)交互。
復(fù)雜的條件和分支,還有任務(wù)之間的同步協(xié)調(diào),會(huì)帶來(lái)大量的分支跳轉(zhuǎn)和中斷處理工作。它需要更大的緩存,保存各種任務(wù)狀態(tài),以降低任務(wù)切換時(shí)的時(shí)延。它也需要更復(fù)雜的控制器,進(jìn)行邏輯控制和調(diào)度。
CPU的強(qiáng)項(xiàng)是管理和調(diào)度。真正干活的功能,反而不強(qiáng)(ALU占比大約5%~20%)。
如果我們把處理器看成是一個(gè)餐廳的話,CPU就像一個(gè)擁有幾十名高級(jí)廚師的全能型餐廳。這個(gè)餐廳什么菜系都能做,但是,因?yàn)椴讼刀?,所以需要花費(fèi)大量的時(shí)間協(xié)調(diào)、配菜,上菜的速度相對(duì)比較慢。
而GPU則完全不同。
GPU為圖形處理而生,任務(wù)非常明確且單一。它要做的,就是圖形渲染。圖形是由海量像素點(diǎn)組成的,屬于類型高度統(tǒng)一、相互無(wú)依賴的大規(guī)模數(shù)據(jù)。
所以,GPU的任務(wù),是在最短的時(shí)間里,完成大量同質(zhì)化數(shù)據(jù)的并行運(yùn)算。所謂調(diào)度和協(xié)調(diào)的“雜活”,反而很少。
并行計(jì)算,當(dāng)然需要更多的核啊。
如前圖所示,GPU的內(nèi)核數(shù),遠(yuǎn)遠(yuǎn)超過(guò)CPU,可以達(dá)到幾千個(gè)甚至上萬(wàn)個(gè)(也因此被稱為“眾核”)。
RTX4090有16384個(gè)流處理器
GPU的核,稱為流式多處理器(Stream Multi-processor,SM),是一個(gè)獨(dú)立的任務(wù)處理單元。
在整個(gè)GPU中,會(huì)劃分為多個(gè)流式處理區(qū)。每個(gè)處理區(qū),包含數(shù)百個(gè)內(nèi)核。每個(gè)內(nèi)核,相當(dāng)于一顆簡(jiǎn)化版的CPU,具備整數(shù)運(yùn)算和浮點(diǎn)運(yùn)算的功能,以及排隊(duì)和結(jié)果收集功能。
GPU的控制器功能簡(jiǎn)單,緩存也比較少。它的ALU占比,可以達(dá)到80%以上。
雖然GPU單核的處理能力弱于CPU,但是數(shù)量龐大,非常適合高強(qiáng)度并行計(jì)算。同等晶體管規(guī)模條件下,它的算力,反而比CPU更強(qiáng)。
還是以餐廳為例。GPU就像一個(gè)擁有成千上萬(wàn)名初級(jí)廚師的單一型餐廳。它只適合做某種指定菜系。但是,因?yàn)閺N師多,配菜簡(jiǎn)單,所以大家一起炒,上菜速度反而快。
CPU vs GPU
GPU與AI計(jì)算
大家都知道,現(xiàn)在的AI計(jì)算,都在搶購(gòu)GPU。英偉達(dá)也因此賺得盆滿缽滿。為什么會(huì)這樣呢?
原因很簡(jiǎn)單,因?yàn)锳I計(jì)算和圖形計(jì)算一樣,也包含了大量的高強(qiáng)度并行計(jì)算任務(wù)。
深度學(xué)習(xí)是目前最主流的人工智能算法。從過(guò)程來(lái)看,包括訓(xùn)練(training)和推理(inference)兩個(gè)環(huán)節(jié)。
在訓(xùn)練環(huán)節(jié),通過(guò)投喂大量的數(shù)據(jù),訓(xùn)練出一個(gè)復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。在推理環(huán)節(jié),利用訓(xùn)練好的模型,使用大量數(shù)據(jù)推理出各種結(jié)論。
訓(xùn)練環(huán)節(jié)由于涉及海量的訓(xùn)練數(shù)據(jù),以及復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),所以需要的計(jì)算規(guī)模非常龐大,對(duì)芯片的算力性能要求比較高。而推理環(huán)節(jié),對(duì)簡(jiǎn)單指定的重復(fù)計(jì)算和低延遲的要求很高。
它們所采用的具體算法,包括矩陣相乘、卷積、循環(huán)層、梯度運(yùn)算等,分解為大量并行任務(wù),可以有效縮短任務(wù)完成的時(shí)間。
GPU憑借自身強(qiáng)悍的并行計(jì)算能力以及內(nèi)存帶寬,可以很好地應(yīng)對(duì)訓(xùn)練和推理任務(wù),已經(jīng)成為業(yè)界在深度學(xué)習(xí)領(lǐng)域的首選解決方案。
目前,大部分企業(yè)的AI訓(xùn)練,采用的是英偉達(dá)的GPU集群。如果進(jìn)行合理優(yōu)化,一塊GPU卡,可以提供相當(dāng)于數(shù)十其至上百臺(tái)CPU服務(wù)器的算力。
不過(guò),在推理環(huán)節(jié),GPU的市場(chǎng)份額占比并沒(méi)有那么高。具體原因我們后面會(huì)講。
將GPU應(yīng)用于圖形之外的計(jì)算,最早源于2003年。
那一年,GPGPU(General Purpose computing on GPU,基于GPU的通用計(jì)算)的概念首次被提出。意指利用GPU的計(jì)算能力,在非圖形處理領(lǐng)域進(jìn)行更通用、更廣泛的科學(xué)計(jì)算。
GPGPU在傳統(tǒng)GPU的基礎(chǔ)上,進(jìn)行了進(jìn)一步的優(yōu)化設(shè)計(jì),使之更適合高性能并行計(jì)算。
2009年,斯坦福的幾位學(xué)者,首次展示了利用GPU訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的成果,引起了轟動(dòng)。
幾年后,2012年,神經(jīng)網(wǎng)絡(luò)之父杰弗里·辛頓(Geoffrey Hinton)的兩個(gè)學(xué)生——亞歷克斯·克里切夫斯基(Alex Krizhevsky)、伊利亞·蘇茨克沃(Ilya Sutskever),利用“深度學(xué)習(xí)+GPU”的方案,提出了深度神經(jīng)網(wǎng)絡(luò)AlexNet,將識(shí)別成功率從74%提升到85%,一舉贏得Image Net挑戰(zhàn)賽的冠軍。
這徹底引爆了“AI+GPU”的浪潮。英偉達(dá)公司迅速跟進(jìn),砸了大量的資源,在三年時(shí)間里,將GPU性能提升了65倍。
除了硬剛算力之外,他們還積極構(gòu)建圍繞GPU的開(kāi)發(fā)生態(tài)。他們建立了基于自家GPU的CUDA(Compute Unified Device Architecture)生態(tài)系統(tǒng),提供完善的開(kāi)發(fā)環(huán)境和方案,幫助開(kāi)發(fā)人員更容易地使用GPU進(jìn)行深度學(xué)習(xí)開(kāi)發(fā)或高性能運(yùn)算。
這些早期的精心布局,最終幫助英偉達(dá)在AIGC爆發(fā)時(shí)收獲了巨大的紅利。目前,他們市值高達(dá)1.22萬(wàn)億美元(英特爾的近6倍),是名副其實(shí)的“AI無(wú)冕之王”。
那么,AI時(shí)代的計(jì)算,是不是GPU一家通吃呢?我們經(jīng)常聽(tīng)說(shuō)的FPGA和ASIC,好像也是不錯(cuò)的計(jì)算芯片。它們的區(qū)別和優(yōu)勢(shì)在哪里呢?
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229649 -
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423131 -
gpu
+關(guān)注
關(guān)注
28文章
4729瀏覽量
128890 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268882
原文標(biāo)題:【光電集成】AI計(jì)算,為什么要用GPU?
文章出處:【微信號(hào):今日光電,微信公眾號(hào):今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論