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