亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

動態(tài)可重構(gòu)硬件電路的設計、執(zhí)行方法及系統(tǒng)與流程

文檔序號:12668465閱讀:331來源:國知局
動態(tài)可重構(gòu)硬件電路的設計、執(zhí)行方法及系統(tǒng)與流程

本發(fā)明涉及FPGA的硬件電路設計領(lǐng)域,特別是涉及動態(tài)可重構(gòu)硬件電路的優(yōu)化設計、執(zhí)行方法及系統(tǒng)。



背景技術(shù):

邏輯可編程陣列(FPGA)是一種在生產(chǎn)后可編程的集成電路芯片,芯片中電路提供可編程節(jié)點,可根據(jù)用戶設定重新定義電路邏輯。相比于傳統(tǒng)處理芯片CPU,F(xiàn)PGA可提供針對特定問題的高度優(yōu)化電路,提升百倍級別計算性能;相比于傳統(tǒng)集成電路芯片ASIC,F(xiàn)PGA可提供更靈活的計算方案。

FPGA硬件電路性能主要受限于硬件資源:每個計算單元消耗的硬件資源越少,硬件芯片所能夠提供的整體計算單元并行度越高,從而支持更高的處理性能。圖1顯示了一種通過減少計算精度來減少硬件資源使用的常規(guī)情況:CPU常用計算單元采用雙精度64比特及單精度32比特,其中,雙精度采用1比特存儲符號信息,11比特存儲指數(shù)信息,52比特存儲小數(shù)信息,單精度采用1比特存儲符號信息,8比特存儲指數(shù)信息,23比特存儲小數(shù)信息。然而,CPU定制計算單元采用1比特存儲符號信息,4比特存儲數(shù)指數(shù)信息,8比特存儲小數(shù)信息,相比于傳統(tǒng)雙精度及單精度計算單元,13比特的計算精度大幅降低了硬件消耗。



技術(shù)實現(xiàn)要素:

鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供動態(tài)可重構(gòu)硬件電路的設計、執(zhí)行方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中優(yōu)化FPGA的處理性能會導致計算精度降低的問題。本發(fā)明通過去除通用算數(shù)單元中的冗余計算來減少算數(shù)單元的資源消耗,無需犧牲計算精度,從而更加有效地優(yōu)化硬件電路。

為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種動態(tài)可重構(gòu)硬件電路的設計方法,包括:識別應用中含有常數(shù)的算數(shù)操作,所述常數(shù)的取值在一定范圍內(nèi)變化;根據(jù)精度需求調(diào)整所述常數(shù)的取值范圍,所述取值范圍由至少一個算數(shù)參數(shù)組成;根據(jù)所述精度需求去除每個所述算數(shù)參數(shù)所對應的算數(shù)操作中的冗余部分,據(jù)以定制所述硬件電路。

于本發(fā)明一實施例中,所述精度需求包括:應用精度需求和算法精度需求。

于本發(fā)明一實施例中,所述算法精度需求的確定,包括:確定預設調(diào)整范圍,并在所述預設調(diào)整范圍內(nèi)隨機選取數(shù)值作為算法參數(shù)值,根據(jù)公式

ε(t,s)=a(t,s)-f(t,s)

計算收斂率g,其中,t、s分別代表調(diào)整參數(shù)在時間、空間域內(nèi)的位置,ε(t,s)表示算法計算真實值a(t,s)與算法計算實際值f(t,s)之間的差值;若|g|>1,則將所述預設調(diào)整范圍減半,重新選取數(shù)值所謂算法參數(shù)值進行計算,直至計算出的收斂率|g|≤1,從而得到最終的調(diào)整范圍。

于本發(fā)明一實施例中,所述根據(jù)所述精度需求去除每個所述算數(shù)參數(shù)所對應的算數(shù)操作中的冗余部分,包括:將每個所述算數(shù)參數(shù)表示為二進制數(shù);在滿足所述精度需求的基礎(chǔ)上,去除在所需精度之前二進制值為“0”的比特位。

于本發(fā)明一實施例中,所述據(jù)以定制所述硬件電路還包括:令所述硬件電路支持應用運行時不同常數(shù)的計算,具體通過靜態(tài)算數(shù)單元或動態(tài)算數(shù)單元的方式實現(xiàn):所述靜態(tài)算數(shù)單元,采用同一硬件單元的不同疊加方式支持不同的常數(shù)運算;所述動態(tài)算數(shù)單元,針對不同常數(shù)重構(gòu)不同的硬件單元來支持不同的常數(shù)運算。

