您的位置:首頁>正文

人工智慧時代,資料中心需要新型記憶體

隨著所要處理、存儲和訪問的資料量的持續攀升, 資料中心之中也開始出現 DRAM 擴展和替代選擇。 這對資料中心的架構有很大的影響, 因為其現在的目標是讓處理過程盡可能地靠近資料並減少每個地方的延遲。

在馮·諾依曼計算架構中, 記憶體一直以來都是一個關鍵部分。 現今資料中心中通常使用的記憶體是基於 DDR4 的 DIMM, 還有一些直接連接到 CPU 的傳統 DDR3。 但對於資料中心中的許多新應用(包括人工智慧、機器學習和深度學習)而言, 這些記憶體都太慢了。 所以人們正在努力研究如何提升資料存取的速度,

同時又不會給電力預算帶來太大的影響。

相比於之前的 DRAM 版本, DDR5 將能帶來顯著的速度提升。 記憶體製造商已經堅持了很多年, 說 DDR4 之後不會有後續了。 DDR4 曾經伴隨著智慧手機和其它移動設備的興起為我們帶來了流視頻和幾乎無處不在的影像處理。 據固態技術協會(JEDEC)稱, DDR5 的頻寬和密度將達到 DDR4 的兩倍, 並且也有更好的通道效率(channel efficiency)。

但 DDR5 本身很可能是不夠的。 在多個市場中由各種互連設備中的感測器生成的資料的量正在爆發式增長, 因此為了理解這些資料, 所需的計算能力也在水漲船高。 機器學習/人工智慧/深度學習也在助長對其它新型記憶體的需求;不管是單獨的應用方面, 還是作為互連設備的擴展方面都是如此。

GDDR5 是選擇之一, 這是一種同步圖形隨機存儲記憶體(SGRAM/synchronous graphics random-access memory)。 GDDR5 是為顯卡、遊戲機和高性能計算而開發的。 比如, 英偉達就在其顯卡中使用了這項技術來助力深度學習和機器學習應用。

“如果你看看機器學習和深度學習, 基本上也就兩件事——一個必須訓練的資料集和得到的模型, 該模型然後可部署用於推理。 ”Rambus 高級產品行銷經理 Sarvagya Kochak 說, “資料的訓練需要非常密集的計算資源, 這也是重型 GPU 非常適合這類應用的原因。 相比于 CPU, GPU 更適合低精度的、浮點型的運算。 FPGA 也可以使用, 而且確實有些公司在用。 它們在功耗上面表現更好。 具體用哪種很大程度上取決於所要開發的模型。 ”

所有這些架構都有一個共同之處:需要處理和存儲大量資料, 並且需要非常快的存取。

到目前為止, 還沒有一種能夠滿足所有需求的記憶體類型;在資料中心中, 這讓人類進行了一些非同尋常的技術組合。

“人們在嘗試做人工智慧、深度學習和超級計算, 我們正開始看到這些應用, 這些方面對 HBM2(高頻寬記憶體 2)的興趣很大。 ”Cadence 的 IP Group 的產品行銷組總監 Marc Greenberg 說, “HBM2 器件的一個堆疊就能為你提供每秒 Tb 級的記憶體頻寬, 這是非常大的。 但使用我們現在已有的技術, 你只能在單一一個 HBM2 堆疊中存儲 4 GB。 從廣泛領域的許多方面看, 這都算不上很多資料, 所以你沒法在 HBM 中存儲非常大的資料庫。 但你也許可以在 HBM 中存儲大型資料庫的索引。 這種架構可能就只有幾個 GB 的 HBM, 從而可以非常快速的存取;而更大量的記憶體可以安置在 DRAM 匯流排上——不管是用 DRAM 還是 NVM(非易失性記憶體)。

所以你實際上在這裡使用了兩種方案。 ”

圖 1:HBM2 配置, 來自 SK Hynix

