• 沒有找到結果。

HPCC HPCC HPCC 實驗及結果分析 HPCC 實驗及結果分析 實驗及結果分析 實驗及結果分析

第三章 第三章

第三章 HPCC HPCC HPCC 實驗及結果分析 HPCC 實驗及結果分析 實驗及結果分析 實驗及結果分析

3-1 實驗平台介紹實驗平台介紹實驗平台介紹 實驗平台介紹

伺服器方面我們採用 HP DL380 G5 機型,內含兩顆 Intel Xeon E5335 四 核心 64 位元處理器,記憶體規格為 4GBytes DDR2-667,作業系統為 Redhat Enterprise Linux Version 4 Update 6 (Nahant),編譯器為 Gnu C/C++/Fortran Version 3.2/4.12/4.2 及 Intel C/C++/Fortran Version 9.1/10.1,數學函式庫方 面安裝有 GOTOBlas Version 1.26 、 Intel MKL Version 9.1/10.1 及 ATLAS Version 3.8.2。

CSX加速器硬體部分我們採用型號為 Clearspeed Advance e620

PCI-Express 8-lanes 內含兩顆 CSX600 多序列陣列處理器(Multi-Thread Array Processors,MTAP)。如圖 3-1 所示。

圖 3-1、 Clearspeed e620 卡

- 23 -

CSX加速器軟體安裝包含有編譯器 Cn version 3.1 針對於 CSX 加速器上 程式之編譯,數學函式庫 CSXL 3.1 包含有部分標準 BLAS(DGEMM, DTRSM, ZGEMM, ZGEMM3M)及 LAPACK(DGEQRF, DGESV, DGETRF, DGETRS, DORGQR, DORMQR, DPOSV, DPOTRF, DPOTR)等功能可供直接呼叫使用,加速器程式 介面函式庫 CSPX Version 3.1 用來將加速器子程式與伺服器端主程式連結 使用 , CSX 軟體開發工具 SDK Version 3.1,分散複立業轉換函式庫 CSDFT Version 3.1。

圖 3-2 、CSXL 呼叫 BLAS 示意圖

- 24 -

Enterprise Linux 加上 Intel C/C++/Fortran 10.1,配合 Intel MKL 9.1 之組合在 伺服器及加速器上所獲得效能最佳。結果如表一所示。 Software Stacks之組合,初步結果來看在 HPL 方面之效能伺服器在單顆處理 器上可到達理論值(8GFlops)之 91%水準,對於 CSX 加速器而言則達到理論值 (50 GFlops) 之 95%效能。

- 25 -

在伺服器方面在使用 OpenMP 之平行化後,效能可以倍數(Speed-up)呈 現之程式有 HPL、DEGMM 及 FFT。其程式種類以雙精度浮點運算為效能主 取為主之程式(RandomAccess 及 STREAM)則大幅低於伺服器本身之效能。主 要因素為加速器與伺服器所連接之介面 PCI-Express 8 lanes 所影響資料傳遞 之時間,對於此特性之程式將大多數執行時間花費在資料傳遞及延遲上所 導致。

然而較特別的是 PTRANS,雖然其程式特性主要為記憶體之存取,在伺 服器端對於使用處理器數量上無特別的影響,理應在加速器上將花費與 RandomAccess及 STREAM 相同花費較多時間在資料存取上,但是使用加速 器後則有較伺服器上更佳之結果。分析其原因主要在於 PTRANS 程式先等待

- 26 -

綜合研究方法與實驗結果後,我們大致可歸納出,計算複雜度大於等 於 N^2 之具有雙精度浮點運算程式,若資料型態可簡化為一維陣列時,在 加速器運算上可獲得較佳之結果。

在 HPCC 各項程式執行時間比例上,如圖 3-3 及 3-4 所示。對於接下來 在功耗方面的評估作為數據之依據。

- 27 -

圖 3-3、伺服器各項程式 HPCC 執時時間比例

圖 3-4、加速器各項程式 HPCC 執時時間比例 3-3 調整後結果調整後結果調整後結果調整後結果

我們依據 2-3.2 HPCC 計算核心之分析結果,將計算核心部分由伺服器 與 CSX 加速器進行混合式平行運算。其餘部分仍以伺服器為主要執行單元。

在伺服器與 CSX 加速器協同運算的結果,如表二所示。我們 HPCC 各個 執行結果,在使用 CSX 加速器後相較於僅使用伺服器之結果增加。

