摘要:摘要:本文提出了一種新的性能評估模型multi-roofline模型。作為roofline模型的延伸,multi-roofline模型可以為異構計算平臺提供二元域算法建模,分析算法在異構計算平臺上所能取得的理論
摘要:本文提出了一種新的性能評估模型——multi-roofline模型。作為roofline模型的延伸,multi-roofline模型可以為異構計算平臺提供二元域算法建模,分析算法在異構計算平臺上所能取得的理論極限,并能幫助找到算法的理論瓶頸,為算法在異構計算資源上的部署提供有力支持。
關鍵詞:二元域運算;理論性能預測;multi-roofline
1.引言
隨著計算機硬件的不斷發展,在不同的計算平臺下如何評估特定算法過程可能取得的效果,在當前處理器發展的新階段具有重要的意義,尤其是當運行算法需要在大量并行節點間展開,而每個運算節點采用的是異構處理器這種特殊的計算平臺。此時必須研究在計算節點上采用何種計算資源組合能取得較好的計算效果。通用性能模型中,2008年SamuelWilliams等[1]提出的roofline模型受到了較多的關注。其模型簡潔的使用運算強度、運算性能峰值和帶寬峰值三個基本參數來分析任意算法在任意平臺上可能取得的理論極限,為一般性的浮點算法在任意平臺上運算性能的初步評估提供了一個有力的分析手段。后續在其研究基礎之上,又有boathull[2]等較為通用的性能模型被提出。而AleksandarIlic等人提出的cache-awareroofline[3]模型則通過深入分析處理器內部存儲結構,解釋了部分原roofline模型無法解釋的性能瓶頸現象。同時,還有LuisTanica等人依據上述理論基礎開發了如SchedMon、KerMon和SpyMon[4]等軟件工具,可以以上述模型為基礎,自動分析計算應用的瓶頸所在,為計算應用選擇處理器或者計算應用的算法優化提供了二元域直接的幫助。

2.二元域運算roofline性能模型建模
按照roofline模型原理,這里定義二元域運算模型計算式為:
其中原公式中的浮點運算性能峰值被比特運算性能峰值所代替,但比特運算性能峰值同樣是硬件參數,雖然不可以直接從硬件資料中獲取,也可以通過硬件手冊中資料計算得到。由此,以XeonE5-2670芯片為例,其二元域運算的性能曲線建模如圖1。
模型圖1說明,任意二元域算法的比特運算強度BOI需要超過104才有可能在XeonE5-2670處理器上發揮最大計算性能。
3.異構計算平臺中的性能模型multi-roofline建模
這里以著名的天河超算為例,天河的計算節點擁有豐富的處理器資源,每個節點都有主處理器和多種協處理器,根據算法特點選擇哪個處理器作為主要計算平臺是構建性能模型進行分析比較的主要目標。協處理器與主處理器之間數據協同出于最理想情況分析考慮,任務數據能通過DMA通道直接進入內存,協處理器以訪問內存的方式與主機交互數據。
此時,運算模塊性能計算式為:
其中參數“模塊最大運算性能”應由該協處理器的roofline模型分析得出;參數TI為數據吞吐強度,其單位與BOI一致,定義為:
數據吞吐量是指從主處理器往協處理器派發任務和回收任務的數據量,即整個計算任務的輸入輸出數據量,與計算BOI的數據訪存量不同,一般會小于數據訪存量(因為訪存可能對同一數據多次存取),所以通常有TI≧BOI。而根據roofline模型,模塊最大運算性能有:
式中是指協處理器訪問本地內存的最高速度,是指協處理器的最大比特運算能力。此時,異構計算平臺中,協處理器的運算性能公式演變為:
因此,不同于單純的roofline模型,異構計算平臺中協處理器算法運算性能的評估,涉及到5個參數,其中完全取決于硬件性能的參數為、訪存帶寬和DMA帶寬,而算法特性決定的參數為BOI和TI,由此形成的roofline模型,這里稱為multi-roofline這里進一步定義了吞吐系數a為:通過TI與BOI的定義,也可以得到:
將a代入協處理器的運算性能計算式得:
由于峰值操作性能、內存訪存帶寬、DMA帶寬等由硬件決定,為三個常數。容易發現若算法若滿足:
則其性能主要受制于訪存帶寬,反之,則主要受制于DMA帶寬。
這里以采用PCI.Express總線的Teslam2050協處理器模塊的multi-roofline性能建模為例,其建模結果如下圖:
由圖2可見吞吐系數a決定性能曲線在縱坐標的截距,在圖2中,當算法的a超過18.5時,曲線截距不再上移,此時算法所能取得的性能完全由算法的運算強度BOI決定,而a低于18.5時,該算法將主要受制于DMA帶寬。
顯然,利用multi-roofline模型建模后,只要分析出算法的BOI和a就可以迅速評估算法的理論極限,以之可以找到合適的部署方式或針對算法瓶頸進行相應修改以提高計算性能。
4.結束語
multi-roofline模型可以為任意二元域算法在異構計算平臺上的計算性能進行性能建模,從而為特定的計算應用選擇合適的異構處理資源提供理論支持。因此,利用它能極大的提高有關計算應用對處理器的利用效率,并為計算資源的部署提供前期預測,具有重要的理論應用價值。
參考文獻
[1]S.Williams,A.Waterman,andD.Patterson.Roofline:anInsightfulVisualPerformanceModelforMulticoreArchitectures.CommunicationsoftheACM,52(4),p65-76,2009.
[2]C.NugterenandH.Corporaal.TheBoatHullModel:EnablingPerformancePredictionforParallelComputingPriortoCodeDevelopment.CF'12-ProceedingsoftheACMComputingFrontiersConference,p203-212,2012.
作者喬匯東胡瑛田娟秀