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廠商的興趣,不過,目前傲騰隻能支援自家的處理器,是以測試也選用的是至強處理器。

配置環境
測試前的操作
測試中研究人員發現,大部分的CPU架構都會預先擷取記憶體,然後進行亂序執行,以此隐藏記憶體的延遲,為了測到真正的主記憶體延遲,測試人員進行了很多操作:
為測到真正的記憶體延遲,進行的騷氣操作
首先,從目标記憶體中配置設定一定數量的記憶體緩沖區,為了不命中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記憶體的四倍,四倍起碼還在一個數量級上。但我們也知道,這比毫秒級别的SSD們可快的多了去了。(1毫秒等于1百萬納秒)
傲騰資料中心持久記憶體開啟記憶體交錯和不開啟的差别
計算體系各層級之間的延遲概況(供參考)
由于深入的技術細節很多,為防止誤讀,專家們最好還是看報告原文吧:
完整版報告
https://arxiv.org/pdf/2002.06018.pdf