《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 深度解讀:1100個RISC-V內(nèi)核的AI芯片

深度解讀:1100個RISC-V內(nèi)核的AI芯片

2021-07-29
來源:半導體行業(yè)觀察
關(guān)鍵詞: AI 晶體管 RISC-V

  如果你去詢問十位不同的工程師,他們將如何設(shè)計 AI 加速器,您將獲得十種不同的方法來在現(xiàn)代前沿芯片上排列數(shù)十億個晶體管。

  來到 Esperanto Technologies方面,因為公司創(chuàng)始人Dave Ditzel 等人在CPU設(shè)計上擁有豐富的經(jīng)驗,所以他們對機器學習芯片設(shè)計有獨到的見解——如果一個定制 CPU 還不夠,那么兩種設(shè)計怎么樣?憑借近 240 億個晶體管的預算,Esperanto 設(shè)法在他們的第一個 AI 加速器 ET-SoC-1 上集成了1,100 個基于RISC-V設(shè)計的內(nèi)核。

  ET-SoC-1是“Esperanto Technologies Supercomputer-on-Chip 1”的簡稱。這是一款面向超大規(guī)模數(shù)據(jù)中心市場,是初創(chuàng)公司Esperanto的人工智能加速器系列的第一款產(chǎn)品。ET-SoC-1 是一款推理加速器,而不是訓練。雖然芯片的設(shè)計已經(jīng)完成,但截至今年早些時候,我們還沒看到任何他們的芯片。但早在2020年的時候,大家就對Esperanto有所討論。毫無疑問,公司的開發(fā)計劃顯然已經(jīng)推遲。因為如果新的時間表保持不變,那么芯片應該會在本季度回片,預計在 2022 年初投產(chǎn)。

  在其他 AI 初創(chuàng)公司已經(jīng)生產(chǎn)芯片樣品一年多之后,延遲兩年是代價是相當昂貴的。盡管如此,Esperanto終于準備好在 8 月舉行的 Hot Chips 33 會議上分享新芯片的技術(shù)細節(jié)。

  Esperanto Technologies 首席執(zhí)行官 Art Swift 發(fā)布了一些關(guān)于該芯片性能的披露。Swift 表示,“我們希望能在推薦網(wǎng)絡(recommendation networks)等關(guān)鍵工作負載上的性能提高多達 50 倍,圖像分類(image classifications)的性能提高多達 30 倍。”

  這些聲明指的是 ET-SoC-1 的全芯片仿真與“數(shù)據(jù)中心現(xiàn)有競爭對手”的測量推理基準測試的對比結(jié)果?!暗赡芨钊伺d奮和更重要的是我們的芯片能夠獲得更好的功耗表現(xiàn)。與現(xiàn)有解決方案相比,我們預計每瓦特推斷的能源效率將提高 100 倍,”他補充道。

  過于這些寬泛的性能陳述,我們必須持保留態(tài)度,但Esperanto說,我們可以期待在不久的將來看到已發(fā)布的表征硅結(jié)果。

  Tile Up

  Esperanto使用基于平鋪架構(gòu)(tiled architecture)的常規(guī)設(shè)計。該芯片使用該公司定制設(shè)計的 RISC-V 兼容 CPU 內(nèi)核,它使用具有傳統(tǒng)內(nèi)存層次結(jié)構(gòu)的標準 DDR4 內(nèi)存,并利用了所有可用的 RISC-V 軟件生態(tài)系統(tǒng)。換句話說,就所有實際目的而言,ET-SoC-1 作為標準 RISC-V 服務器 CPU 通過了Duck Test,盡管它有很多簡單的內(nèi)核,但在一般工作負載上卻表現(xiàn)不佳。

  事實上,Esperanto認為,正是出于這個原因,他們的解決方案在很大程度上是面向未來的。該公司表示,它結(jié)合了大量 CPU,可以從數(shù)百個內(nèi)核擴展到數(shù)千個內(nèi)核。事實上,由于 ET-SoC-1 是為數(shù)據(jù)中心設(shè)計的,對于邊緣推理等低功耗應用,我們可能會期待 ET-SoC-1 的相同縮減版本。什么時候Esperanto首先開始在極高的層次上談論他們的設(shè)計,他們將芯片的內(nèi)核數(shù)量推論為我們將在本文中討論的 ET-SoC-1 的 4 倍。如果 Esperanto 的設(shè)計證明了自己,那么在這樣的方向上擴展 ET-SoC-1 并不超出 Esperanto 的能力范圍。

  定制核心

  Esperanto走的是RISC-V路線。他們設(shè)計了兩個定制內(nèi)核——ET-Minion 和 ET-Maxion。顧名思義,ET-Maxion 是典型的大內(nèi)核設(shè)計,能夠運行 Linux 等標準操作系統(tǒng)。同樣,ET-Minion 是主力小型 CPU,具有用于處理矩陣乘法等操作的自定義張量擴展。在 ET-SoC-1 的上下文中,ET-Maxion 用作控制 CPU,而 ET-Minions 執(zhí)行繁重的數(shù)據(jù)處理。

  (1)ET-Maxion

  正如我們之前提到的,ET-Maxion 是一種定制的高性能大核設(shè)計。基于臺積電 7nm工藝設(shè)計并且頻率超過 2 GHz。

  ET-Maxion 實際上是加州大學伯克利分校亂序機器 (UC Berkeley Out-of-Order Machine :BOOM) v2 CPU 的一個分支,但是已經(jīng)進行了很多更改/改進以使其更具競爭力和商業(yè)產(chǎn)品所需的質(zhì)量,以至于在這一點上幾乎無法識別該譜系。

  事實上,開發(fā) BOOM 的 Chris Celio 已經(jīng)投奔Esperanto,從事 ET-Maxion 的研發(fā)工作(盡管自 2020 年以來,他以 CPU 架構(gòu)師的身份加入英特爾)。與 BOOM 相比,ET-Maxion 觸及了機器的方方面面。它更寬、更長、更大。整個前端重新設(shè)計,各種執(zhí)行單元重新設(shè)計。

  它具有新的當代最先進的分支預測器(branch predictors)和預取器(prefetchers)。有新的底層(ground-up)緩存和支持 ECC 的 TLB。最后,Esperanto增加了商業(yè)級芯片調(diào)試和性能監(jiān)控功能。在性能方面,據(jù)說 ET-Maxion 在 SPEC2006 的 ISO 頻率上略微落后于 Cortex-A72,但領(lǐng)先于 Cortex-A57。在 SiFive 最近宣布P550之前,ET-Maxion 可能是 RISC-V 世界中可用的最高性能內(nèi)核。最近,SiFive 推出了 P550 內(nèi)核,據(jù)稱該內(nèi)核在 2006 年的 SPECInt 得分為 8.65/GHz,在 IPC 中的表現(xiàn)明顯優(yōu)于 ET-Maxion(和 A72)。

  微信圖片_20210729094352.jpg

  ET-Maxion 是一個具有 10 級流水線的無序 CPU 內(nèi)核。內(nèi)核是一個四寬機器——每個周期能夠獲取 16B,解碼它們,并以每個周期 4 條指令的速率將它們分派到后端。從具有奇偶校驗(parity )和 ECC 支持的 32 KiB 分塊指令緩存中獲取指令。Esperanto說,他們相當多的工作都投入到一個新的最先進的條件預測器和一個由 2K 條目壓縮 BTB 支持的基于路徑的間接預測器上。

  分支預測器包括兩級預測器。一個快速的、基于單周期 BTB 的預測器執(zhí)行初始猜測,該猜測得到第二級、較慢的多周期、高精度分支預測器的支持,后者可能會覆蓋它。

  微信圖片_20210729094405.jpg

  每個周期,最多可以向調(diào)度程序發(fā)送四個指令。ET-Maxion 使用分布式調(diào)度器(distributed scheduler )設(shè)計,總?cè)萘繛?64 個條目。其中LSU 有一個調(diào)度程序,F(xiàn)PU 有一個調(diào)度程序,復雜 ALU 有一個調(diào)度程序,簡單 ALU 有一個調(diào)度程序。請注意,有兩個簡單的 ALU,復雜的 ALU 單元也能夠處理分支操作。