尤其在 DGEMM 表現上,其結果更是達到為伺服器加上 CSX 加速器整體 理論值(114GFlops)之 87%。在過程中,我們發現到伺服器自身雖有八個處理 器可供運算,但在最佳結果卻發生在使用七個處理器。由於我們推斷加速 器本身仍需消耗伺服器一個處理器作為資料傳遞使用。因此我們更進一步 將計算使用伺服器七個處理器與 CSX 加速器之理論值設定為 106GFlops,我 們在整體運算最佳效率可達到理論值之 93%。

- 28 -

當利用 CSX 加速器與伺服器進行混合式平行運算時,在本實驗平台上 對於加速器與伺服器資料分配比例分別為佔 60%及 40%計算比重獲得之效 能最佳。最主要考量為計算矩陣在記憶體中,傳遞至加速器之效能而對於 每套系統使用上會有不同之影響比例結果。

同時,在此結果中再次說明對於使用 CSX 加速器而言,計算複雜度在 O(N^2)(含)以上之雙精度浮點運算,加速器對於伺服器運算效能增加有較明 顯改善。

- 29 -

64.59 99.54 0.74 0.0183 5.40 2.88

Host

Speedup 1.34 1.78 1.61 1.16 1.01 1.10 表二、伺服器與 CSX 加速器共同運算結果

3-4 雷達圖雷達圖雷達圖雷達圖

另外,我們使用雷達圖(Kiviat Charts)方式表現,整體系統、伺服器單元 與加速器單元效能上之比較。如圖 3-5 所示。

當我們將這三者之效能正規化(Normalized) 後,可以更清楚的顯示伺服 器與加速器在各項效能上所表現的差異之處。在以計算為主的程式組部份 加速器可提供與伺服器相等或更佳之效能,因此在混合式運算時有明顯對 效能上的貢獻。從另一方面,對於以記憶體資料傳輸為主之程式組而言,

加速器本身執行時,效能表現遠低於伺服器之結果,因此進行混合式運算 亦僅有些許效能增加的貢獻。

- 30 -

圖 3-5、雷達圖 3-5 功率消耗功率消耗功率消耗 功率消耗

當進行 HPCC 各項程式執行時,我們亦同時分別量測在不同情境下,整 體電量消耗的功率。以進一步計算在效能方面與能量之間的關係。

經由量測各種狀況後,伺服器在空載(Idle)在功率使用 243 瓦特

(Watts),當空載裝上 CSX 加速卡後功率增加為 266 瓦特。在 HPCC 執行時伺 服器為全載(Full Loading)所需功率為 435 瓦特,與加速器共同運算時全載功 率為 472 瓦特。當僅使用伺服器在最佳狀態下 HPCC 執行完成所需時間為 499秒,伺服器與 CSX 加速器之執行時間為 352 秒,因此所花費之時間與消 耗的功率比較時,如圖 3-6 所示。

- 31 -

圖 3-6、功率消耗與執行時間比較圖

使用 HPCC 執行所花費之時間後,對於 HPCC 對於伺服器與使用加速器 之功率消耗比較,如圖 3-7 所示。

- 32 -

圖 3-7、HPCC 執行所花費功率比較

對此我們可以指出在伺服器加上加速器後,對於 HPCC 的執行上,其功 率之使用較未加上加速器更能節少功率消耗。

另外我們進一步分析使用加速器後,對於功率消耗在各程式效能上所 增加之比例,如圖 3-8 所示。使用加速器在 HTRANS、HPL、DGEMM 及 RandomAccess等程式之效能在功率消耗在執行過程中,有降低功率消耗之 意義。

然而對於 STREAM 及 FFT 程式而言,所消耗之能量則大於效能增加比 例。

圖 3-8、效能與功率增加比例

- 33 -

3-6 實驗實驗實驗結果分析實驗結果分析結果分析 結果分析

就整體而言,當伺服器使用 CSX 加速器後用電負載增加 37Watts,應用 在 HPCC 效能表現上,以執行時間來計算效能提升 27%,並且經由瓦特表上 所量測到功率消耗只增加 8.5%。

因此 CSX 加速器對於計算密集程式(HPL、DGEMM&PTRANS)在效能上可 提供與伺服器相當的結果;協同平行序列計算下最多可增加於單獨使用伺 服器 1.78 倍效能,因此該加速器非常適用於密集矩陣的計算模式。

