英特爾傲騰持久內存延遲比DRAM差多少?

2019年4月份,英特爾發佈了傲騰數據中心持久內存,這是一款具有字節尋址能力的非易失性內存,能被操作系統識別為主內存,英特爾表示,

作為主內存其性能表現與DRAM內存相近,究竟有多相近呢?

最近,日本國家先進工業科學技術研究所(AIST)發佈了一篇Paper,非常細緻的將傲騰持久內存與DRAM內存進行了一番對比,測出傲騰數據中心持久內存延遲是DRAM的四倍。

簡介:傲騰數據中心級持久內存

值得小夥伴們注意的是2019年發佈的傲騰數據中心持久內存(Optane DCPMM)跟2017年發佈的傲騰內存(Optane Memory)可不一樣。

傲騰內存(Optane Memory)是插在PCIe NVMe接口上的,而傲騰數據中心持久內存(Optane DCPMM)是插在DIMM上的,如果設置的是App Direct模式的話,CPU就完全把他認作主內存了。

眾所周知,傲騰是基於3D Xpoint介質的,3D Xpoint是英特爾跟美光聯合研發的產物,在英特爾手裡,傲騰被打造成介於低成本NAND和有易失性的DRAM內存之間的方案。

傲騰發佈以來引起了許多OEM廠商的興趣,不過,目前傲騰只能支持自家的處理器,所以測試也選用的是至強處理器。

英特爾傲騰持久內存延遲比DRAM差多少?

配置環境

測試前的操作

測試中研究人員發現,大部分的CPU架構都會預先獲取內存,然後進行亂序執行,以此隱藏內存的延遲,為了測到真正的主內存延遲,測試人員進行了很多操作:

英特爾傲騰持久內存延遲比DRAM差多少?

為測到真正的內存延遲,進行的騷氣操作

首先,從目標內存中分配一定數量的內存緩衝區,為了不命中LLC,分配的緩衝區要儘可能的大,至少要大於LLC。內存緩衝區拆分成了64字節的cache line。

其次,將cache line緩存線對象鏈表進行隨機排序,這樣一來,遍歷鏈表會導致跳轉到遠處的cacheline對象。

第三,測量遍歷所有cache line對象所用的時間,並計算獲取cache line的平均延遲。在大多數情況下,CPU在遍歷cache line鏈表時候,如果沒有命中LLC會有短暫的暫停,這段時間算作是內存延遲。

測試結果

經測試後,AIST在Paper中表示,目前關於傲騰數據中心持久內存的性能報告很少,傲騰數據中心持久內存與DRAM的性能差距很大,相對於NAND的提升也非常大。以下是一些結論:

測試中,AIST使用的是自己的測試工具,測試發現傲騰數據中心持久內存隨機只讀延遲大約為374ns,隨機寫的延遲大約是391ns。只讀帶寬為38GB/s,寫帶寬為3GB/s,如果不開啟內存交錯(memory interleave),性能會差很多。

AIST認為,像大型HPC集群,AI工作負載等將從傲騰持久內存受益良多,但DRAM和傲騰持久內存之間的性能差異給系統軟件帶來了新的挑戰,這也是傲騰推廣普及中碰到的最大問題之一。

下圖有一個比較清晰的對比:

英特爾傲騰持久內存延遲比DRAM差多少?

DRAM內存和傲騰數據中心持久內存的對比

上圖非常直觀的對比了DRAM內存和傲騰持久內存的性能差異,

延遲上傲騰是DRAM內存的四倍,四倍起碼還在一個數量級上。但我們也知道,這比毫秒級別的SSD們可快的多了去了。(1毫秒等於1百萬納秒)

英特爾傲騰持久內存延遲比DRAM差多少?

傲騰數據中心持久內存開啟內存交錯和不開啟的差別


英特爾傲騰持久內存延遲比DRAM差多少?

計算體系各層級之間的延遲概況(供參考)

由於深入的技術細節很多,為防止誤讀,專家們最好還是看報告原文吧:

https://arxiv.org/pdf/2002.06018.pdf


分享到:


相關文章: