• 沒有找到結果。

第四章 實驗數據與效能比較

4.2 實驗數據的呈現與討論

本章節將探討以FPGA實現之實際效能的數據量測。我們採用Altera Stratix II 2S60ES [12]來當作我們硬體設計的FPGA開發實驗板,在本實驗中,adaptive logic modules(ALMs)數量總合為24176。我們採用Altera Quartus II以及 SOPC builder 來當作硬體設計的平台。實驗中碼字的維度為w = 2×2,且在VQ中會有32個碼字 (i.e., N = 32),而突變機率為Pb = 0.03125。

Steady-State GA Circuit SOPC with only one module ( M = 1 )

SOPC with three module ( M = 3 )

Logic Utilization 17% 28% 94%

Estimated ALMs 3096(13%) 7162 (30%) 24139 (99%)

Block Memory Bit 16384 (3%) 613120 (24%) 643968 (25%) DSP Block 9-bit

Elements 128 (44%) 136 (47%) 288 (100%)

Total Pins 77 (16%) 183 (37%) 183 (37%)

Combinational

ALUTs 3606(7%) 11955 (25%) 41019 (85%)

Dedicated Logic

Registers 6250(13%) 9539(20%) 27209 (56%)

表格4-6. 於SOPC系統中Steady-State GA與Island GA的硬體資源消耗比較

表格4-6將呈現Steady-State GA架構下所消耗的Area Cost以及Island GA架構 下所消耗的Area Cost,其中每一個島嶼即是一個Steady-State GA的架構,而Island

第四章 實驗數據與效能比較

GA的島嶼數量設定為3 (i.e., M = 3),每一個島嶼的基因序列數目則設定為16(i.e., P = 16)。如表格4-6所示,Steady-State GA電路只花費了3096個ALMs [13]。由於

族群記憶體的電路是使用FPGA的內嵌式記憶體(Block Memory Bit),在本實驗中 族群記憶體儲存了16個基因序列,每一個基因序列為32碼字長度,每一個碼字由

2×2維的pixel值組成,因此在Steady-State GA電路的族群記憶體總共消耗了16×32

×4×8 = 16384bits。另外,Steady-State GA電路也使用了FPGA內的128個digital

signal processing(DSP) block 9-bit elements來實現適應值計算單元內的距離平方計 算功能。

除此之外,NIOS softcore CPU [14]和 DMA (Direct Memory Access)[15]控制器 也會消耗一些硬體的資源,因此 Island GA 系統架構的資源消耗會比 Steady-State

GA 系統架構的資源消耗來的高一些。然而,Island GA 系統架構下使用了 24139 個 ALMs,這樣的比例在 FPGA 開發板所提供的 ALMs 總數佔了 99%。Island GA 系統架構包含了三個島嶼架構以及一個 mutex 電路和 SDRAM 控制器,因此,整 個 Island GA 系統架構所消耗的 ALMs 大約為每一個島嶼系統架構所消耗的 ALMs 三倍。

第四章 實驗數據與效能比較

圖 4-7. 相同總數基因序列下 Steady-State GA 與 Island GA 的失真值分布圖

圖 4-7 說明了島嶼式基因演算法在島嶼數量為 3 時(i.e., M = 3) 平均失真值分 佈的情況。實驗中設定為各別獨立執行 200 次的島嶼式基因演算法,每一個島嶼 的基因序列數量為 16 個(i.e., P = 16),因為在本實驗中設定為三個島嶼,因此基 因序列總數為 48 個。另外,實驗中利用讀取「Lena」512×512 圖檔做為訓練向量 的來源,由於每個訓練向量為 2×2 = 4 維,因此我們可取(512/2)×(512/2)=65536 個 訓練向量。此外,我們亦拿 Steady-State GA 系統架構(i.e., M = 1) 的失真值分佈 來做比較,此 Steady-State GA 系統架構同樣包含了總數為 48 個的基因序列。而 圖 4-7 是兩種不同的基因演算法但卻基於在同樣的基因序列總數上所做的比較,

圖 4-7 所呈現的是兩條相似的曲線分佈,因此這兩種基因演算法的失真值分布情

第四章 實驗數據與效能比較

況是相當類似的。這樣的結果說明了一件事情,也就是在 VQ 設計上並不會因為 採用這種島嶼式基因演算法而降低了原本的效益(失真值的表現)。

Average Distortion Average Execution Time

Hardware Island GA

( M = 3 ) 54.11 1293.8 ms

Hardware Steady-State

GA ( M = 1 ) 54.03 1424.6ms

表格 4-8. 相同總數基因序列下 Steady-State GA 與 Island GA 的執行時間比較