5.png

  執(zhí)行單元由一個 64-entry 的浮點物理寄存器文件(physical register file)和一個 128-entry的整數(shù)物理寄存器文件提供。在執(zhí)行單元方面,機器有五個寬,兩個簡單的整數(shù)單元位于單個調(diào)度程序上。每個周期最多可以安排 5 條指令執(zhí)行。浮點單元為 64b 寬,完全支持 RISC-V 32 位 (F) 和 64 位 (D) 浮點擴展。

  總體而言,內(nèi)核的上限是其128-entry的重新排序緩沖區(qū),與機器的前端一樣,每個周期最多可以退出 4 條指令。

6.png

  Esperanto最初考慮使用自定義 ISA,但由于其簡單性,他們最終選擇了 RISC-V。該公司解釋說,簡單的架構(gòu)使他們能夠?qū)⒏嗟木性谛阅芴匦陨希皇墙鉀Q其他 ISA 的極端問題。

  ET-Maxion 的平面圖如下所示。請注意,這是沒有顯示 L2 的核心。從die plot可以看出,相當大的面積用在了緩存陣列(幾乎占面積的1/3)和分支預測單元上。核心的頂部是硬件預取器 (HPF)(僅限 L1),與其他組件相比,它非常大。選擇使用更積極(更慢但更準確)的預取器使他們能夠?qū)⑵浞胖迷陉P(guān)鍵路徑的頂部和外部,從而簡化接線。

