去年誕生的推理芯片公司數量之多,足以讓您頭暈目眩。由于業內有眾多芯片,也不缺少質量不錯的測試基準,所以常常會遺忘極其重要的部分:內存子系統。事實上,如果沒有很好的內存子系統,那就不可能有優質的推理芯片。因此,如果一家推理芯片公司只談論TOPS,卻很少討論SRAM、DRAM和內存子系統,那這家公司可能并沒有一個很好的解決方案。
一切皆與數據吞吐量相關
優質推理芯片結構合理,可以非常快速地移動數據,意味著芯片處理數據、將數據導入和導出內存的速度非常之快。如果您看一下使用ResNet-50和YOLOv3的模型,將會發現它們不僅在計算方面,而且在各自如何使用內存的方式上都有顯著差異。
對于使用ResNet-50的每張圖像,需要20億個乘積累加 (MAC),但是對于YOLOv3,則需要超過2000億個MAC,增加了100倍。部分原因在于YOLOv3權重更大(6200萬的權重,而ResNet-50約為2300萬)。然而,最大的區別還在于典型基準的圖像大小。ResNet-50使用224×224像素,實際上無人使用該尺寸,而YOLOv3使用200萬像素。因此,YOLOv3的計算負載要大得多。
通過上述示例,您可以看到我們有兩種不同的工作負載,其中一種的工作量是另一種的100倍。問題顯而易見:這樣是否意味著YOLOv3運行速度要慢100倍呢?要解答該問題,唯一方法是通過查看內存子系統,因為這告訴您特定的實際吞吐量。
內存子系統
對于推理芯片,我們不僅僅是開發一顆芯片,而是創造一個系統。芯片的MAC相當于引擎,但是如果沒有正確的燃料傳輸系統(內存和互聯),引擎就會熄火。
了解一下推理芯片的運行過程,您會發現要先有數據導入,之后須以一定的速度(比如每秒30幀)提供新的圖像。圖像導入芯片,然后就會輸出某種結果。圖像大小各異,但大多數應用要處理百萬像素級的圖像才能達到足夠的精度。
在芯片內部,使用神經網絡模型處理圖像,這需要代碼和權重,在每一層的末端還有中間激活函數。所有這些都需要存儲在某個地方,然后讀寫到推理芯片的計算單元中。
應用
AI推理的應用非常多,自動駕駛等邊緣應用代表著最大的機遇之一。未來,每輛車都將配有多個推理引擎,可以實時檢測到行人、公共汽車和小轎車從而避開他們。這使得處理大尺寸圖像(比如在YOLOv3中)非常重要。設想一下用肉眼看圖像的情況,也是如此。如果有人給您看了一張小圖片,您就會錯過很多細節,甚至還可能曲解圖片。在自動駕駛汽車和監控攝像頭中,小細節才是關鍵。
邊緣和云端的區別在于,在邊緣您需要發送即時響應,而在云端通常有大量數據,且需要有足夠時間處理。舉個例子,如果您在車里,便需要知道行人在哪里,這樣才能有效避開他們。但是,數據中心的情況則不同,數據中心中有一些應用(如為圖像貼標簽)可以在夜間進行大批量處理。這在邊緣應用場景中是行不通的,因為這時所有操作都必須快速處理。且延遲很短,這就意味著處理批次= 1。
因此,本質上我們是重新設計芯片,以便在短時間(低延遲)內交付結果,及時進行正確的響應。我們需要立即處理數據并立即返回結果,這意味著內存是其中絕對關鍵的一部分。
若使用ResNet-50,您會發現有許多芯片的性能在處理批次= 10或100時非常高,但當處理批次= 1時性能就下降很多,某些芯片的性能下降幅度高達75%。這意味著,無論他們從高批次處理率的MAC獲得的利用率有多高,當批處理率為1時其利用率只有四分之一。因此,在處理批次=1時(這在邊緣應用中很關鍵),一些芯片的MAC計算能力利用率還不到25%。
架構變化
過去,處理器的內存架構(如今仍在數據中心中進行大量推理)采用DRAM和多層緩存,所有這些都被饋入處理器。內存是集中式單一存儲器。而推理芯片的內存是分布式的。一種加快數據處理速度的方法是把MAC分成塊,然后用本地化SRAM來分配這些塊。這是Flex Logix和Intel等公司所采用的一種方法,將在未來占據主導地位。這樣做的理由是,讓內存更接近MAC會縮短延遲時間,從而提高MAC分布式并行處理能力。
邊緣應用的另一關鍵要求是要滿足成本和功耗預算。用于訓練的芯片可以占用整片晶圓大小,而針對汽車和監控攝像頭等應用的芯片有相關的成本預算和功耗限制。通常,在滿足這些預算的情況下,可用的SRAM數量不足以在芯片上存儲所有的權重、代碼和中間激活函數。這些芯片需要不斷地處理大量的數據,而大多數邊緣應用總是處于工作狀態。因為所有芯片都會發熱,所以其處理量與散熱量呈正相關。若能從同等數量的芯片和功耗預算中獲得更多的吞吐量,這種芯片架構將會是贏家,因為它們能夠花較少的功耗和成本交付更多的結處理結果。
優化功耗和成本
有些捷徑可以讓公司折中檢測目標的精準度。然而,這并非客戶想要的方式。客戶希望運行的模型可以獲得高精度的對象檢測和識別,還要在一定的功耗限制范圍內。要做到這一點,關鍵在于內存子系統。
如果使用ResNet-50或YOLOv3,需要存儲權重。YOLOv3中的權重約為23MB,而ResNet-50的權重約為62MB。僅是將這些權重存儲在芯片上就需要接近100平方毫米的芯片面積,這對大多數應用來說都不可行。這意味著大容量內存需要在芯片之外,也就是使用DRAM。
有一點需要說明,我們經常被問到DRAM的類型是否重要,答案是非常重要。高帶寬內存(HBM)極其昂貴,對于成本預算嚴格的邊緣應用不太適用。LPDDR4是一種更好的內存,因為它具有更寬的總線配置,可以從單個DRAM中獲得更多的帶寬。DRAM對熱非常敏感,對于在室外工作的汽車和監控攝像機來說,可能是個問題。因此,考慮到成本和散熱問題,最好盡量少用DRAM。
如何設計出最佳的推理芯片
設計者要考慮客戶將進行何種類型的處理、它們的負載和應用會是什么、以及它們會在哪里使用,方能設計出最佳的推理芯片。歸根結底,客戶想要最高的吞吐量——這意味著他們需要高的MAC利用率。獲得高MAC利用率的方法就是為MAC提供高帶寬,但希望用最少的SRAM和最少的DRAM來實現。
芯片設計者需要知道客戶會在哪些應用場景下使用,并采用相應的模型,而且要密切關注其權重、代碼大小和激活函數。現在有一些建模工具可以讓芯片設計者調整MAC、SRAM和DRAM的數量,能夠做出一系列折衷取舍,以便決定如何交付最低價的芯片和最高的吞吐量。
芯片設計者還能用很多方法來組織MAC,讓其以更高的頻率運行。例如,可以將MAC優化為8位的乘積和累加,比16位的乘法和累加運行得更快。在這種情況下,惟一的折衷是精度稍低一些,但是可以在成本和功耗較低的前提下提供更大的吞吐量。
那么,ResNet-50和YOLOv3在內存使用方面有什么不同呢?雖然權重有2倍的差異,但最大的區別在于激活函數。ResNet-50的每一層都會產生激活函數,其最大激活函數大小為1MB,有些層甚至更小一些。對于YOLOv3,最大層的最大激活函數大小是64MB,這64MB必須存儲起來以便進入下一層。如果注意一下片上或DRAM容量需求,您會發現YOLOv3的激活函數實際上比權重需要更多存儲容量,這與ResNet-50大不相同。事實上,客戶需要謹慎的是,一些公司設計芯片時會在片上儲存ResNet-50權重,他們知道其激活函數很小,能讓其性能“看起來”更好。然而,在實際應用中,這種芯片的性能會下降得特別厲害。
SRAM和DRAM的折衷
DRAM芯片不便宜,但更貴的是與DRAM芯片的連接。芯片設計公司往往注重裸片尺寸,但芯片封裝尺寸也是決定成本的一個重要因素,有時可能比裸片更貴。每增加一個DRAM,至少增加100個球。如今一些芯片有8個DRAM連接,這就需要對1000個球進行封裝,導致芯片非常昂貴。雖然公司意識到不能在芯片上配置所有的SRAM,但他們也知道不能通過過多的DRAM來解開成本難題。他們真正需要的是用盡可能少的DRAM和盡可能少的SRAM。要想如此,芯片設計者需要研究激活函數。了解一下64MB的激活函數,就會發現其實只有一個。大多數激活函數還是較小的,所以如果將8MB的SRAM放在芯片上,大多數中間激活函數將可以存儲在芯片上,只需要用DRAM來處理最大的激活函數。
這是推理芯片的最佳方案,也是芯片設計者在設計中應該努力追求的目標。如果您是客戶,您要問一下有關芯片內存子系統的問題,因為這是決定它在實際應用中性能表現的重要因素。
責任編輯:tzh
-
芯片
+關注
關注
460文章
52573瀏覽量
442077 -
攝像頭
+關注
關注
61文章
4988瀏覽量
98617 -
AI
+關注
關注
88文章
35352瀏覽量
280839
發布評論請先 登錄
信而泰×DeepSeek:AI推理引擎驅動網絡智能診斷邁向 “自愈”時代
首創開源架構,天璣AI開發套件讓端側AI模型接入得心應手
谷歌新一代 TPU 芯片 Ironwood:助力大規模思考與推理的 AI 模型新引擎?
AI 推理服務器都有什么?2025年服務器品牌排行TOP10與選購技巧

2025邊緣AI預測:昇騰310B邊緣將占工業推理市場35%的三大動因

AI推理帶火的ASIC,開發成敗在此一舉!

AI變革正在推動終端側推理創新
黑芝麻智能芯片加速DeepSeek模型推理
生成式AI推理技術、市場與未來

李開復:中國擅長打造經濟實惠的AI推理引擎
AMD助力HyperAccel開發全新AI推理服務器

評論