本文系基於公開資料撰寫,僅作為資訊交流之用,不構成任何投資建議。
進入大模型時代,全社會算力需求被推高到了前所未有的程度。
2024年1月,聯合創始人比爾·蓋茨與OpenAI執行長山姆·奧特曼進行了一次對話,奧特曼在對話中表示人工智慧將引發人類歷史上“最快”的一次技術革命,人類可能還沒有準備好以多快的速度適應這種變革。奧特曼預計,這項技術將迅速發展,使系統的計算能力達到GPT-4的10萬倍或100萬倍。
簡單來說,用於人工智慧計算的GPU晶片遠遠不夠用了。
2024年1月,Meta公司CEO扎克伯格宣佈到今年年底將需要大約35萬塊英偉達H100,將其他GPU包括在內的話,算力總水平相當於近60萬塊H100,而60萬塊H100的採購費用保守估計約90億美元。
在中國市場,不僅、騰訊等網際網路和雲公司紛紛囤積GPU,甚至像蓮花味精這樣的上市公司也斥資6.93億採購了330臺英偉達H800 GPU,更不用說各種在建智算中心。
而為應對GPU全球供應短缺問題,以及美國對GPU的出口限制問題,當然更重要的是在AI場景下降低成本,於是市場上湧現了各類異構AI晶片。
由於大模型AI對於全社會的重要性,以及各行各業加快建設智算中心,也引發了全社會學習異構AI晶片的熱潮,即使是企業領導幹部也需要了解一些異構AI晶片的知識。
01
從基本的計算機原理講起
在瞭解相關CPU、GPU等異構AI晶片的知識之前,讓我們先來了解一下基本的計算機原理。
現代計算機由處理器、記憶體、I/O(輸入/輸出)裝置三大部分構成。在處理器方面,一直以來都遵循馮·諾依曼架構,即處理器也是一個系統。處理器又叫中央處理單元(Central Processing Unit),即CPU。程式設計師透過輸入裝置發出指令,經過CPU和記憶體的處理,再將處理結果傳送到輸出裝置。
ISA指令集體系結構是處理器與程式設計師進行互動的方式,指令集是處理器指令的完整集合,體系結構是處理器系統的構建方式,特定的處理器需要配備相應的指令集,才能與程式設計師互動。32位處理器是指能夠處理32位指令和資料的CPU和計算機架構;64位處理器是指能夠處理64位指令和資料的CPU和計算機架構。
RISC即精簡指令集計算機架構,CISC即複雜指令集計算機架構,英特爾X86是典型的CISC架構,而MIPS(適用於嵌入式和消費級裝置)和ARMv8架構(適用於移動裝置、伺服器、網路裝置、物聯網裝置等)都是典型的RISC架構。RISC-V是一個基於RISC原則的開源指令集架構,RISC-V指令集可以自由地用於任何目的,允許任何人設計、製造和銷售RISC-V晶片和軟體。
CISC架構適用於通用計算任務的計算機。既然要完成各種通用計算任務,勢必帶來指令集的冗餘,因此CISC指令集中只有約20%的指令會經常被用到,其餘80%的指令則不經常被用到,這些不經常被用到的特殊指令讓CPU的設計變得非常複雜,也導致CPU的面積越來越大。而RISC架構只包含處理器常用的指令,對於不常用的操作,透過執行多條常用指令的方式來達到同樣的效果。
02
基礎晶片,從CPU到ASIC
CPU
理解了這些最基本的概念,讓我們來看一看CPU、GPU、FPGA、ASIC這幾種最基礎的異構晶片。 CPU通常指英特爾X86,AMD公司也生產X86架構CPU。 X86架構最早出現在上世紀70年代末的Intel 8086處理器上,後發展為80286、80386、80486等,逐步演化為現代的X86架構。
X86架構的特點包括屬於CISC架構,X86架構在個人計算機、伺服器和工作站市場佔主流地位,具有很高的相容性,能夠執行大量軟體和作業系統,無需重新編寫或修改就可以移植軟體,X86架構引入了64位處理器,能夠處理更大的內容和資料,而由於X86架構支援多核心處理等,適合執行虛擬機器,因而也在虛擬化和雲計算中得到了廣泛應用。
當然,在英特爾和AMD之前是大型主機和小型機的年代。整個現代PC產業主要指X86架構的個人計算機、伺服器和工作站以及基於這些硬體的軟硬體生態。而整個現代PC產業和之前的小型機產業都是IBM大型主機技術降維應用的紅利。
在1960年代初,IBM投入了50億美元開發大型主機,這相當於今天接近400億美元的投資。1969年,人類第一位宇航員登陸月球,而在阿波羅登月專案中,IBM大型主機System360做出了重要貢獻。IBM大型主機技術孵化了後來的小型機以及整個現代PC與PC伺服器產業。
與PC和PC伺服器不同,大型主機和小型機都是高度整合的系統,而不像X86那樣易用化、模組化、工業標準化,從而支撐起龐大的軟體產業和使用者群。
今天,大型主機和小型機仍然在進化和使用中,但其使用者群主要集中在頂級金融機構或對效能和安全性要求超高的企業或政府機構。大型主機和小型機的CPU處理器與X86架構CPU處理器不同,目前主要由IBM維護和推出新的大型主機與小型機CPU。
在馮·諾依曼架構下,CPU也是一個系統,今天已經發展成為超大規模積體電路。X86 CPU從單核到雙核以及包含更多核心的CPU,越來越複雜、效能也越來越高。最新的第五代英特爾至強伺服器CPU最高支援64個核心,AMD已經發布的第四代EPYC霄龍伺服器CPU最高支援96個核心;而根據有關披露,即將釋出的第六代至強伺服器CPU最高將支援288個核心(能效核)。
當然,僅從核心數量並不能判定CPU效能的高低,英特爾與AMD對於核心的定義也各不相同。但一個CPU處理器內將容納更多的核心,甚至是異構晶片,將是CPU的發展趨勢。
PCIe是一種高速序列計算機擴充套件匯流排標準,是當前主流的片間互連高速匯流排,為主機板上的各類外設以及擴充套件卡等提供與CPU之間的高速連線。PCIe由PCI發展而來,PCI外設元件互連匯流排由英特爾公司在1991年推出,允許在當時的計算機內安裝多達10個遵從PCI標準的擴充套件卡。PCIe擴充套件了PCI的效能,支援邏輯隔離的多個虛擬裝置。
ASIC
再回到指令集和指令集架構。 在現代計算機產業中,根據指令的複雜度,處理器分為CPU、Coprocessor協處理器、GPU(圖形處理器)、FPGA()、DSA(特定領域加速器)和ASIC(專用積體電路)等,按從CPU到ASIC的順序,通用性、靈活性和成本不斷降低,面積也越來越小,但在應對特定計算場景的效能不斷提升,其中CPU是能夠獨立執行的處理器,其它處理器則需要在CPU的協助下執行。
接下來先看一下ASIC專用積體電路。ASIC與CPU可以說是天平的兩端,CPU是一個硬體與軟體解耦的架構,而ASIC是硬體與軟體高度整合的架構。ASIC為特定應用而設計,可以透過定製化設計,以滿足特定應用的需求。與通用晶片相比,ASIC具有更高的效率和更低的功耗。
由於ASIC是完全不可程式設計的定製處理引擎,因此理論上也具有最複雜的“指令”以及最高的效能效率。因為每種ASIC可覆蓋的場景非常小,因此需要數量眾多的ASIC處理引擎,才能覆蓋各類場景。
例如,在網路交換機中常採用ASIC晶片,用於交換機所有埠之間直接並行轉發資料,以提高交換機高速轉發資料效能;ASIC也被用於各種汽車系統,包括ADAS高階駕駛員輔助系統、發動機控制單元和資訊娛樂系統等;在消費電子裝置、醫療裝置和工業控制系統中,也大量應用了ASIC晶片。
進入人工智慧時代,ASIC晶片還被用於NPU、TPU等人工智慧演算法專用晶片。由於ASIC廠商眾多,不同的ASIC廠商推出各種的程式語言,可謂五花八門、各不相同,因此ASIC晶片很難培養起龐大的生態。
FPGA
理解了ASIC,那麼FPGA就是處於CPU與ASIC之間的一種積體電路。 FPGA又稱現場可程式設計門陣列,是ASIC專用積體電路領域中的一種半定製電路,是可重複程式設計的裝置。
一般來說,FPGA比ASIC的速度慢,實現同樣功能要比ASIC電路面積大,功耗、成本等都高於ASIC,但是可以快速成品,可以被修改。由於可重複程式設計的特點,FPGA的通用性要比ASIC更好。FPGA無需像ASIC設計那樣要經過數百萬美元的流片階段,也不用承擔流片失敗的風險。因此,FPGA通常用於ASIC晶片的驗證。
FPGA本質上是平行計算,這種並行處理能力使得 FPGA在高速資料處理的應用中表現出色,例如數字訊號處理、影象處理和加密等。同樣,在人工智慧時代,FPGA也被用於人工智慧演算法處理。特別是AI演算法推陳出新,對硬體的算力及靈活度都有較高要求,而FPGA正好符合了這樣的需求。
DSA
接下來看DSA特定領域加速器。 DSA是一種針對特定領域定製的可程式設計處理器,能夠用於加速某些應用程式,實現更好的效能和價效比。 DSA介於FPGA與ASIC之間,ASIC是完全不能程式設計的軟硬體高度整合的定製晶片,FPGA是面向不同領域的可程式設計處理器,而DSA則是專門面向特定領域的可程式設計處理器。
由此可見,DSA的靈活性在FPGA與ASIC之間,成本、功耗等也在二者之間。
DSA的好處就是能夠面向特定領域,形成自己的生態,只要該領域的市場足夠大,比如人工智慧計算加速、圖形渲染加速等。某種程度上,GPU就是基於DSA思路而設計開發的產品。
隨著摩爾定律的失效,現代計算機專家們認為DSA能夠提高CPU處理器的效率和速度。2017年,圖靈獎獲得者John Hennessy與David Patterson聯合發表了“計算機體系架構的黃金年代”文章,指出由於目前通用計算的效能瓶頸,需要面向不同應用場景開發針對性最佳化的架構,他們給出的解決方案就是DSA。
DSA既是一種架構,也是一種設計理念。狹義的DSA基於ASIC實現,廣義的DSA基於FPGA實現,或者基於顆粒度更小的Chiplet小晶片整合起來實現。
所謂Chiplet,即將一個大晶片裸片(Die)切成小晶片,切下來的小晶片是已經完成了設計、製造、測試流程的成品小裸片,只需要一次封裝加工就可以使用,既可以複用給其他晶片,也可以將眾多Chiplet整合起來實現新的功能。DNN深度神經網路是DSA應用的一個重要領域。
GPU
那麼接下來讓我們瞭解一下當下最火爆的GPU。 GPU又稱圖形處理器,目前分為消費級GPU和資料中心級GPU。 消費級GPU主要用於遊戲電腦、設計、3D顯示等場景,而資料中心級GPU主要用於人工智慧場景。
CPU與GPU最大的區別之一是CPU是基於序列計算,而GPU是基於平行計算,這讓GPU天然就適合基於平行計算的人工智慧演算法。
GPU作為一種DSA,在設計上就是專門為了需要大規模平行計算的圖形處理而生,因此GPU的核心數通常遠超CPU,可達512核甚至更多,但GPU也沒有CPU上那麼 多適用通用計算的元件。 典型的GPU廠商有NVIDIA英偉達、AMD、英特爾等。
首個現代通用GPU架構(即GPGPU)由英偉達在2006年推出,這就是Tesla。Tesla採用全新的CUDA架構,支援C語言對GPU程式設計,可用於通用資料的平行計算,標誌著GPU開始從專用圖形處理器轉變為通用資料並行處理器。
隨著英偉達公司釋出NVIDIA GPU專用程式設計庫CUDA,AMD和Apple等公司推出開源的OpenCL(Open Computing Language, 開放設計語言,是一個為異構平臺CPU/GPU/DSP/FPGA等等進行程式設計設計的框架),GPU開始在通用計算領域得到廣泛應用,如數值分析、海量資料處理、金融分析等等。
近年來,隨著人工智慧的大火,GPGPU也在深度學習演算法等人工智慧計算中廣泛應用。資料中心級GPU就是為了人工智慧的智算需求而生,英偉達A100、H100被認為是功能最強大的資料中心級GPU,也是各大人工智慧公司、雲廠商、網際網路公司等競相爭奪的資源。
Co-processor協處理器
所謂協處理器,顧名思義即協助CPU中央處理器完成各種計算任務的處理器,特別是協助中央處理器完成無法執行或執行效率、效果低下的處理任務而開發和應用的處理器,例如數學協處理器、圖形協處理器、音訊協處理器、網路協處理器或手機上的執行協處理器等。
協處理器通常被整合在計算機的主機板或者CPU內部,也可以作為外部裝置連線到主機板上。例如,早期的圖形協處理器Intel 82786,而今天的英特爾GPU也開始具備更強的能力,以應對英偉達對於GPU市場的壟斷。( 作者:北電數智(公眾號同名)) )