應用

技術

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

深度 | 剖析AI系統(tǒng)中的內(nèi)存選擇困境

2020-11-20 09:51 與非網(wǎng)

導讀:系統(tǒng)任何一個環(huán)節(jié)的減速都可能對整個系統(tǒng)產(chǎn)生影響。

在人工智能以及針對各種截然不同的終端市場和系統(tǒng)而設計的機器學習芯片快速發(fā)展的推動下,人們可選擇的存儲器 / 體系架構數(shù)量呈現(xiàn)爆炸式增長。

在這些系統(tǒng)中,某些系統(tǒng)的模型參數(shù)大小可能在 100 億到 1000 億之間,并且芯片或應用之間的差異可能會非常大。神經(jīng)網(wǎng)絡的訓練和推理是當今最復雜的工作負載之一,這使得很難找到最優(yōu)的存儲解決方案。這些系統(tǒng)消耗了大量的計算資源(主要是使用乘法累加運算)以及大量內(nèi)存帶寬。系統(tǒng)任何一個環(huán)節(jié)的減速都可能對整個系統(tǒng)產(chǎn)生影響。

Arm 機器學習集團產(chǎn)品營銷副總裁 Steve Roddy 說:“目前已經(jīng)部署了一系列技術來降低神經(jīng)網(wǎng)絡模型的復雜性和神經(jīng)網(wǎng)絡模型的內(nèi)存需求。例如,可以通過量化、網(wǎng)絡簡化、剪枝、聚類和模型壓縮來盡可能減小模型的大小。在設備運行時,通過智能調(diào)度跨層重用中間值還可以減少內(nèi)存流量,從而加快推理運行時間?!?/p>

這給內(nèi)存開發(fā)人員帶來了巨大的壓力,要求他們以最低的功耗、面積和成本提供盡可能多的帶寬。這一趨勢當前并沒有減弱的跡象。神經(jīng)網(wǎng)絡模型規(guī)模逐年增長,為了訓練這些模型,數(shù)據(jù)集也在不斷增長。

“這些模型的規(guī)模和訓練集的大小每年都以大約一個數(shù)量級的速度增長,”來自 Rambus 公司的杰出發(fā)明家、研究員 Steven Woo 說。 “今年年初,當最新的自然語言處理模型問世時,它具有大約 170 億個參數(shù),這個數(shù)字夠大了吧,但是,今年夏天又出現(xiàn)了一個更新的版本,參數(shù)的數(shù)量居然上升到了 1750 億。也就是說,大約七個月的時間,參數(shù)的數(shù)量就增加了整整 10 倍?!?/p>

20 世紀 80 年代和 90 年代初的神經(jīng)網(wǎng)絡模型大約有 100 到 1,000 個參數(shù)。 “如果我有一個更大的模型,我需要更多的樣本來訓練它,因為每個參數(shù)都必須調(diào)整,” Steven Woo 說。 “對于那些在技術領域缺乏耐心的人來說,當您擁有更多數(shù)據(jù)時,您不想再在訓練上等待那么長的時間。唯一的出路就是擁有更多帶寬。您必須能夠更快地將這些數(shù)據(jù)推送到系統(tǒng)中,并更快地將其提取出來。帶寬是頭等大事?!?/p>

另一個問題是能源。Woo 表示:“如果您要做的只是將性能提高一倍,同時所消耗的電量也增加一倍,那么,生活就會很美好。但是,這不是它的運作方式,您實際上需要非常在乎功率問題,因為您墻上的電源插座只能承受這么大的功率。事實是,人們確實希望將性能提高 X 倍,但同時他們希望能將能源效率提高 2X 倍,這就是讓事情變得困難的地方?!?/p>

這種權衡在AI推理應用方面更加困難。“今天,AI/ ML 的訓練和推理之間的鴻溝越來越大,” CadenceIP集團產(chǎn)品市場部總監(jiān) Marc Greenberg 指出。“訓練需要最大的內(nèi)存帶寬,并且通常是在功能強大的服務器類型的機器或非常高端的 GPU 卡上進行的。在訓練領域中,我們發(fā)現(xiàn),高階訓練使用HBM內(nèi)存,而低階訓練使用GDDR6內(nèi)存。HBM存儲器特別擅長以最低的單 bit 能量提供最高的帶寬。HBM2 / 2E 內(nèi)存可以在AI/ ML 處理器與每個存儲器堆棧之間提供高達每秒 3.2 / 3.6 TB 的內(nèi)存帶寬,而即將發(fā)布的 HBM3 標準則有望提供更高的帶寬?!?/p>

