在人工智能以及針對各種截然不同的終端市場和系統而設計的機器學習芯片快速發展的推動下,人們可選擇的存儲器/體系架構數量呈現爆炸式增長。
在這些系統中,某些系統的模型參數大小可能在100億到1000億之間,并且芯片或應用之間的差異可能會非常大。神經網絡的訓練和推理是當今最復雜的工作負載之一,這使得很難找到最優的存儲解決方案。這些系統消耗了大量的計算資源(主要是使用乘法累加運算)以及大量內存帶寬。系統任何一個環節的減速都可能對整個系統產生影響。
Arm機器學習集團產品營銷副總裁SteveRoddy說:“目前已經部署了一系列技術來降低神經網絡模型的復雜性和神經網絡模型的內存需求。例如,可以通過量化、網絡簡化、剪枝、聚類和模型壓縮來盡可能減小模型的大小。在設備運行時,通過智能調度跨層重用中間值還可以減少內存流量,從而加快推理運行時間。”
這給內存開發人員帶來了巨大的壓力,要求他們以最低的功耗、面積和成本提供盡可能多的帶寬。這一趨勢當前并沒有減弱的跡象。神經網絡模型規模逐年增長,為了訓練這些模型,數據集也在不斷增長。
“這些模型的規模和訓練集的大小每年都以大約一個數量級的速度增長,”來自Rambus公司的杰出發明家、研究員StevenWoo說。“今年年初,當最新的自然語言處理模型問世時,它具有大約170億個參數,這個數字夠大了吧,但是,今年夏天又出現了一個更新的版本,參數的數量居然上升到了1750億。也就是說,大約七個月的時間,參數的數量就增加了整整10倍。”
20世紀80年代和90年代初的神經網絡模型大約有100到1,000個參數。“如果我有一個更大的模型,我需要更多的樣本來訓練它,因為每個參數都必須調整,”StevenWoo說。“對于那些在技術領域缺乏耐心的人來說,當您擁有更多數據時,您不想再在訓練上等待那么長的時間。唯一的出路是是擁有更多帶寬。您必須能夠更快地將這些數據推送到系統中,并更快地將其提取出來。帶寬是頭等大事。”
另一個問題是能源。Woo表示:“如果您要做的只是將性能提高一倍,同時所消耗的電量也增加一倍,那么,生活就會很美好。但是,這不是它的運作方式,您實際上需要非常在乎功率問題,因為您墻上的電源插座只能承受這么大的功率。事實是,人們確實希望將性能提高X倍,但同時他們希望能將能源效率提高2X倍,這就是讓事情變得困難的地方。”
這種權衡在AI推理應用方面更加困難。“今天,AI/ML的訓練和推理之間的鴻溝越來越大,”CadenceIP集團產品市場部總監MarcGreenberg指出。“訓練需要最大的內存帶寬,并且通常是在功能強大的服務器類型的機器或非常高端的GPU卡上進行的。在訓練領域中,我們發現,高階訓練使用HBM內存,而低階訓練使用GDDR6內存。HBM存儲器特別擅長以最低的單bit能量提供最高的帶寬。HBM2/2E內存可以在AI/ML處理器與每個存儲器堆棧之間提供高達每秒3.2/3.6TB的內存帶寬,而即將發布的HBM3標準則有望提供更高的帶寬。”
成本權衡
這種性能當然是有代價的。Greenberg指出:“HBM作為一種高端解決方案,有一個與之匹配的高價格自然無可厚非,這意味著HBM可能會繼續部署在服務器機房和其他高端應用中。GDDR6技術有助于降低成本,當今的器件可以通過技術以16Gbps的數據速率提供每秒512Gbit/s的速度,而且將來會出現更快的數據速率。用戶將其中多個器件并行放置也很常見。例如,某些圖形卡可以并行使用10個或更多GDDR6部件,以達到5Tbps速度甚至更高的帶寬。”
推理技術仍在發展,這在邊緣計算中尤其明顯。Greenberg說:“對于AI推理,我們在新設計中看到的主要是GDDR6和LPDDR5內存。他們以更合適的成本提供了更適中的帶寬,使得可以在云的邊緣實時部署AI,而不必將所有數據發送回服務器。”
現在正在開發的許多AI機器都使用了經過精心規劃的非常規則的布局和結構。
他說:“如果您回想起SoC設計時代,您會發現芯片設計中其實有很多隨機性,這些芯片的異構性非常明顯。它們部署了許多不同的功能,而且很多是異構的功能。這使得芯片看起來就像是將不同block混合在一塊的儲物柜。但是,當您看一看AI芯片時,您將會看到一個非常規則的結構,因為這種方法才能保證在整個芯片上非常并行的數據流中管理大量數據。與我們在SoC甚至許多CPU中所做的架構不同。它的架構設計主要圍繞著如何通過該芯片傳輸數據而構建。”
所有這些都直接影響到內存的選擇,尤其是DRAM,而DRAM早在幾年前就被人們預測行將淘汰了。但是實際上,情況恰恰相反。如今的選項比以往任何時候都要多,并且每一種選擇都有各自不同的價格。
SynopsysDDR產品技術營銷經理VadhirajSankaranarayanan表示:“例如,我們正處于DDR標準從DDR4過渡到DDR5的階段。“奔著DDR4要求而來的客戶因為其產品的使用壽命足夠長,因此也可能也希望獲得DDR5的支持。與LPDDR5類似,這些新標準中除了提供更高的性能外,在功耗方面也具有優勢。因為這些標準可以在較低的電壓下運行,因此可以降低功耗,而且在RAS(可靠性、可用性和可維護性)上也有優勢。在功能方面,由于速度較高,DRAM本身將配備可糾正子系統中任何地方可能發生的單比特錯誤的功能。”
提供這么多內存選擇是必需的,因為在當今的AI/ML應用中,內存配置可能會有很大的差異。Sankaranarayanan說:“我們已經看到,設計團隊除了使用HBM之外還使用LPDDR,但這實際上取決于帶寬要求。還有一些成本因素需要考慮。使用HBM時,由于需要通過硅直通技術將多個DRAM管芯堆疊在一起-并且使用插入器將DRAM和SoC放入同一個SoC封裝中,因而需要多個封裝步驟,造成今天HBM的成本都很高。但是,隨著與AI相關的應用及需求的增加,在不久的將來,HBM的價格都將變得物有所值。”
功率是第一位的
毫不奇怪,功率管理是AI/ML應用中的首要考慮因素。對于數據中心以及邊緣設備都是如此。
在SoC中,分配給內存的功率可以分為三個部分。
Rambus的Woo說:“首先是從DRAM內核中獲取bit所消耗的功率,這方面您無法投機取巧,您必須把數據位從DRAM內核中讀取出來才能發揮它的作用。其次,和移動數據相關的功率,即與數據線兩端電路相關的功率。第三,在DRAM中還有SoCPHY和接口。事實證明,這些存儲器本身耗電只占三分之一,其它三分之二的功率則用于在DRAM和SoC這兩個芯片之間來回移動數據,這個比例有點嚇人,因為這意味著將數據從DRAM內核中讀取出來-您必須要做的-并不是控制功率的主要因素。在嘗試提高功率效率時,如果您考慮將這些東西都堆疊在一起,則可以省掉很多這種功耗,HBM器件就是這么做的。如果您考慮將SoC與DRAM堆疊在一起,那些和數據通信相關的功率可能就會下降很多倍甚至是一個數量級。那就是您可能節約功率的地方。”
圖1:HBM2存儲器系統功率。資料來源:Rambus
這里沒有免費的午餐。Woo表示:“如果要這樣做,那么現在您將受到DRAM內核功率的更多限制,并且您必須考慮如何降低DRAM內核功率,以使整體體積變小。”
這是一個正在進行中的研究領域,但是解決方案的技術路線現在還并不明朗。隨著越來越多的比特被放置到芯片上,它們會變得越來越小,所以一個比特就容納不下太多的電子了。結果是,很難確定這個比特位到底是1還是0,而且它們保持所需電子狀態的時間可能會降低,所以需要更加頻繁地進行刷新。
新材料和新cell設計可能會有所幫助。另一個選擇可能是管理PHY的電源,但是所有事物之間都存在循環依賴關系,因此PHY面臨的挑戰確實非常困難。
Woo表示:“隨著速度的提高,需要做更多的工作來確保數據的正確傳輸,這里存在著一場拉鋸戰。這和拍賣師很相似,他們開口就得大聲說話。在PHY上也有同樣的現象。為了繼續區分信號,您必須具有適當的幅度,因此挑戰之一是如何設定正確的幅度,避免信號的模糊,以確保對方接收到的正是您所發送的。為了清楚地指明在數據線路上來回通信的符號,需要進行大量的工作。也有一些其他嘗試降低幅度的技術,但它們都是折衷方案。通常,人們不希望更改其基礎架構。如果其它條件不變的話,人們會選擇增量式的改進而不是革命性的改進。這就是挑戰所在之處。”
片上存儲器與片外存儲器
如今,AI/MLSoC架構中的另一個重大折衷是將內存放在哪里。盡管很多時候AI芯片都具有片上存儲器,但片外存儲器對于AI的訓練至關重要。
Cadence的Greenberg說:“問題主要在于您要為神經網絡存儲多少數據。每個神經元都需要一定數量的存儲空間。每個人都希望使用片上存儲器,只要您有條件可以使用片上存儲器,肯定就想使用它。它的速度超快,功耗超低,但是價格昂貴。在預算一定的情況下,您在主芯片上放每一平方毫米的內存就意味著芯片上的邏輯和其他功能就少了一平方毫米的面積。”
片上存儲器非常昂貴,因為它實質上是使用邏輯工藝制造的。他說:“假設我現在使用的邏輯工藝是7nm或5nm工藝,如果制造一個16層內存的話,將會非常昂貴。如果您可以在分立芯片上制造內存,則可以針對成本目標優化內存工藝。不僅不需要怎么限制金屬層的數量,而且分立內存芯片的每平方毫米成本大大低于7nm或5nm邏輯芯片的每平方毫米成本。”
大多數AI/ML工程團隊都在為選擇片內存儲還是片外存儲而苦苦掙扎,因為這些設計仍處于其生命周期的早期。Greenberg說:“每個人剛開始時都希望使用片內內存。這方面真沒有真正可以查閱的標準。在大多數AI芯片中,其版圖布局實際上是有所不同的。業界尚未決定AI的最佳架構,因此,我們現在基本上仍處于AI芯片架構的試驗階段,并朝著大多數人可能會適應的方向發展。所以,今天的AI設計仍然非常開放,我們可以看到很多創新。那么,該如何推薦內存類型呢?實際上,這個問題又回到了每個人查看內存時的一些關鍵參數上,您需要多少內存?需要存儲多少GB的數據?速度想達到多快?您能安排多少PCB面積?你想花多少錢?每個人在求最優解時的方法都多多少少會有所不同。”
這些決定會影響AI/ML芯片的各個方面,包括專用加速器。那里的主要選擇取決于性能、功率和面積,云計算和邊緣計算芯片之間的界限很清晰。
CadenceTensilica集團產品營銷總監SuhasMitra說:“云計算和邊緣計算這兩種情況存在千差萬別。它們是有相似之處,但更大的是不同之處。如果您正在為數據中心云設計處理器,那么就如何存儲,選擇什么樣的內存層次結構、如何放置內存等方面,功率和面積就很有意義。”
對于邊緣計算,權衡的復雜性仍繼續增加,在傳統PPA(功率、性能、面積)公式中增加了第四個變量-帶寬。Mitra說:“討論的范疇應該是關于PPAB的,因為我們需要就這四個因素不斷地進行權衡調整。在AI/ML處理器設計或加速器設計中,如何確定功率、性能、面積、帶寬的折衷,在很大程度上取決于工作負載的性質。從根本上講,當您談論邊緣計算的問題時,在考慮有限的面積內實現了多少性能時還必須考慮到能源效率問題,或者說,消耗這些功率,我可以獲得多少性能?我們一直在關注這些指標。”
他指出,這就是為什么人們花了這么多的時間在內存接口上的原因。對于處理器/加速器設計者,這些考量會采用不同的形式。“形式基本上與AI工作負載有關。我如何確保當我的工作空間很小時,可以以非常有效的方式進行計算?之所以如此,是因為您不能為了計算犧牲太多的面積或太大的功率。實現這個工作負載,最佳的配置是什么?您可以查看不同的工作負載,并嘗試計算出應該是什么,每秒應該有多少幀,每秒每瓦應有多少幀,每秒每平方毫米應有多少幀。”
結論
人工智能的體系架構仍處于快速進化的狀態。所有人都在猜測它何時穩定以及是否會穩定下來,這使得判斷自己的選擇是否正確及其正確性會持續多久變得更加困難。
“您走對路了嗎?這個問題很明確,但是有很多不同的答案。”Mitra說。“在傳統處理器設計中,如果我以這樣的方式設計它,那么它看起來就是這個樣子。因此,所有人都去設計處理器IP,人們還設計出一些變體,例如VLIW與超標量等。但是,最終勝出的永遠不會只有一種設計。您會發現有許多可以勝出的設計。這幾乎就像是說給了您40個選項,而不是一個解決方案。展望未來,您將看到人們將做出更多這些架構選擇,因為AI對于不同的垂直領域具有許多不同的含義。”
責任編輯人:CC
評論
查看更多