7.png

 ?。?)ET-Minion

  ET-Minion 是來自Esperanto的第二個定制 CPU 內(nèi)核。這個內(nèi)核和上一個有很大的不同,更有趣一點。ET-Minion 也是 64 位 RISC-V 處理器,但這是一臺有序機器。

  由于這是一個面向吞吐量(throughput-oriented)的核心,它也是多線程的,具有兩個可以在停頓時交替的線程。ET-Minion 采用流水線標量設(shè)計——每個周期獲取、解碼和發(fā)出一條指令。(請注意,下圖可能缺少一些細節(jié),因為Esperanto主要討論了核心的矢量功能)。

 8.png

  針對推理加速,Esperanto的秘密武器是ET-Minion的執(zhí)行引擎。ET-Minion 的后端是向量密集型的,并且只有一個執(zhí)行單元來執(zhí)行 RISC-V 架構(gòu)所需的所有必要 (64b) 操作。核心的大部分包括兩個向量流水線(vector pipelines)。有一個 256b 的浮點向量單元和一個 512b 的整數(shù)向量單元。伴隨這些向量單元的是兩個寄存器文件——一個 32-entry的 256b FP 寄存器文件(register file)和一個 32-entry的 256b 整數(shù)寄存器文件。請注意,這些寄存器文件對于每個線程都是重復的(即,總共 64 個條目)。

  FP 矢量單元細分為 8×32 位 FMA,能夠執(zhí)行高達 16 SP FLOPs/cycle 或 32 HF FLOPs/cycle。整數(shù)向量單元的寬度為 512b,是 FP 向量單元的兩倍。該單元細分為 16×32 位 TIMA,能夠執(zhí)行多達 128 個 INT8 OP/周期。雖然可以從 FP 向量寄存器文件中輸入 FP 向量單元,但兩倍寬的整數(shù)向量單元需要從 FP 向量寄存器文件中獲取一半的向量 (256b),另一半從其自己的私有整數(shù)中獲取組合的 512 寬向量的寄存器文件 (256b)。

  Esperanto 在 ET-Minion 中加入了大量的浮點運算能力,這與其他當代加速器形成了鮮明的對比。通常我們看到的加速器只提供 INT8 操作。雖然您可以從 8 位量化中獲得相當高的保真度,但Esperanto對于需要 FP16(或 32)的工作負載確實具有優(yōu)勢。

  9.png

  除了向量單元之外,ET-Minion 還包含一個向量超越單元(vector transcendental unit ),可以執(zhí)行如各種三角函數(shù)、指數(shù)和對數(shù)等超越函數(shù)(transcendental functions),以加速諸如激活函數(shù)(activation functions)之類的事情。trans 單元是基于 ROM 的,有利于降低芯片的功耗。

  這里的向量單位還有許多其他細微差別。除了標準的 RISC-V 指令外,Esperanto還實現(xiàn)了自己的指令擴展。他們添加了多周期張量指令和伴隨的向量超越指令(ector transcendental instructions)。

  這一舉措會讓我們的一些讀者感到有些不安,尤其是因為Esperanto已經(jīng)如此多地談論了 RISC-V 的好處。但現(xiàn)實是,RISC-V 和所有其他 ISA 一樣,沒有任何加速 AI 的具體說明,此類擴展是邪惡的。事實上,RISC-V 基金會預見到了這一點,并將自定義擴展直接融入到規(guī)范中,這就是為什么 Espernato 可以以標準方式做到這一點。目前尚不清楚Esperanto是否會公開披露其擴展指令,或者他們是否計劃將其保留為專有,因為這與他們聲稱的面向未來的說法背道而馳。

  多周期張量指令允許內(nèi)核讀取單個指令,并且通過使用張量定序器( sequencers)狀態(tài)機,它可以重放一系列超過 100s 甚至 1000s 周期的操作。與大多數(shù)定序器一樣,ET-Minion 時鐘對整個前端以及在發(fā)布和執(zhí)行張量操作時未使用的每個其他單元進行門控。這允許內(nèi)核進一步降低功耗。

  順便說一下,ET-Minion的物理設(shè)計本身就非常獨特。流水線的每級門數(shù)設(shè)計為低(low gate count),以提高低電壓下的頻率。Esperanto更進一步,設(shè)計了自己的定制 SRAM,而不是使用臺積電的標準 SRAM 產(chǎn)品。這些cell雖然體積較大,但可以在相當?shù)偷碾妷合路€(wěn)定運行——遠低于標稱值。

  “當我談論低電壓操作時,我的真正意思是在遠低于標稱電壓的情況下操作。因此,如果標稱電壓為 0.75 V 左右,我們的工作電壓約為 400 mV,”Swift說。

  Minion  Neighborhood

  將八個 ET-Minions 組合在一起,您就會得到Esperanto所說的 Minion Neighborhood。在一個neighborhood內(nèi),每個內(nèi)核競爭性地共享指令緩存。緩存容量為 32 KiB。每個周期,一個緩存行被發(fā)送到兩個內(nèi)核。換句話說,指令緩存在每個周期輪詢一對內(nèi)核,將 64B(16 條指令)發(fā)送到兩個獨立的內(nèi)核。內(nèi)核對線路進行緩沖,允許它們在指令緩存繼續(xù)為其他內(nèi)核供電時繼續(xù)運行。

  10.png  