于本發(fā)明一實施例中,在定制完成之后還包括:分別估算所述靜態(tài)算數(shù)單元和所述動態(tài)算數(shù)單元的硬件資源消耗,并計算對應的并行度,選取并行度高的方式。

為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種動態(tài)可重構(gòu)硬件電路的設計系統(tǒng),包括:識別模塊,用于識別應用中含有常數(shù)的算數(shù)操作,所述常數(shù)的取值在一定范圍內(nèi)變化;調(diào)整模塊,用于根據(jù)精度需求調(diào)整所述常數(shù)的取值范圍,所述取值范圍由至少一個算數(shù)參數(shù)組成;剔除模塊,用于根據(jù)所述精度需求去除每個所述算數(shù)參數(shù)所對應的算數(shù)操作中的冗余部分,據(jù)以定制所述硬件電路。

為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種動態(tài)可重構(gòu)硬件電路,由以上任一所述的動態(tài)可重構(gòu)硬件電路的設計方法設計而成。

為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種執(zhí)行如上所述的動態(tài)可重構(gòu)硬件電路的方法,所述執(zhí)行方法包括:建立應用性能模型T,并選擇性能最高的硬件電路執(zhí)行;

其中,ds表示計算數(shù)據(jù)量的大小,fknl表示硬件時鐘頻率、P表示算數(shù)單元并行度、Or表示硬件重構(gòu)成本,Nr*φ表示重構(gòu)硬件文件大小,由單元重構(gòu)文件大小φ與需重構(gòu)硬件單元個數(shù)Nr的乘積構(gòu)成,θ表示重構(gòu)帶寬。

為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種執(zhí)行如上所述的動態(tài)可重構(gòu)硬件電路的系統(tǒng),所述執(zhí)行系統(tǒng)包括:處理模塊,用于建立應用性能模型T,并選擇性能最高的硬件電路執(zhí)行;

其中,ds表示計算數(shù)據(jù)量的大小,fknl表示硬件時鐘頻率、P表示算數(shù)單元并行度、Or表示硬件重構(gòu)成本,Nr*φ表示重構(gòu)硬件文件大小,由單元重構(gòu)文件大小φ與需重構(gòu)硬件單元個數(shù)Nr的乘積構(gòu)成,θ表示重構(gòu)帶寬。

如上所述,本發(fā)明的動態(tài)可重構(gòu)硬件電路的設計方法及系、執(zhí)行方法及系統(tǒng),通過減少通用算數(shù)單元中的無用操作來減少硬件資源的使用,高效地提升了硬件電路性能。

附圖說明

圖1顯示為本發(fā)明現(xiàn)有技術(shù)中采用減少計算精度方式減少硬件資源使用的示意圖。

圖2顯示為本發(fā)明一實施例的動態(tài)可重構(gòu)硬件電路的設計方法流程圖。

圖3顯示為本發(fā)明一實施例的不同常數(shù)值對應的不同的硬件架構(gòu)設計示意圖。

圖4顯示為本發(fā)明一實施例的根據(jù)精度需求去除冗余計算的示意圖。

圖5A~5B顯示為本發(fā)明一實施例的深度定制硬件單元的設計過程示意圖。

圖6顯示為本發(fā)明一實施例的動態(tài)可重構(gòu)硬件電路的設計系統(tǒng)模塊圖。

圖7顯示為本發(fā)明一實施例的執(zhí)行動態(tài)可重構(gòu)硬件電路的方法流程圖。

圖8顯示為本發(fā)明一實施例的執(zhí)行動態(tài)可重構(gòu)硬件電路的系統(tǒng)模塊圖。

具體實施方式

以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的具體實施方式加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。

需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。

為了保證計算方案的靈活性,并提供最優(yōu)的硬件精度,本發(fā)明提出了一種基于動態(tài)可重構(gòu)(FPGA)的算數(shù)單元優(yōu)化方法,算數(shù)單元指加減乘除指數(shù)運算等基本計算單元。硬件架構(gòu)中采用可重構(gòu)硬件邏輯支持定制化算數(shù)單元,硬件定制通過減少通用算數(shù)單元中的無用操作來減少硬件資源的使用,從而提升硬件電路性能。

請參閱圖2,本發(fā)明提供的動態(tài)可重構(gòu)硬件電路的設計方法,主要包括如下步驟:

步驟S201:識別目標單元,其中,目標單元為應用中含有常數(shù)的算數(shù)操作。如圖3所示,其中一個目標單元為常數(shù)乘法操作ft,s+1*α,常數(shù)α的具體值是在一定范圍內(nèi)波動的,以下將每個具體值稱為算法參數(shù)。不同的α對應的硬件架構(gòu)不同:α=0.75使用二進制表示為0.11,α=0.76,使用二進制表示為0.110000101,對于同一32比特乘法單元,α=0.76需要32*9個全加器(f[0]~f[31]、α[0]~α[8]),α=0.75則只需要32*2個全加器(f[0]~f[31]、α[0]~α[1])。在算法層面,各個乘法器ft-1,s*δ、ft,s*β、ft,s-1*γ完成的操作相同。

步驟S202:建立優(yōu)化空間,其中,算數(shù)操作的優(yōu)化空間為在算法層面參數(shù)的可調(diào)整范圍,也就是算法參數(shù)的取值集合。所述優(yōu)化空間主要通過以下過程確定:

1)應用精度需求,參照算數(shù)操作的精度來確定,也可以根據(jù)用戶需求自行定義;

2)算法精度需求,確定算法參數(shù)的調(diào)整范圍有利于保證參數(shù)的調(diào)整不會影響整個算數(shù)操作的穩(wěn)定性。具體的,如公式(1)~(3)所示:

ε(t,s)=a(t,s)-f(t,s) (1)

其中,t、s分別代表調(diào)整參數(shù)在時間、空間域內(nèi)的位置,ε(t,s)表示算法計算真實值a(t,s)與算法計算實際值f(t,s)之間的插值,g表示算法差值隨時間變化的收斂率,|g|≤1表示算法是收斂的,及Δt分別表示調(diào)整后、應用原有算法的時間參數(shù)、及Δs分別表示調(diào)整后、應用原有算法的空間參數(shù),ξ表示參數(shù)的調(diào)整范圍。

對于特定應用,可以采用蒙特卡洛等仿真工具,根據(jù)公式(3)選取時間空間參數(shù)確定調(diào)整范圍ξ,并在范圍ξ內(nèi)隨機選取數(shù)值作為算法參數(shù)值,根據(jù)公式(1)~(2)計算收斂率g。若收斂率g大于1,則將范圍ξ減半,重復上述過程,直至計算出的收斂率g穩(wěn)定。

步驟S203:硬件模型估算,估算不同算法參數(shù)對應的常數(shù)參數(shù)值的計算單元所消耗的硬件資源,并從中選擇一個消耗值最小的進行設置。如圖4所示,假設確定應用精度需求為10比特,則3個不同算法參數(shù)的選取會導致3個不同α值,具體的,α=1.749511719的二進制表示為12比特的110111111111,α=1.750976563的二進制表示為12比特的111000000010,α=1.751953125的二進制表示為12比特的111000000100。由于只有非零的二進制數(shù)值,即數(shù)值為‘1’的比特位,需要硬件支持,而數(shù)值為‘0’的比特位對應的算數(shù)操作為冗余操作,不需要硬件支持,所以在本例中,在10比特的應用精度需求下,α=1.749511719對應的硬件資源消耗為前10位:1100111111,α=1.750976563對應的硬件資源消耗為前3位:111(第4~10比特的0位即為冗余計算,剔除),α=1.751953125對應的硬件資源消耗為前10位:1110000001。

步驟S204:令算數(shù)單元可以支持應用運行時不同的常數(shù)計算,包括兩種方式:靜態(tài)算數(shù)單元及動態(tài)可重構(gòu)單元:

1)靜態(tài)算數(shù)單元:靜態(tài)算數(shù)單元采用同一硬件電路支持不同的常數(shù)參數(shù)計算,通過使用圖3所示通用計算架構(gòu),同一硬件單元可支持不同常數(shù)計算。如圖4所示,對于一組參數(shù),選取非零數(shù)值最少的常數(shù)設置,通過公式(4)、(5)計算硬件資源消耗:

其中,a代表應用精度需求,b代表常數(shù)二進制表示時非零數(shù)值的個數(shù)。對于加減運算,硬件資源取a、b消耗的硬件資源中的最高值,對于乘法運算,硬件資源取a、b消耗的硬件資源中的乘積。

2)動態(tài)算數(shù)單元:動態(tài)算數(shù)單元對于每個常數(shù)計算單元采用深度定制方式,使得每個常數(shù)計算使用最低硬件資源消耗。在運行時,其采用動態(tài)可重構(gòu)技術(shù)替換不同的硬件單元,支持不同的常數(shù)計算,如圖5A所示,常數(shù)α=1.749511719通過定點表示法表示為α0,首位‘0’表示符號位,此處表示正數(shù)。將α0右移一位并在首位補‘0’形成α1。根據(jù)α0和α1計算c、s、m三個中間變量,計算公式分別對應(6)、(7)、(8),將常數(shù)的二進制表示轉(zhuǎn)換為canonical-signed-digit(CSD):