儘管尋求更高頻寬和更大容量的記憶體的大致趨勢依舊沒有改變, 但實現這一目標的路徑則在發生著變化。

“HBM2 技術提供了非常非常高速度的頻寬, 目前正被用於圖形應用、網路交換機應用和超級計算/高性能計算應用。 ”Greedberg 說, “在主流的伺服器中你還看不到它們的身影。 主流伺服器非常看重容量。 如果你想在這些伺服器上運行大量虛擬機器或類似某種巨型資料庫應用的東西, 那麼你就需要在靠近 CPU 的地方安置大量存儲。 在靠近 CPU 的地方安置記憶體是很重要的。 你可以將許多 TB 的資料存儲在 SSD 或磁片上, 但那就有點遠了,

訪問這些資料需要花去大量時間。 因此, 現在的一個趨勢是儘量在 DRAM 匯流排上安置更多記憶體, 這可以通過 DDR5 實現, 或者也許可以將一些快閃記憶體放在 DRAM 匯流排上。 如果你想在 DRAM 匯流排上放一些快閃記憶體, 你有一些不同的方法可選, 包括 NVDIMM-N 協議。 ”

局限和解決方案

但是, 每一次變化都有需要克服的技術難題。 比如, 可以直接連接到 CPU 的 DRAM 的量是有限的, 這對資料輸送量和整體處理性能而言都是一個大問題。

“那是第一個問題。 ”Kochak 說, “那基本上一直以來都是最大的難題, 因為 DRAM 器件的擴展速度沒有真正跟上。 三星、SK海力士和美光等大型記憶體製造商難以實現越來越高的密度。 目前 4 Gb 和 8 Gb器件正在大量生產出貨。 16 Gb 器件應該會在一兩年內上市, 但這會帶來一個非常顯著的難題,因為從 CPU 的角度看,CPU 速度在過去十年中都沒有顯著提升。它們或多或少已經持平了,因為電晶體速度不能再超過當前已有的水準了。”

為了提升處理速度,CPU 供應商在處理器中增加了更多核心。但這種做法也有自己的問題。

“這種方法的問題是 CPU 中有一個集成的記憶體控制器,並連接到了 DRAM DIMM。”Kochak 說,“更老的 CPU 有兩個記憶體控制器。現在則有四個記憶體控制器。不久後就會有六個記憶體控制器,而且可以預計未來每個 CPU 甚至可能會有八個記憶體控制器。記憶體控制器越來越多的原因是需要送入所有核心中的資料越來越多了,所以如果記憶體控制器太少,資料就沒法從 DRAM 送入這些核心。如果這些核心不處理資料,那就沒有使用它們的意義。隨著核心數的增長,DRAM 和系統之間就將需要更多頻寬。”

因為頻寬增大了,所以就需要大量記憶體。但隨著頻寬持續增長,所需的記憶體還會更多。他說:“看看記憶體一直以來的增長速度以及每個 CPU 連接的記憶體的增長速度,情況並不好。”

英特爾已經在嘗試使用 3D XPoint 來解決其中一些容量相關的問題了。3D XPoint 是一種相變記憶體,應該既能提供快閃記憶體一樣的容量,又能帶來 DRAM 一樣的性能。

Kochak 說:“從用例的角度看,只是在記憶體通道上放一個非易失性記憶體(NVM)對系統而言毫無用處。你必須要能使用這個設施,並且讓主機系統、平臺和應用都知道這個非易失性記憶體,讓你能用它做些炫酷的事情。”

持久型記憶體(persistent memory)

這就是需要考慮 NVDIMM 的地方了。NVDIMM 是指非易失性雙列直插式存儲模組(non-volatile DIMM),它既能作為標準 DRAM 工作,也能有快閃記憶體那樣的持久性。一個典型的 NVDIMM 模組包含 DRAM、快閃記憶體、控制邏輯和一個獨立電源;其中獨立電源的作用是在出現意外斷電事件、系統崩潰或計畫中的停機時,記憶體中的關鍵資訊能得以保留。所以它是一種持久型記憶體器件。

