2012全國高性能計算大會第三天來自中國科學院計算技術(shù)研究所副研究員譚光明發(fā)表了關(guān)于“面向GPU的快速稠密矩陣乘算法設(shè)計和實現(xiàn)”的演講。譚光明研究員講解了關(guān)于GPU如何優(yōu)化,提高GPU處理的性能。
【圖】中國科學院計算技術(shù)研究所副研究員譚光明
目前高性能計算面臨著一些問題,首先高性能計算是以低功耗、低占地實現(xiàn)Petaflops計算跨越為目標的,但是要想做到這些,并不是那么容易,在目前幾個主流的GPU廠商比如NIVIDA和AMD在GPU工作的效率上都不是很高,像在CUDA DGEMM的NVIDIA Fermi上的效率低于50%在ACML DGEMM的AMD Cypress上的效率低于50%。
目前GPU—CPU都面臨一個存儲強的問題,主要是帶寬和延遲。造成這一問題的主要原因是GPU的矩陣乘算法上。
【圖】基本GPU矩陣乘算法
在看到GPU矩陣乘算法的問題之后,我們考慮使用更寬的訪存指令來提升浮點理論效率,但這個方法也有一個潛在的問題,就是更寬的訪存儲指令增加了指令流水的延遲。延遲增加了,如何降低延遲呢?譚光明研究員表示,采用數(shù)據(jù)滲透優(yōu)化技術(shù),分離計算和訪存操作,共享存儲中的雙緩沖機制。
【圖】低延遲尋址模式
【圖】細粒度軟件流水算法
通過這種方法優(yōu)化之后GPU的性能得到了明顯的提升
【圖】NVIDIA Fermi性能得到提升
【圖】AMD Cypress性能對比
在改善了GPU性能之后,接踵而來的問題就是在多個GPU存在的時候如何保證正常的運算和性能的保持。譚光明研究員表示,在多個GPU存在的時候影響性能的有兩方面第一個就是PCIe 的總線影響另一個是CPU內(nèi)存的影響。
【圖】PCIe 總線影響
【圖】CPU內(nèi)存影響
那么優(yōu)化性能的微體系結(jié)構(gòu)因素,主要是基于128-bits訪存儲指令的新算法提高計算指令的比例,第二新的雙緩沖算法,指令調(diào)度算法減少長延遲。第三基于量化分析提出改善新體系結(jié)構(gòu)。