ci+1=a0i*a1i+ci+a0i+ci*a1i (6)

si=a1i (7)

最后,根據(jù)公式(9)計算出動態(tài)單元表達符CSD:

其中,CSD里的+-符號通過硬件移位及減法操作生成針對一常數(shù)值的深度定制化動態(tài)算數(shù)單元。如圖5B所示,常數(shù)a=1.749511719經(jīng)過轉(zhuǎn)換后的CSD“+00-0000000-0”,其中“0”無需硬件操作,“+--”三個標記,根據(jù)公式(9)需要根據(jù)其位置進行移位操作。在本例中,“+”位于第一個“0”左1位置,需要左移一位,第一個“-”位于其右2位置,需要右移兩位。三個標記為移位完成后根據(jù)比較位的“+-”符號決定其操作。在本例中,“+”與右邊“-”結(jié)合,由于其為減法符號,第一個操作為減法器。深度定制化硬件單元包含三個移位操作及兩個減法操作,只支持a=1.749511719。當需要支持的常數(shù)值變化時,需要將硬件重構(gòu)為新的常數(shù)值對應的深度定制化硬件單元。為支持應用運行時生成的所有深度定制硬件單元統(tǒng)稱為一個動態(tài)算數(shù)單元。

步驟S205:結(jié)合硬件整體架構(gòu),通過估算硬件資源消耗計算每個算數(shù)單元(包括靜態(tài)、動態(tài))的并行度,生成基于靜態(tài)算數(shù)單元的硬件應用及基于動態(tài)算數(shù)單元的硬件應用,從二者之間選取性能最高的進行應用。

請參閱圖6,與上述方法實施例原理相似的是,本發(fā)明提供一種動態(tài)可重構(gòu)硬件電路的設計系統(tǒng)600,包括:識別模塊601、調(diào)整模塊602、剔除模塊603。由于前述實施例中的技術(shù)特征可以用于本實施例,因而不再重復贅述。

識別模塊601識別應用中含有常數(shù)的算數(shù)操作,所述常數(shù)的取值在一定范圍內(nèi)變化;調(diào)整模塊602根據(jù)精度需求調(diào)整所述常數(shù)的取值范圍,所述取值范圍由至少一個算數(shù)參數(shù)組成;剔除模塊603根據(jù)所述精度需求去除每個所述算數(shù)參數(shù)所對應的算數(shù)操作中的冗余部分,據(jù)以定制所述硬件電路。

本發(fā)明還提供一種通過上述任一種設計方法設計出的動態(tài)可重構(gòu)硬件電路,再次不重復贅述。

請參閱圖7,本發(fā)明還提供一種執(zhí)行用上述設計方法設計出的動態(tài)可重構(gòu)硬件電路的方法,所述執(zhí)行方法包括以下步驟:

步驟S701:根據(jù)可重構(gòu)應用優(yōu)化,建立應用性能模型。性能模型如公式(10)所示:

其中,性能模型通過計算數(shù)據(jù)量的大小ds、硬件時鐘頻率fknl、算數(shù)單元并行度P、及硬件重構(gòu)成本Or估算出硬件應用計算時間。具體的,數(shù)據(jù)大小ds由應用決定,可由算法描述直接提取,數(shù)據(jù)大小ds與算法常數(shù)數(shù)目一同決定了應用運行時間,常數(shù)的數(shù)目決定算數(shù)單元總體硬件消耗,硬件時鐘頻率fknl由硬件編譯結(jié)果提取,算數(shù)單元并行度P由優(yōu)化后算數(shù)單元資源消耗及硬件芯片整體資源決定。提取后參數(shù)放入性能模型,支持性能估計。硬件重構(gòu)成本Or為使用動態(tài)算數(shù)單元時為重構(gòu)不同常數(shù)對應的深度優(yōu)化算數(shù)單元時的硬件重構(gòu)時間。公式(11)描述了硬件重構(gòu)成本Or的計算模型:

硬件重構(gòu)時間成本Or表示為:重構(gòu)硬件文件大小Nr*φ及重構(gòu)帶寬θ之比,其中,重構(gòu)硬件文件大小Nr*φ為:單元重構(gòu)文件大小φ與需重構(gòu)硬件單元個數(shù)Nr的乘積。