圖 2:NVDIMM 模組,來自 HPE

NVDIMM-N 是將快閃記憶體放在了 DRAM 匯流排上用作防備斷電事件的備份機制,Greenberg 說:“很多伺服器都需要能在斷電發生後恢復狀態。如果你想像這是某種具有某些財務能力的機器並且在斷電時有一項交易剛好開始,那麼它就必須要能恢復並且記得當時正在進行的工作並完成這筆交易。也有其它一些相似的技術能夠完成這個任務,比如帶有備用電池的 DIMM——當發生斷電時,電池會將 DRAM 中的資料保存到磁片上。”

Kochak 說儘管英特爾、美光、索尼、Viking Technology、三星和 Netlist 等多家公司都已經在出貨 NVDIMM 了,但 SNIA(網路存儲工業協會)還在努力推進這一標準,另外還誕生了另一個為持久型記憶體的應用而開發程式設計模型的組織。

隨著時間的推移,他相信應用開發者將會弄清楚使用持久性記憶體的方式。“我們今天的很多軟體都是圍繞一個關鍵開發的——DRAM 是易失性的,你會失去 DRAM 中的資料,所以在設計你的系統時,總是需要考慮故障。要做到這一點,需要做很多事情,比如設置檢查點和記錄日誌。如果你不必做大量這些操作,你就可以使用同樣的架構更快速有效地找到解決問題的方法以及提升應用的性能。然後你不需要為應付易失性系統而進行其它操作,因為這個系統的記憶體是非易失性的。”

但這算不上是標準的隨插即用方法。當涉及到在 NVDIMM 中的設計以及連接到 CPU 或 SoC 時,每個人的做法都不一樣。

“每個人都想做得不同,這或多或少反映 了每種 SoC 都有所不同。”Greenberg 說,“每種 SoC 的記憶體需求都或多或少不同,所以在各個方面都有很大的不同。它們支持 DIMM 還是固定在板上?DIMM 支援多少通道?速度多快?什麼類型?需要支援什麼功能?每個人的需求都有點不一樣,每個人都想在尺寸和功耗上面進行優化。讓人們能靈活選擇是很重要的。”

選擇適合 CPU 的記憶體的主要考慮之一是記憶體頻寬需求的持續增長。他說:“常常有人要求我們説明他們推高頻率的界限,以及盡其所能地試圖提升記憶體匯流排的頻率。另外還有一個顯著的需求是增加可以連接在匯流排上的 DRAM 的量。在資料中心企業存儲空間中,使DRAM 總線速度更快的新方法有兩種。一是使用 DDR5 而非 DDR4。這是實現目標的主流方法。將你的記憶體管道從 DDR4 改成 DDR5。如果你確實需要在容量方面得到提升,你可能就需要看看 NVDIMM-P 了。”

會有用嗎?

使用先進記憶體設計系統可不是一件簡單的事情。西門子旗下 Mentor 的模擬部門的存儲產品專家 Ben Whitehead 說他花了大量時間與公司們談論他們的方法和工具,以便創造先進記憶體。

“NVDIMM 同時包含兩種技術——首先包含 DRAM 技術,所以它看起來就像是具有 DIMM 形式的 DRAM,但它還有非易失性的部分,不管是快閃記憶體還是什麼。如果你只是用 SSD 硬碟這樣的快閃記憶體驅動器,那麼驗證該設計的設計和難題會比實際的設計本身更加困難,因為現在快閃記憶體的特性已經非常複雜,它會導致其中出現設計難題。你可以想出一種滿足其架構要求的架構和設計,但要真正將其體現出來,並驗證它確實在做它需要做的事,那可就極其複雜了。”

問題涉及的範圍包含垃圾回收(garbage collection)、寫入放大(write amplification)和寫入位置,因為根據你執行寫入時 NAND 快閃記憶體的狀態,可能會出現多很多的寫入。