表格 4-8 是根據圖 4-7 延續的實驗,由於單一 48 個基因序列收斂過程會比單 一 16 個基因序列收斂過程慢,Island GA 利用這種特性,將一個數目為 48 的基因 序列分成三個島嶼各有一個數目 16 的基因序列去演化。表格 4-8 說明了 Island GA 系統架構與 Steady-State GA 系統架構在平均失真值相近(如圖 4-7 的失真值分佈) 的情況下執行時間的差異,而數據顯示 Island GA 執行時間為 1293.8ms 而

Steady-State GA 執行時間為 1424.6ms,因此,Island GA 相對於 Steady-State GA 的 Speedup 約為 1.10。根據圖 4-7 以及表格 4-8,我們可以歸納出本實驗提出的系 統架構能夠加速基因演化程序之餘亦不犧牲它的效益(失真值的表現)。

第四章 實驗數據與效能比較

Average Distortion Average Execution Time

Software Island GA

(single-thread) 54.06 85208.7 ms

Software Island GA

(multi-thread) 54.24 38555.9 ms

Hardware Island GA 54.11 1293.8 ms

表格 4-9. 軟硬體 Island GA 的平均執行時間比較

表格 4-9 比較了各種不同方法(包括軟體與硬體)實現島嶼式基因演算法的執 行時間。在相同的實驗條件下分別執行兩百次的軟硬體島嶼式基因演算法:島嶼 數目 M = 3,每一個島嶼的基因序列數目 P = 16,碼字數目 N = 32,向量維度 w =

2×2,訓練向量數目為 65536 筆。軟體的實現環境是使用八核心工作站電腦(每個 核心處理器為 Intel(R) Xeon(TM) CPU 2.60GHz),除了一般單執行緒的方法,我們 亦採用多執行緒(multi-threading)的方法來實現之,每一個島嶼的演化程序使用各

第四章 實驗數據與效能比較

執行緒軟體模擬系統執行時間卻高達 85208.7ms,事實上,本實驗的島嶼式基因 演算法硬體系統架構相對於其對應的單執行緒軟體模擬系統之 Speedup 為 65.9 倍,而島嶼式基因演算法硬體系統架構相對於其對應的多執行緒軟體模擬系統之 Speedup 為 30 倍,在此 Speedup 的定義為軟體執行時間(2.60GHz Intel(R) Xeon(TM) CPU)除以硬體 SOPC 系統執行時間(50MHz NIOS-based softcore CPU)。

P Entire System Embedded Memory Bits

Entire System

ALMs Average Distortion Average Execution Time

4 619392 (23%) 22145 (92%) 58.24 869.5 ms

第四章 實驗數據與效能比較

T Software Execution Time Hardware Execution Time Speedup

1024 1012.4 ms 83.7 ms 12.1

2048 1911.8 ms 127.5 ms 15.0

4096 3519.7 ms 187.2 ms 18.8

8192 5863.1 ms 291.7 ms 20.1

16384 10123.5 ms 445.9 ms 22.7

32768 19202.8 ms 732.9 ms 26.2

65536 38555.9 ms 1293.8 ms 30.0

表格 4-11. 不同訓練向量筆數 T 下硬體資源消耗、平均失真值以及平均執行時間比較

圖 4-12. 不同訓練向量筆數 T 下硬體相對於軟體的 Speedup

第四章 實驗數據與效能比較

為了更進一步證明本論文所提出架構的有效性,表格 4-11 與圖 4-12 說明了 在不同訓練向量筆數下多執行緒軟體模擬系統與硬體架構系統花費時間及其效 能比。本實驗的條件一樣為:島嶼數目 M = 3,每一個島嶼的基因序列數目 P = 16,

碼字數目 N = 32,向量維度 w = 2×2,訓練向量則為變數。從表格 4-11 可以觀察 到隨著訓練向量集合的變大,硬體相對於軟體所獲得的 Speedup 亦會跟著增加。

主要的原因是訓練向量集合傳送到適應值計算單元的方式不同;在軟體中訓練向 量集合是儲存於記憶體中,因此在傳送訓練向量時將會耗費大量的記憶體存取時 間,除此之外,適應函數是使用公式(2),所以軟體的計算複雜度會很高。

在我們所提出的架構中,適應值計算單元中是採用 DMA (Direct Memory

Access) 和 Pipeline 技術來幫助系統降低記憶體存取時間,以及適應值計算單元的 計算時間;因此,當訓練向量的數目愈來愈大時,本論文提出的系統架構比上軟 體的執行時間可以擁有高效能比,例如:當訓練向量個數為 65536 時,硬體 SOPC 系統架構的執行時間為 1293.8 ms,而其對應的多執行緒軟體模擬系統的執行時間 則是 38555.9 ms,效能比為 30 倍。因此本實驗所測量的這些實驗數據可以更加地 說明我們所提出的硬體系統架構是具備有效性。

相關文件