測試前的操作

測試中研究人員發(fā)現(xiàn),大部分的CPU架構(gòu)都會預(yù)先獲取內(nèi)存,然后進行亂序執(zhí)行,以此隱藏內(nèi)存的延遲,為了測到真正的主內(nèi)存延遲,測試人員進行了很多操作:

為測到真正的內(nèi)存延遲,進行的騷氣操作

首先,從目標內(nèi)存中分配一定數(shù)量的內(nèi)存緩沖區(qū),為了不命中LLC,分配的緩沖區(qū)要盡可能的大,至少要大于LLC。內(nèi)存緩沖區(qū)拆分成了64字節(jié)的cacheline。

其次,將cacheline緩存線對象鏈表進行隨機排序,這樣一來,遍歷鏈表會導(dǎo)致跳轉(zhuǎn)到遠處的cacheline對象。

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

測試結(jié)果

經(jīng)測試后,AIST在Paper中表示,目前關(guān)于傲騰數(shù)據(jù)中心持久內(nèi)存的性能報告很少,傲騰數(shù)據(jù)中心持久內(nèi)存與DRAM的性能差距很大,相對于NAND的提升也非常大。以下是一些結(jié)論:

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

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

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

DRAM內(nèi)存和傲騰數(shù)據(jù)中心持久內(nèi)存的對比

上圖非常直觀的對比了DRAM內(nèi)存和傲騰持久內(nèi)存的性能差異,延遲上傲騰是DRAM內(nèi)存的四倍,四倍起碼還在一個數(shù)量級上。但我們也知道,這比毫秒級別的SSD們可快的多了去了。(1毫秒等于1百萬納秒)

 傲騰數(shù)據(jù)中心持久內(nèi)存開啟內(nèi)存交錯和不開啟的差別

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

這張Paper技術(shù)細節(jié)比較多,想看更多細節(jié)或者怕被小編誤讀,最好還是看完整版報告: https://arxiv.org/pdf/2002.06018.pdf 。 (DOIT朱朋博)

分享到

zhupb

相關(guān)推薦