“如果你在一個特定的位址執行寫入,如果該位址已損壞,那你就需要移動它。”Whitehead 說,“所以你就擦除那個模組,然後將該資料寫入到一個不同的位置。這又會導致另一個會移動該模組的擾動。所以當該主機寫入一個模組時,你實際上有一個模組的 8、10、16 次寫入。[So you can actually have 8, 10, 16 writes of a block just from the host writing one block]這種主機上的放大和主機造成的流量會在後端造成數量驚人的瓶頸和性能問題,而你又很難預測。”

Whitehead 解釋說,這需要一種驗證方法,以創造這些情況。“你沒有必要必須創造它們——通常這些情況會在一個驅動器運行了 6 或 8 小時之後才會發生。一旦該驅動器寫滿了幾次之後,你就會真正開始看到這些性能特徵、這些瓶頸開始出現。這種設計本身並不直觀,但你可以創建管理這些功能的模組,不管是用固件的形式,還是硬體的形式。但要測試這些模組——只是說 SSD 的話,行業就會面臨非常艱難的難題。”

一種解決方案是將寫入快閃記憶體所需的東西全都用起來,並將其與 DRAM 結合在一起,讓該系統看起來就像是 DRAM。但這種做法的缺點是複雜度會翻倍。

“你確實需要在一個模擬器中查看整個系統的能力,或者一些獲取系統本身的能力,而不是將其分割成子模組——我們可能認為這些子模組或子系統的效果真的很好。”他說,“你必須將其放入系統之中,才能真正瞭解。我們可沒有時間來創造非常牢靠的、非常以 IP 為中心的、非常完美的、可以在任何系統中工作的子系統,因為時間根本不夠。我們可以創造出這種子系統,但所需的時間、金錢和開支會多得難以承受。公司需要盡可能快地將這些模組集成到系統當中,這樣他們才能找到僅與該配置相關的真正漏洞並推出產品。這是個難題。在 NAND 快閃記憶體中存在很多類比物理的問題,而且你必須在系統層面上加以解決。”

總結

隨著深度學習、機器學習和人工智慧等新應用的發展,資料中心也需要提升處理性能以便更快地處理更大規模的資料。為了實現伺服器架構中所需的記憶體,記憶體行業正在各種不同的有趣方向上努力。在這個快速演進的領域中,生態系統越來越確定資料應該保存在什麼地方、系統應該怎樣架構以及未來的瓶頸在哪裡。

記憶體是當今世界的一個重要組成部分,目前還沒有任何一種單一解決方案能夠解決所有問題。

原文連結:https://semiengineering.com/data-centers-turn-to-new-memories/

今天是《半導體行業觀察》為您分享的第1427期內容,歡迎關注。

但這會帶來一個非常顯著的難題,因為從 CPU 的角度看,CPU 速度在過去十年中都沒有顯著提升。它們或多或少已經持平了,因為電晶體速度不能再超過當前已有的水準了。”

為了提升處理速度,CPU 供應商在處理器中增加了更多核心。但這種做法也有自己的問題。

“這種方法的問題是 CPU 中有一個集成的記憶體控制器,並連接到了 DRAM DIMM。”Kochak 說,“更老的 CPU 有兩個記憶體控制器。現在則有四個記憶體控制器。不久後就會有六個記憶體控制器,而且可以預計未來每個 CPU 甚至可能會有八個記憶體控制器。記憶體控制器越來越多的原因是需要送入所有核心中的資料越來越多了,所以如果記憶體控制器太少,資料就沒法從 DRAM 送入這些核心。如果這些核心不處理資料,那就沒有使用它們的意義。隨著核心數的增長,DRAM 和系統之間就將需要更多頻寬。”