成本權衡

這種性能當然是有代價的。Greenberg 指出:“HBM 作為一種高端解決方案,有一個與之匹配的高價格自然無可厚非,這意味著 HBM 可能會繼續(xù)部署在服務器機房和其他高端應用中。GDDR6技術有助于降低成本,當今的器件可以通過技術以 16Gbps 的數(shù)據(jù)速率提供每秒 512Gbit / s 的速度,而且將來會出現(xiàn)更快的數(shù)據(jù)速率。用戶將其中多個器件并行放置也很常見。例如,某些圖形卡可以并行使用 10 個或更多GDDR6部件,以達到 5Tbps 速度甚至更高的帶寬?!?/p>

推理技術仍在發(fā)展,這在邊緣計算中尤其明顯。 Greenberg 說:“對于 AI 推理,我們在新設計中看到的主要是 GDDR6 和LPDDR5內(nèi)存。他們以更合適的成本提供了更適中的帶寬,使得可以在云的邊緣實時部署 AI,而不必將所有數(shù)據(jù)發(fā)送回服務器?!?/p>

現(xiàn)在正在開發(fā)的許多 AI 機器都使用了經(jīng)過精心規(guī)劃的非常規(guī)則的布局和結構。

他說:“如果您回想起 SoC 設計時代,您會發(fā)現(xiàn)芯片設計中其實有很多隨機性,這些芯片的異構性非常明顯。它們部署了許多不同的功能,而且很多是異構的功能。這使得芯片看起來就像是將不同 block 混合在一塊的儲物柜。但是,當您看一看 AI 芯片時,您將會看到一個非常規(guī)則的結構,因為這種方法才能保證在整個芯片上非常并行的數(shù)據(jù)流中管理大量數(shù)據(jù)。與我們在 SoC 甚至許多 CPU 中所做的架構不同。它的架構設計主要圍繞著如何通過該芯片傳輸數(shù)據(jù)而構建?!?/p>

所有這些都直接影響到內(nèi)存的選擇,尤其是DRAM,而DRAM早在幾年前就被人們預測行將淘汰了。但是實際上,情況恰恰相反。如今的選項比以往任何時候都要多,并且每一種選擇都有各自不同的價格。

Synopsys DDR 產(chǎn)品技術營銷經(jīng)理 Vadhiraj Sankaranarayanan 表示:“例如,我們正處于 DDR 標準從 DDR4 過渡到 DDR5 的階段。 “奔著 DDR4 要求而來的客戶因為其產(chǎn)品的使用壽命足夠長,因此也可能也希望獲得 DDR5 的支持。與LPDDR5類似,這些新標準中除了提供更高的性能外,在功耗方面也具有優(yōu)勢。因為這些標準可以在較低的電壓下運行,因此可以降低功耗,而且在 RAS(可靠性、可用性和可維護性)上也有優(yōu)勢。在功能方面,由于速度較高,DRAM本身將配備可糾正子系統(tǒng)中任何地方可能發(fā)生的單比特錯誤的功能?!?/p>

提供這么多內(nèi)存選擇是必需的,因為在當今的 AI / ML 應用中,內(nèi)存配置可能會有很大的差異。 Sankaranarayanan 說:“我們已經(jīng)看到,設計團隊除了使用 HBM 之外還使用 LPDDR,但這實際上取決于帶寬要求。還有一些成本因素需要考慮。使用 HBM 時,由于需要通過硅直通技術將多個 DRAM 管芯堆疊在一起 - 并且使用插入器將 DRAM 和 SoC 放入同一個 SoC 封裝中,因而需要多個封裝步驟,造成今天 HBM 的成本都很高。但是,隨著與 AI 相關的應用及需求的增加,在不久的將來,HBM 的價格都將變得物有所值?!?/p>

功率是第一位的

毫不奇怪,功率管理是 AI / ML 應用中的首要考慮因素。對于數(shù)據(jù)中心以及邊緣設備都是如此。