然后將四個neighborhood組合成一個 Minion Shire,總共有 32 個核心。每個八核neighborhood通過交叉開關(guān)( crossbar)連接到四組 L2 內(nèi)存。L2 包含四個 1 MiB SRAM 組,可通過軟件配置為高速緩存或暫存器存儲器。在暫存器配置下,整個內(nèi)存是一個大地址空間,軟件可以使用它以精確的方式組織數(shù)據(jù),并以此方式訪問數(shù)據(jù)。

  有趣的是,L2 緩存——默認情況下是每個 Minion Shire 私有的——也可以配置為可以跨越整個芯片的最后一級緩存。所有這些功能都以per-bank granularity提供。例如,一個 bank 可以保留為暫存器,而另一個 bank 用于 1 MiB/Shire LLC,另外兩個 bank 可以配置為 2 MiB 的私有 L2 緩存。每個Shires都可以通過網(wǎng)狀互連與其他Shires進行通信,每個Minion Shire都有一個mesh stop。

  11.png

  由于 ET-Minion 的低壓設(shè)計,neighborhoods和crossbar 都位于Shire內(nèi)自己的低壓電源平面上。Shire 的其余部分(例如,分組 SRAM 和網(wǎng)狀互連組件)位于標準電壓平面上。

  12.png

  Tiled Architecture

  Tile設(shè)計很簡單,每個 Minion Shire 都通過mesh stop連接到任何其他 Shire 和芯片上的任何其他組件。mesh stop在四個主要方向(cardinal directions)中的每一個方向上都包含兩個單向鏈接(unidirectional links)。這些鏈接似乎每個都是 1,024b 寬。Esperanto在芯片上有許多附加組件,例如內(nèi)存通道和 PCIe 接口,它們也通過它們自己的網(wǎng)狀站點連接到整個網(wǎng)狀互連中。

  ET-SoC-1

  所有這一切最終將我們引向Esperanto的第一款產(chǎn)品——ET-SoC-1。

  該芯片在 6×6 的網(wǎng)格中集成了 34 個 Minion Shires。網(wǎng)格上的兩個附加 tiles用于控制處理器集群和 PCIe  tiles。34 個 Minion Shires 意味著芯片上有 1,088 個 ET-Minion 處理器以及 136 MiB 的可配置 L2 內(nèi)存。實際上還有一個額外的獨立 ET-Minion 充當服務處理器。

  最后,ET-SoC-1 將四核 ET-Maxion tile 與 4 MiB 的私有 L2 集成在一起,可用作自托管處理器(例如,運行 Linux)。雖然 ET-SoC-1 面向超大規(guī)模數(shù)據(jù)中心市場,這意味著它與更高性能的服務器處理器一起使用,但對于邊緣應用程序,ET-Maxions 將在實現(xiàn)全面的高性能可操作性方面發(fā)揮更大的作用。

  該芯片通過低功耗 LPDDR4x 16x16b (256b) 接口供電。DRAM 控制器支持 32 GiB 的 DRAM,速度為 137 GB/s。

  總而言之,ET-SoC-1 具有 1,093 (1088+1+4) 個內(nèi)核,并通過 x8 PCIe Gen4 與外界接口。據(jù)說該芯片的典型工作功率約為 20 瓦或低于 20 瓦,這使Esperanto能夠符合 OCP M.2 加速器模塊的規(guī)格。我們還期望提供更高功率的 PCIe 卡。