因為頻寬增大了,所以就需要大量記憶體。但隨著頻寬持續增長,所需的記憶體還會更多。他說:“看看記憶體一直以來的增長速度以及每個 CPU 連接的記憶體的增長速度,情況並不好。”

英特爾已經在嘗試使用 3D XPoint 來解決其中一些容量相關的問題了。3D XPoint 是一種相變記憶體,應該既能提供快閃記憶體一樣的容量,又能帶來 DRAM 一樣的性能。

Kochak 說:“從用例的角度看,只是在記憶體通道上放一個非易失性記憶體(NVM)對系統而言毫無用處。你必須要能使用這個設施,並且讓主機系統、平臺和應用都知道這個非易失性記憶體,讓你能用它做些炫酷的事情。”

持久型記憶體(persistent memory)

這就是需要考慮 NVDIMM 的地方了。NVDIMM 是指非易失性雙列直插式存儲模組(non-volatile DIMM),它既能作為標準 DRAM 工作,也能有快閃記憶體那樣的持久性。一個典型的 NVDIMM 模組包含 DRAM、快閃記憶體、控制邏輯和一個獨立電源;其中獨立電源的作用是在出現意外斷電事件、系統崩潰或計畫中的停機時,記憶體中的關鍵資訊能得以保留。所以它是一種持久型記憶體器件。

圖 2:NVDIMM 模組,來自 HPE

NVDIMM-N 是將快閃記憶體放在了 DRAM 匯流排上用作防備斷電事件的備份機制,Greenberg 說:“很多伺服器都需要能在斷電發生後恢復狀態。如果你想像這是某種具有某些財務能力的機器並且在斷電時有一項交易剛好開始,那麼它就必須要能恢復並且記得當時正在進行的工作並完成這筆交易。也有其它一些相似的技術能夠完成這個任務,比如帶有備用電池的 DIMM——當發生斷電時,電池會將 DRAM 中的資料保存到磁片上。”

Kochak 說儘管英特爾、美光、索尼、Viking Technology、三星和 Netlist 等多家公司都已經在出貨 NVDIMM 了,但 SNIA(網路存儲工業協會)還在努力推進這一標準,另外還誕生了另一個為持久型記憶體的應用而開發程式設計模型的組織。

隨著時間的推移,他相信應用開發者將會弄清楚使用持久性記憶體的方式。“我們今天的很多軟體都是圍繞一個關鍵開發的——DRAM 是易失性的,你會失去 DRAM 中的資料,所以在設計你的系統時,總是需要考慮故障。要做到這一點,需要做很多事情,比如設置檢查點和記錄日誌。如果你不必做大量這些操作,你就可以使用同樣的架構更快速有效地找到解決問題的方法以及提升應用的性能。然後你不需要為應付易失性系統而進行其它操作,因為這個系統的記憶體是非易失性的。”

但這算不上是標準的隨插即用方法。當涉及到在 NVDIMM 中的設計以及連接到 CPU 或 SoC 時,每個人的做法都不一樣。

“每個人都想做得不同,這或多或少反映 了每種 SoC 都有所不同。”Greenberg 說,“每種 SoC 的記憶體需求都或多或少不同,所以在各個方面都有很大的不同。它們支持 DIMM 還是固定在板上?DIMM 支援多少通道?速度多快?什麼類型?需要支援什麼功能?每個人的需求都有點不一樣,每個人都想在尺寸和功耗上面進行優化。讓人們能靈活選擇是很重要的。”

選擇適合 CPU 的記憶體的主要考慮之一是記憶體頻寬需求的持續增長。他說:“常常有人要求我們説明他們推高頻率的界限,以及盡其所能地試圖提升記憶體匯流排的頻率。另外還有一個顯著的需求是增加可以連接在匯流排上的 DRAM 的量。在資料中心企業存儲空間中,使DRAM 總線速度更快的新方法有兩種。一是使用 DDR5 而非 DDR4。這是實現目標的主流方法。將你的記憶體管道從 DDR4 改成 DDR5。如果你確實需要在容量方面得到提升,你可能就需要看看 NVDIMM-P 了。”