在 HPCC 其中 Stream 的結果僅有 0.04GB/s,由於伺服器與加速器間連 結效能為 PCI-Express x8Lanes 理論值為 4GB/s,然而 STREAM 實際效能落差 卻與該連結介面相差近百倍之多,推論主要為 CSX 架構上之 mono unit 與 poly unit之間的傳輸效率造成效能上之瓶頸,因此對於僅記憶體搬移之運 算類型使用 CSX 加速器,所增加之效能上相較伺服器並無太大幫助。

- 34 -

第四章 第四章 第四章

第四章 CSX CSX CSX CSX 加速器 加速器 加速器 加速器之 之 之 之建議改善方向 建議改善方向 建議改善方向 建議改善方向

基於我們前面所研究與實驗之結果,在加速器之設計與使用上有以下 幾點改良方向與建議:

4-1 改善加速器內部資料傳遞改善加速器內部資料傳遞改善加速器內部資料傳遞改善加速器內部資料傳遞

根據實驗結果,在使用加速上最住要之瓶頸為加速器內部資料在傳遞 過程,加速器內之 DRAM 記憶體使用共享示匯流排,其頻寬分散於每個 PE 後,平均對每一個 PE 可提供 45MB/s 效能。

因此,我們建議以下幾個方式來增進 CSX 加速器之使用效能[22]:

4-1.1 群組化 PE 架構,以增加效能:

如圖 4-1 所示,Mono Unit 之 DRAM 透過 CCB(ClearConnect Bus)將資料 由 DMA(Director Memory Access)控制依序將資料傳入每個 PE 當中,CCB 之 傳遞效能為 3.2GBytes/Sec,因此 96 個 PE 傳遞完成,根據圖 2-3 所示,平 均每個 PE 效率約為 30Mbytes/Sec。

- 35 -

圖 4-1、記憶體資料存取區塊

將數個 PE 單元群組化(Grouping) 使得每個群組資料每次的傳遞效能提 升數倍(n times),我們將每一個群組化後之 PE 群稱為 GPE(Grouping Process Elements) 。每個 GPE 內部利用 PE 內部資料路徑(Swazzle Path)執行管線化 (Pipelining)指令。

在架構上,每個 PE 由原來 SIMD(Single Instruction Multiple Data)方式轉 換為 SPMD(Single Program Multiple Data),即意味著原來在 96 個 PE 資料傳 遞完成並同步後,所有 PE 指令在一次指令執行後傳回,並同步資狀況下。

在 GPE 以管線方式執行多道指令所形成之程式。則使得資料傳遞提升數倍,

並且一次可進行數道指令,如圖 4-2 所示。

- 36 -

我們試著以每 8 個 PE 單元群組化計算,每個 GPE 之效能提升至 240 MBytes/Sec。對於記憶體存取之效能預計亦可提升 8 倍。

圖 4-2、群組化 PE 示意圖 4-1.2 提升 DDR II 及 CCB 工作頻率

對於每個 PE 所能使用到之頻寬主要取決於,CSX DRAM 使用之工作頻 率除以總 PE 個數。因此我們實驗平台所採用之 CSX600 e620 內,DRAM 工 作頻率為 400MHhz,整體可提供之效能為 3.2GHz,平均每個 PE 可分配 30Mbytes/Sec。

就以我們所查到之參考資料所示,以一條 512Mbytes 之 DDRII SDRAM ECC記憶體工作頻在 400MHz 所需功率為 1.825Watts,若換成 DDRII ECC 工 作頻率為 800MHz 所需功率為 2.025Watts。由此我們可進一步計算,加速器 內之記憶體存取效能增加一倍,所需功率使用增加為約 10%。因此對於 CCB 控制電路工作頻率亦可相同推論之。[23]

再者我們結合 4-1.1 所提出之 GPE 架構,將可大幅增加加速器對於記憶 體單元之效能。

- 37 -

4-2 稀疏矩陣求解法稀疏矩陣求解法稀疏矩陣求解法稀疏矩陣求解法(Sparse Matrix Solver)功能應用功能應用功能應用功能應用

有鑑於高效能計算領域中,主要在處理矩陣方面之運算。其中,又可 分為密集矩陣求解(Dense Matrix Solver)運算及稀疏矩陣求解(Sparse Matrix Solver)運算。對於真實狀況上大多數高效能計算所處理問題為稀疏矩陣資 料型態。

於本研究過程中,HPCC 程式計算過程使用之計算資料型態為密集矩 陣。同時,加速器函式庫 CXSL 目前所提供之功能亦為針對密集矩陣計算上

於本研究過程中,HPCC 程式計算過程使用之計算資料型態為密集矩 陣。同時,加速器函式庫 CXSL 目前所提供之功能亦為針對密集矩陣計算上

相關文件