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