會有用嗎?

使用先進記憶體設計系統可不是一件簡單的事情。西門子旗下 Mentor 的模擬部門的存儲產品專家 Ben Whitehead 說他花了大量時間與公司們談論他們的方法和工具,以便創造先進記憶體。

“NVDIMM 同時包含兩種技術——首先包含 DRAM 技術,所以它看起來就像是具有 DIMM 形式的 DRAM,但它還有非易失性的部分,不管是快閃記憶體還是什麼。如果你只是用 SSD 硬碟這樣的快閃記憶體驅動器,那麼驗證該設計的設計和難題會比實際的設計本身更加困難,因為現在快閃記憶體的特性已經非常複雜,它會導致其中出現設計難題。你可以想出一種滿足其架構要求的架構和設計,但要真正將其體現出來,並驗證它確實在做它需要做的事,那可就極其複雜了。”

問題涉及的範圍包含垃圾回收(garbage collection)、寫入放大(write amplification)和寫入位置,因為根據你執行寫入時 NAND 快閃記憶體的狀態,可能會出現多很多的寫入。

“如果你在一個特定的位址執行寫入,如果該位址已損壞,那你就需要移動它。”Whitehead 說,“所以你就擦除那個模組,然後將該資料寫入到一個不同的位置。這又會導致另一個會移動該模組的擾動。所以當該主機寫入一個模組時,你實際上有一個模組的 8、10、16 次寫入。[So you can actually have 8, 10, 16 writes of a block just from the host writing one block]這種主機上的放大和主機造成的流量會在後端造成數量驚人的瓶頸和性能問題,而你又很難預測。”

Whitehead 解釋說,這需要一種驗證方法,以創造這些情況。“你沒有必要必須創造它們——通常這些情況會在一個驅動器運行了 6 或 8 小時之後才會發生。一旦該驅動器寫滿了幾次之後,你就會真正開始看到這些性能特徵、這些瓶頸開始出現。這種設計本身並不直觀,但你可以創建管理這些功能的模組,不管是用固件的形式,還是硬體的形式。但要測試這些模組——只是說 SSD 的話,行業就會面臨非常艱難的難題。”

一種解決方案是將寫入快閃記憶體所需的東西全都用起來,並將其與 DRAM 結合在一起,讓該系統看起來就像是 DRAM。但這種做法的缺點是複雜度會翻倍。

“你確實需要在一個模擬器中查看整個系統的能力,或者一些獲取系統本身的能力,而不是將其分割成子模組——我們可能認為這些子模組或子系統的效果真的很好。”他說,“你必須將其放入系統之中,才能真正瞭解。我們可沒有時間來創造非常牢靠的、非常以 IP 為中心的、非常完美的、可以在任何系統中工作的子系統,因為時間根本不夠。我們可以創造出這種子系統,但所需的時間、金錢和開支會多得難以承受。公司需要盡可能快地將這些模組集成到系統當中,這樣他們才能找到僅與該配置相關的真正漏洞並推出產品。這是個難題。在 NAND 快閃記憶體中存在很多類比物理的問題,而且你必須在系統層面上加以解決。”

總結

隨著深度學習、機器學習和人工智慧等新應用的發展,資料中心也需要提升處理性能以便更快地處理更大規模的資料。為了實現伺服器架構中所需的記憶體,記憶體行業正在各種不同的有趣方向上努力。在這個快速演進的領域中,生態系統越來越確定資料應該保存在什麼地方、系統應該怎樣架構以及未來的瓶頸在哪裡。

記憶體是當今世界的一個重要組成部分,目前還沒有任何一種單一解決方案能夠解決所有問題。

原文連結:https://semiengineering.com/data-centers-turn-to-new-memories/

今天是《半導體行業觀察》為您分享的第1427期內容,歡迎關注。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示