13.png

  從物理上講,該芯片采用臺積電的 N7 工藝技術(shù)制造。Esperanto沒有透露芯片尺寸,但封裝了 238 億個晶體管,因此我們猜測該芯片的面積可能在 350 平方毫米以上。

  雖然它的頻率可以達到 1.5 GHz,但名義上,芯片目標頻率約為 1 GHz,用于其 20 W 功率目標。單個 ET-Minion 能夠在 1 GHz 下達到 128 OPS (INT8)/周期或 128 GOPS。

  假設(shè)所有 1,088 個 ET-Minions 都在做最有用的工作。在 1 GHz 時,我們看到整個芯片的峰值理論計算為 139.3 TOPS (INT8)。在 1.5 GHz 時,增加到 208.9 TOPS。

  與許多其他加速器不同,ET-Minions 還支持完整的 32b 和 16b 浮點運算。因此,在 1 GHz 時,如果需要 FP16,ET-SoC-1 也能夠進行近 35 teraFLOPS(半精度)的峰值計算。在 1.5 GHz 時,它會上升到 52。

14.png

  帶有 6 個 ET-SoC-1 芯片的 OCP Glacier Point V2 卡

  由于該芯片適合 OCP M.2 加速器模塊,Esperanto 建議它可以封裝為 OCP Glacier Point V2 卡的六個 Esperanto Dual M.2 加速器模塊(三個在頂部,三個在底部)。這些設(shè)計旨在直接插入 OCP Yosemite v2 多節(jié)點服務器平臺。

  通過六個模塊,每個 Glacier Point 卡將擁有 6,558 個 RISC-V 內(nèi)核以及 192 GiB 的 LPDDR4x 內(nèi)存和 822 GB/s 的 DRAM 帶寬。在峰值理論性能下,該卡可以達到 835.6 TOPS (INT8) 或接近 210 teraFLOPS(半精度)。

  15.png

16.png

  一旦Esperanto的芯片回片,我們應該開始聽到更詳細的性能聲明。正如我們之前提到的,Dave Ditzel 將在 8 月即將舉行的 Hot Chips 33 會議上展示 ET-SoC-1,屆時他們可能會披露更多技術(shù)細節(jié)和基準。

  



微信圖片_20210517164139.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。