内存墙,多核CPU的终结者?
原文地址:http://www.ed-china.com/ART_8800045174_400004_500008_OT_8f4eb612.HTM
多核處理器是當今計算領域的主導,而多核芯片則遍布從蘋果的iPad到富士通K超級計算機的各種平臺。2005年,由于功耗將單核CPU的時鐘速度限制在3GHz,英特爾推出了雙核的酷睿(Core 2 Duo)處理器。從那時起,多核CPU和圖形處理單元(GPU)就主導了計算機架構。在每個插槽上集成更多內核便成為處理器繼續拓展摩爾定律的方式。
?
在邁向多核的道路中出現了一件有趣的事情:對處理器的利用率開始降低。初看來,英特爾Sandy Bridge服務器有8個3GHz內核,Nvidia Fermi GPU有512個浮點運算引擎,似乎能線性地發揮多核的優勢。
?
但超級計算領域出現了令人擔憂的趨勢:為大型數據應用部署數千個多核CPU和GPU插槽預示著多核有嚴重的問題。根據每秒百萬個浮點操作(Mflops)峰值的比例,當今的超級計算機的利用率還不到10%。原因很簡單:輸入-輸出(I/O)并沒有隨著多核的每秒百萬條指令(MIPS)同步發展。
?
內存體系和內存墻
?
早在80年代,“內存墻”的說法就已經出現了,用于描述CPU時鐘速度和芯片外內存和硬盤I/O速度差距。一個有關GPU的例子就能說明內存墻的問題。
?
2005年,當時領先的GPU有192個浮點運算內核,而今天的領先GPU則有512個浮點運算內核。這六年間,主要的GPU的I/O管道(I/O pipe)卻沒有變。6年前的GPU采用16顯得PCI Express Gen2接口,今天的GPU也是如此。結果造成從2005年以來,GPU每個內核的I/O速率就以2.7倍速度降低。
?
片上緩存的速度是片外DRAM的10倍至100倍,這本應該解決內存墻的問題。但緩存也有自身問題,ARM架構應用處理器的L1和L2緩存占據了一半以上的硅片空間。所以緩存,而非計算部分消耗了相當比例的處理能力。
?
緩存控制算法和應用密切相關:有時緩存包含了應用所需的數據,有時不包含。與其讓緩存控制算法進行有根據的猜測,決定數據的存儲位置,還不如優化緩存利用率,降低緩存功耗,如果程序員可以控制緩存和片外存儲數據交換的話。
?
當今的內存架構包括四類:DRAM、Flash閃存和硬盤。主流的DDR3內存運行速度為4Gb/s,flash閃存速度為500Mb/s, 硬盤僅有100Mb/s的數據傳輸速度。
?
如果不使用片上緩存,就面臨著帶寬降低、延遲增加的情況,這會進一步降低內存的有效速度。只有在應用呈現良好數據分布,或者在重用的時候才能達到超過20Gb/s的緩存帶寬。如果沒有數據的局部性,緩存就不會降低內存的瓶頸。
?
超級計算之前將計算密集型應用和I/O密集型應用分開,武斷地劃分出了“每條指令不會有多于一個的存儲器操作數”(one operand per instruction)的臨界值。如果一個應用中每條指令需要多于1個存儲器操作,就會被視為I/O密集型,如果少于1個操作,就視其為計算密集型。
?
推出多核、單指令流多數據流(SIMD)和多媒體加速器等特性,CPU和GPU的計算能力早已超過了I/O速率。計算能力的進步讓多核應用成為I/O密集型應用,使得超級計算能力的利用率低于前文所述的10%。
?
架構方案
?
計算機架構師改進了動態內存存取(DMA)技術以降低I/O瓶頸。通常通過硬件來支持DMA,讓內存讀取操作和CPU、GPU的操作同步進行。
?
硬件DMA技術的例子包括英特爾 的I/O加速技術(I/OAT),Nvidia的GPUdirect和ARM的AMBA DMA引擎。最近,Nvidia為其CUDA工具箱增加了CudaDMA軟件,借助CudaDMA,應用線程可以從計算中獨立出來進行I/O操作。類似地,超級計算應用也開始采用專門的多核處理器內核進行I/O(DMA)操作。
?
最終,企業級軟件公司如Google Sawzall和ApacheHadoop都正在部署新的并行計算模式如Map/Reduce(MR)。諷刺的是Map和Reduce通過磁盤文件交換中間數據,而磁盤文件是存儲速度最慢的架構。MR和Hadoop線程只在包含大量數據輸入或中間輸出文件的磁盤或者磁盤附近執行操作。
?
不同于建構傳統包含三個分工明確但昂貴的子系統(一個存儲服務器、一個計算服務器和連接二者的高速互聯系統)的超級計算機,MR和Hadoop從頭顛覆了傳統的超級計算,而是運行在本地的分布式數據上。原因很簡單:數據遷移而非計算才是超級計算最耗能的部分。
?
移動“更小的”數據集
?
為了在更接近存儲輸入數據集的硬盤的地方進行計算,一些研究人員(包括我)正在開拓新方法以減少用于超級計算和多核處理的數據集的量。來自氣象建模、多個物理實驗、基因序列和地震處理等“大型數據”通常都以數TB計,因此數據量減少2倍或者4倍對于這類數據結構來說,將帶來非常顯著的經濟效益。
?
從醫學影像、無線基礎設施的數據壓縮結果來看, 真實世界的X光的數據集,超聲波反射和3G/4G無線信號可以在不改變最終結果的情況下被壓縮。類似的技術正在用于為包括浮點值等更廣泛的數據類型降低多核內存墻。
?
總之,革新的DMA技術、新的編程模式和創新的數據壓縮技術可能會顯著降低多核內存墻,讓多核用戶能夠更快速地得到結果。
?
?
作者:Al Wegener,Samplify System CTO兼創始人,擁有巴克內爾大學EE學士學位和斯坦福大學計算機碩士學位。
轉載于:https://www.cnblogs.com/yazhouren/archive/2012/08/21/2649243.html
總結
以上是生活随笔為你收集整理的内存墙,多核CPU的终结者?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 隐藏Content-Location标头
- 下一篇: hdu区域赛在线热身赛 暨 第十二场组队