針對GPU的高效並行任務執行設計研究

《針對GPU的高效並行任務執行設計研究》是依託北京大學,由梁雲擔任負責人的青年科學基金項目。

基本介紹

  • 中文名:針對GPU的高效並行任務執行設計研究
  • 項目負責人:梁雲
  • 項目類別:青年科學基金項目
  • 依託單位:北京大學
項目摘要,結題摘要,

項目摘要

現代的圖形處理器(GPU)已成為廣泛使用的高性能計算平台。GPU對多種不同的套用都有著巨大的計算潛力。隨著越來越多的通用應用程式被移植到GPU上執行,這也加劇了GPU資源的競爭,因此GPU資源的有效利用是提高系統性能的關鍵。這也為我們提供了並行任務執行的機會 - - - 多個任務並行執行共享GPU資源。 為了支持高效的並行任務執行, 我們打算提出一個系統的軟硬體解決方案。我們首先尋求構建不同的硬體資源共享機制以支持不同的設計權衡。然後,我們提出了一個全新的運行時軟體架構。該軟體架構允許並行任務執行, 並且會基於任務的不同需要分配GPU資源。我們的軟體架構具有以下特點 (1)精確的性能分析模型 (2)高效的任務調度算法 (3)快取感知的設計和最佳化。這個項目所提出的技術是對現有的GPU結構的重要補充,並對未來的GPU設計有著重要意義。所提出的並行任務執行技術可以顯著的提高系統的整體性能和能源利用效率。

結題摘要

通用圖形處理器(GPU)的強大計算能力使其被廣泛地套用到各種計算領域中。隨著越來越多的套用被移植到GPU上, 多任務並行執行的需求也隨之產生。 由於通用套用的不規則性和GPU硬體資源的不斷增加,單一套用並不能完全使用GPU的資源,因此多任務並行執行變的愈發重要。多任務執行可以顯著地提高GPU資源利用率和提升套用的整體性能。我們研究並提出了一個全新的支持GPU高效並行任務執行的軟硬體架構。 本項目成功實現了: 1、支持空間和時間共享的多任務並行架構。我們提出的架構主要包括能夠權衡多任務模型參數的準確性能評估模型, 基於leaky-bucket的執行緒塊交叉機制以實現多任務並行執行, 不依賴於硬體的通用軟體模擬技術。與Fermi 和Kepler架構的多任務技術相比,我們的技術平均提升性能1.26X。同時,通過細粒度地調整並行套用的執行緒並行度,性能能夠得到進一步的提升。2、GPU快取最佳化技術。我們提出一個結合靜態分析和動態調整的快取旁路(cache bypassing) 技術。該技術使用靜態軟體剖析技術分析指令的局部性,然後在運行時允許部分執行緒使用快取,部分執行緒旁路快取。與默認的Nvidia快取管理技術相比,我們的技術平均提升性能1.32X。我們提出快取鎖技術,通過鎖住局部性好的數據以降低污染數據對局部性的影響。同時我們也提出快速的快取狀態空間搜尋技術。3、GPU暫存器堆最佳化技術。我們提出了一種暫存器分配和執行緒並行度的協同最佳化技術。該最佳化技術通過暫存器分配權衡單個執行緒的性能和執行緒的並行度。我們的技術平均提升性能1.25X。我們的暫存器分配算法已經開源,目前已經有CMU, Michigan等學校下載使用了我們的開源工具。4、GPU分支預測和最佳化技術。我們提出一種能夠準確預測執行緒分支對性能影響的模型,並使用該模型指引執行緒重組最佳化。性能模型使用BBV (Basic Block Vector, 基本塊執行向量) 來刻畫執行緒的行為的相似和不同程度。我們提出的性能模型錯誤率為6.2%, 執行緒重組最佳化平均提升性能2.2X。

相關詞條

熱門詞條

聯絡我們