在 SoC 中,分配給內(nèi)存的功率可以分為三個部分。

Rambus 的 Woo 說:“首先是從 DRAM 內(nèi)核中獲取 bit 所消耗的功率,這方面您無法投機取巧,您必須把數(shù)據(jù)位從 DRAM 內(nèi)核中讀取出來才能發(fā)揮它的作用。其次,和移動數(shù)據(jù)相關的功率,即與數(shù)據(jù)線兩端電路相關的功率。第三,在 DRAM 中還有 SoCPHY和接口。事實證明,這些存儲器本身耗電只占三分之一,其它三分之二的功率則用于在 DRAM 和 SoC 這兩個芯片之間來回移動數(shù)據(jù),這個比例有點嚇人,因為這意味著將數(shù)據(jù)從 DRAM 內(nèi)核中讀取出來 - 您必須要做的 - 并不是控制功率的主要因素。在嘗試提高功率效率時,如果您考慮將這些東西都堆疊在一起,則可以省掉很多這種功耗,HBM 器件就是這么做的。如果您考慮將 SoC 與 DRAM 堆疊在一起,那些和數(shù)據(jù)通信相關的功率可能就會下降很多倍甚至是一個數(shù)量級。那就是您可能節(jié)約功率的地方。”

圖 1:HBM2 存儲器系統(tǒng)功率。資料來源:Rambus

這里沒有免費的午餐。 Woo 表示:“如果要這樣做,那么現(xiàn)在您將受到 DRAM 內(nèi)核功率的更多限制,并且您必須考慮如何降低 DRAM 內(nèi)核功率,以使整體體積變小?!?/p>

這是一個正在進行中的研究領域,但是解決方案的技術路線現(xiàn)在還并不明朗。隨著越來越多的比特被放置到芯片上,它們會變得越來越小,所以一個比特就容納不下太多的電子了。結果是,很難確定這個比特位到底是 1 還是 0,而且它們保持所需電子狀態(tài)的時間可能會降低,所以需要更加頻繁地進行刷新。

新材料和新 cell 設計可能會有所幫助。另一個選擇可能是管理PHY的電源,但是所有事物之間都存在循環(huán)依賴關系,因此PHY面臨的挑戰(zhàn)確實非常困難。

Woo 表示:“隨著速度的提高,需要做更多的工作來確保數(shù)據(jù)的正確傳輸,這里存在著一場拉鋸戰(zhàn)。這和拍賣師很相似,他們開口就得大聲說話。在 PHY 上也有同樣的現(xiàn)象。為了繼續(xù)區(qū)分信號,您必須具有適當?shù)姆龋虼颂魬?zhàn)之一是如何設定正確的幅度,避免信號的模糊,以確保對方接收到的正是您所發(fā)送的。為了清楚地指明在數(shù)據(jù)線路上來回通信的符號,需要進行大量的工作。也有一些其他嘗試降低幅度的技術,但它們都是折衷方案。通常,人們不希望更改其基礎架構。如果其它條件不變的話,人們會選擇增量式的改進而不是革命性的改進。這就是挑戰(zhàn)所在之處?!?/p>

片上存儲器與片外存儲器

如今,AI / ML SoC 架構中的另一個重大折衷是將內(nèi)存放在哪里。盡管很多時候 AI 芯片都具有片上存儲器,但片外存儲器對于 AI 的訓練至關重要。

Cadence 的 Greenberg 說:“問題主要在于您要為神經(jīng)網(wǎng)絡存儲多少數(shù)據(jù)。每個神經(jīng)元都需要一定數(shù)量的存儲空間。每個人都希望使用片上存儲器,只要您有條件可以使用片上存儲器,肯定就想使用它。它的速度超快,功耗超低,但是價格昂貴。在預算一定的情況下,您在主芯片上放每一平方毫米的內(nèi)存就意味著芯片上的邏輯和其他功能就少了一平方毫米的面積?!?/p>

片上存儲器非常昂貴,因為它實質上是使用邏輯工藝制造的。他說:“假設我現(xiàn)在使用的邏輯工藝是 7nm 或 5nm 工藝,如果制造一個 16 層內(nèi)存的話,將會非常昂貴。如果您可以在分立芯片上制造內(nèi)存,則可以針對成本目標優(yōu)化內(nèi)存工藝。不僅不需要怎么限制金屬層的數(shù)量,而且分立內(nèi)存芯片的每平方毫米成本大大低于 7nm 或 5nm 邏輯芯片的每平方毫米成本?!?/p>