步驟S702:對比基于靜態(tài)單元精度優(yōu)化以及動態(tài)單元精度優(yōu)化的應用,根據(jù)性能模型、數(shù)據(jù)大小、參數(shù)數(shù)目,將預測應用性能最高的進行應用執(zhí)行。需要說明的是,若選取基于動態(tài)單元精度優(yōu)化的應用,則在參數(shù)改變時重構(gòu)底層硬件,執(zhí)行基于對應參數(shù)的動態(tài)單元精度優(yōu)化的應用。

請參閱圖8,上述執(zhí)行方法實施例原理相似的是,本發(fā)明提供一種動態(tài)可重構(gòu)硬件電路的執(zhí)行系統(tǒng)800,包括:處理模塊801,用于建立應用性能模型T,并選擇性能最高的硬件電路執(zhí)行;

其中,ds表示計算數(shù)據(jù)量的大小,fknl表示硬件時鐘頻率、P表示算數(shù)單元并行度、Or表示硬件重構(gòu)成本,Nr*φ表示重構(gòu)硬件文件大小,由單元重構(gòu)文件大小φ與需重構(gòu)硬件單元個數(shù)Nr的乘積構(gòu)成,θ表示重構(gòu)帶寬。由于前述實施例中的技術(shù)特征可以用于本實施例,因而不再重復贅述。

基于上述,以下提供本發(fā)明的方法在兩個具體領(lǐng)域中的應用實例。

期權(quán)定價是一種廣泛應用的金融期權(quán)定價算法,期權(quán)定價模型通過考慮預計股價的波動來假設未來股價的統(tǒng)計分布,由此估計未來股價的各種可能性。期權(quán)定價涉及偏微分方程求解。期權(quán)定價方程如公式12所示,其中f為期權(quán)價格,s為資產(chǎn)價值,t為時間變量,τ為利率,σ為資產(chǎn)價值波動性。通過求解偏微分方程,期權(quán)定價f由公式13計算,其中αβγ為基于算法參數(shù)的常數(shù),根據(jù)時間變量及字長價值波動而隨之改變:

ft,s=αft-1,s+1+βft-1,s+γft-1,s-1 (13)

對于期權(quán)定價應用,選取算法參數(shù)時間變量t及資產(chǎn)價值s構(gòu)建優(yōu)化空間,涉及αβγ的三個乘法操作為目標優(yōu)化算數(shù)單元。相比于使用原始算數(shù)單元的計算模塊,如表1所示,優(yōu)化后的使用靜態(tài)算數(shù)單元及動態(tài)算數(shù)單元的算模塊資源消耗Rknl大幅降低。對于同一硬件可重構(gòu)芯片(Xilinx Virtex-6SX475T),其整體硬件應用并行度提升最高至8倍。經(jīng)測試,對于較小數(shù)據(jù)量,由于重構(gòu)成本,采用靜態(tài)算數(shù)單元,期權(quán)定價應用性能提升為2倍。對于較大數(shù)據(jù)量ds,采用動態(tài)算數(shù)單元,期權(quán)定價應用性能提升為8倍。

表1

地質(zhì)成像逆時結(jié)合是一種常用的地質(zhì)成像算法,其根據(jù)地質(zhì)的反射聲波與模擬的反射聲波互相驗證逐漸接近地底的地質(zhì)結(jié)構(gòu)成像,從而為石油采集等提供信息。與期權(quán)定價類似,其偏微分方程(公式14)中p(t,s)為地址壓力參數(shù),dvv(s)為聲波速度,f(t,s)為輸入聲波,偏微分方程展開后如公式15所示包含多個常數(shù)ci,j,常數(shù)值依托于偏微分方程參數(shù)時間變量t及空間變量s。其優(yōu)化結(jié)果如表2所示,通過優(yōu)化含有常數(shù)ci,j的運算單元,相比于原始計算模塊,基于靜態(tài)算數(shù)單元的計算模塊資源消耗降低了30%,而基于動態(tài)算數(shù)單元的計算模塊資源消耗降低了5.3倍。受限于目標芯片的資源總量,基于靜態(tài)單元的計算模塊無法支持更高的并行度,而基于動態(tài)單元的計算模塊并行度提升了6倍,測試計算性能提升了2.62倍。

表2

綜上所述,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點而具高度產(chǎn)業(yè)利用價值。

上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬技術(shù)領(lǐng)域中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應由本發(fā)明的權(quán)利要求所涵蓋。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1