測(cè)試前的操作
測(cè)試中研究人員發(fā)現(xiàn),大部分的CPU架構(gòu)都會(huì)預(yù)先獲取內(nèi)存,然后進(jìn)行亂序執(zhí)行,以此隱藏內(nèi)存的延遲,為了測(cè)到真正的主內(nèi)存延遲,測(cè)試人員進(jìn)行了很多操作:
首先,從目標(biāo)內(nèi)存中分配一定數(shù)量的內(nèi)存緩沖區(qū),為了不命中LLC,分配的緩沖區(qū)要盡可能的大,至少要大于LLC。內(nèi)存緩沖區(qū)拆分成了64字節(jié)的cacheline。
其次,將cacheline緩存線對(duì)象鏈表進(jìn)行隨機(jī)排序,這樣一來(lái),遍歷鏈表會(huì)導(dǎo)致跳轉(zhuǎn)到遠(yuǎn)處的cacheline對(duì)象。
第三,測(cè)量遍歷所有cacheline對(duì)象所用的時(shí)間,并計(jì)算獲取cacheline的平均延遲。在大多數(shù)情況下,CPU在遍歷cacheline鏈表時(shí)候,如果沒(méi)有命中LLC會(huì)有短暫的暫停,這段時(shí)間算作是內(nèi)存延遲。
測(cè)試結(jié)果
經(jīng)測(cè)試后,AIST在Paper中表示,目前關(guān)于傲騰數(shù)據(jù)中心持久內(nèi)存的性能報(bào)告很少,傲騰數(shù)據(jù)中心持久內(nèi)存與DRAM的性能差距很大,相對(duì)于NAND的提升也非常大。以下是一些結(jié)論:
測(cè)試中,AIST使用的是自己的測(cè)試工具,測(cè)試發(fā)現(xiàn)傲騰數(shù)據(jù)中心持久內(nèi)存隨機(jī)只讀延遲大約為374ns,隨機(jī)寫(xiě)的延遲大約是391ns。只讀帶寬為38GB/s,寫(xiě)帶寬為3GB/s,如果不開(kāi)啟內(nèi)存交錯(cuò)(memory interleave),性能會(huì)差很多。
AIST認(rèn)為,像大型HPC集群,AI工作負(fù)載等將從傲騰持久內(nèi)存受益良多,但DRAM和傲騰持久內(nèi)存之間的性能差異給系統(tǒng)軟件帶來(lái)了新的挑戰(zhàn),這也是傲騰推廣普及中碰到的最大問(wèn)題之一。
下圖有一個(gè)比較清晰的對(duì)比:
上圖非常直觀的對(duì)比了DRAM內(nèi)存和傲騰持久內(nèi)存的性能差異,延遲上傲騰是DRAM內(nèi)存的四倍,四倍起碼還在一個(gè)數(shù)量級(jí)上。但我們也知道,這比毫秒級(jí)別的SSD們可快的多了去了。(1毫秒等于1百萬(wàn)納秒)
傲騰數(shù)據(jù)中心持久內(nèi)存開(kāi)啟內(nèi)存交錯(cuò)和不開(kāi)啟的差別
計(jì)算體系各層級(jí)之間的延遲概況(供參考)
這張Paper技術(shù)細(xì)節(jié)比較多,想看更多細(xì)節(jié)或者怕被小編誤讀,最好還是看完整版報(bào)告: https://arxiv.org/pdf/2002.06018.pdf 。 (DOIT朱朋博)