大多數(shù) AI / ML 工程團隊都在為選擇片內(nèi)存儲還是片外存儲而苦苦掙扎,因為這些設計仍處于其生命周期的早期。Greenberg 說:“每個人剛開始時都希望使用片內(nèi)內(nèi)存。這方面真沒有真正可以查閱的標準。在大多數(shù) AI 芯片中,其版圖布局實際上是有所不同的。業(yè)界尚未決定 AI 的最佳架構,因此,我們現(xiàn)在基本上仍處于 AI 芯片架構的試驗階段,并朝著大多數(shù)人可能會適應的方向發(fā)展。所以,今天的 AI 設計仍然非常開放,我們可以看到很多創(chuàng)新。那么,該如何推薦內(nèi)存類型呢?實際上,這個問題又回到了每個人查看內(nèi)存時的一些關鍵參數(shù)上,您需要多少內(nèi)存?需要存儲多少 GB 的數(shù)據(jù)?速度想達到多快?您能安排多少 PCB 面積?你想花多少錢?每個人在求最優(yōu)解時的方法都多多少少會有所不同。”

這些決定會影響 AI / ML 芯片的各個方面,包括專用加速器。那里的主要選擇取決于性能、功率和面積,云計算和邊緣計算芯片之間的界限很清晰。

Cadence Tensilica 集團產(chǎn)品營銷總監(jiān) Suhas Mitra 說:“云計算和邊緣計算這兩種情況存在千差萬別。它們是有相似之處,但更大的是不同之處。如果您正在為數(shù)據(jù)中心云設計處理器,那么就如何存儲,選擇什么樣的內(nèi)存層次結構、如何放置內(nèi)存等方面,功率和面積就很有意義。”

對于邊緣計算,權衡的復雜性仍繼續(xù)增加,在傳統(tǒng) PPA(功率、性能、面積)公式中增加了第四個變量 - 帶寬。Mitra 說:“討論的范疇應該是關于 PPAB 的,因為我們需要就這四個因素不斷地進行權衡調(diào)整。在 AI / ML 處理器設計或加速器設計中,如何確定功率、性能、面積、帶寬的折衷,在很大程度上取決于工作負載的性質。從根本上講,當您談論邊緣計算的問題時,在考慮有限的面積內(nèi)實現(xiàn)了多少性能時還必須考慮到能源效率問題,或者說,消耗這些功率,我可以獲得多少性能?我們一直在關注這些指標。”

他指出,這就是為什么人們花了這么多的時間在內(nèi)存接口上的原因。對于處理器 / 加速器設計者,這些考量會采用不同的形式?!靶问交旧吓c AI 工作負載有關。我如何確保當我的工作空間很小時,可以以非常有效的方式進行計算?之所以如此,是因為您不能為了計算犧牲太多的面積或太大的功率。實現(xiàn)這個工作負載,最佳的配置是什么?您可以查看不同的工作負載,并嘗試計算出應該是什么,每秒應該有多少幀,每秒每瓦應有多少幀,每秒每平方毫米應有多少幀?!?/p>

結論

人工智能的體系架構仍處于快速進化的狀態(tài)。所有人都在猜測它何時穩(wěn)定以及是否會穩(wěn)定下來,這使得判斷自己的選擇是否正確及其正確性會持續(xù)多久變得更加困難。

“您走對路了嗎?這個問題很明確,但是有很多不同的答案?!盡itra 說?!霸趥鹘y(tǒng)處理器設計中,如果我以這樣的方式設計它,那么它看起來就是這個樣子。因此,所有人都去設計處理器IP,人們還設計出一些變體,例如 VLIW 與超標量等。但是,最終勝出的永遠不會只有一種設計。您會發(fā)現(xiàn)有許多可以勝出的設計。這幾乎就像是說給了您 40 個選項,而不是一個解決方案。展望未來,您將看到人們將做出更多這些架構選擇,因為 AI 對于不同的垂直領域具有許多不同的含義?!?/p>

作者:ANN STEFFORA MUTSCHLER