欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種用于求解微分方程的硬件加速裝置及加速方法與流程

文檔序號:12119256閱讀:510來源:國知局
一種用于求解微分方程的硬件加速裝置及加速方法與流程

本發(fā)明涉及一種求解微分方程的加速裝置,特別是一種針對龍格庫塔微分方程求解法的硬件加速裝置及加速方法。



背景技術(shù):

常微分方程是研究自然科學(xué)與社會科學(xué)中事物、物體和現(xiàn)象運(yùn)動、演化和變化規(guī)律的最為基本的數(shù)學(xué)理論和方法。各領(lǐng)域中的許多原理均可描述成適當(dāng)?shù)某N⒎址匠蹋缗nD的運(yùn)動定律、萬有引力定律、能量守恒定律、人口發(fā)展規(guī)律、疾病傳染、市場均衡價(jià)格的變化趨勢等。多數(shù)情況下,尋找復(fù)雜常微分方程的解析表達(dá)式極其困難,因此常用近似求解方法獲取計(jì)算結(jié)果,工程中一般使用數(shù)值計(jì)算研究數(shù)值解。隨著計(jì)算機(jī)科學(xué)技術(shù)的快速發(fā)展,經(jīng)典的常微分?jǐn)?shù)值計(jì)算方法經(jīng)歷了一個(gè)重新評價(jià)、篩選、改造和創(chuàng)新的過程,涌現(xiàn)了許多新概念、新課題和能發(fā)揮計(jì)算機(jī)潛力的新方案。采用全硬件加速的方式提高其運(yùn)算效率已成為一個(gè)研究熱點(diǎn)。

但是現(xiàn)有技術(shù)中尚無相關(guān)描述。



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

本發(fā)明的目的在于提供一種求解微分方程的加速裝置及加速方法,加速微分方程組的求解。

實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種求解微分方程的加速裝置,該裝置由輸入輸出緩存模塊、串并轉(zhuǎn)換模塊和基于龍哥庫塔的硬件加速模塊組成。輸入輸出緩存模塊主要用于與主控直接交互數(shù)據(jù)的緩存,加速單元與主控之間的所有數(shù)據(jù)均通過輸入輸出緩存交互。串并/并串轉(zhuǎn)換模塊主要是負(fù)責(zé)將輸入緩存的讀出的數(shù)據(jù)根據(jù)需要多種并行輸出,將硬件加速模塊的并行輸出數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)?;邶埜鐜焖挠布铀倌K主要負(fù)責(zé)實(shí)現(xiàn)微分方程求解的硬件加速。

該用于求解微分方程的硬件加速裝置通過提出通用的計(jì)算架構(gòu),結(jié)合FPGA局部可重構(gòu)特性,通過對核心計(jì)算單元的靈活配置,實(shí)現(xiàn)對微分方程組求解的硬件加速的通用化。

串并轉(zhuǎn)換模塊主要將控制輸入緩存的讀操作,并根據(jù)讀取的指示信號,將讀取的數(shù)據(jù)并行與基于龍哥庫塔的硬件加速單元連接,該模塊數(shù)據(jù)輸入位寬為32位,輸出數(shù)據(jù)位寬最大支持4096位寬,具體可以根據(jù)需求進(jìn)行配置。并串轉(zhuǎn)換模塊主要是將計(jì)算結(jié)果以32位位寬輸出并控制輸出緩存的寫操作。

一種用于求解微分方程的硬件加速裝置的計(jì)算流程如下:

a)首先判斷是否為高階微分方程,如果為高階微分方程,則將高階微分方程化為1階微分方程組;如果為一階方程組,則直接進(jìn)行步驟b);

b)對1階微分方程組采用經(jīng)典的4階龍哥庫塔方法求解;

c)針對b)步驟的4階龍哥庫塔的硬件實(shí)現(xiàn),對每次迭代中的4次子迭代過程進(jìn)行深度優(yōu)化,主迭代采用相同的硬件結(jié)構(gòu),每次主迭代中的子迭代采用相同的硬件結(jié)構(gòu),對子迭代中的實(shí)現(xiàn)最大限度的并行硬件結(jié)構(gòu);

d)為了達(dá)到b)中的目的,對解根號、三角函數(shù)求解、除法、遍歷查找等較為復(fù)雜的算法,采用并行的運(yùn)算單元進(jìn)行,并采用多種優(yōu)化手段,如除法增加每次迭代步長、三角函數(shù)采用兩步合并、對于一些需要遍歷的常量表采用編碼的方式以查表的方式替代遍歷比較操等等。找到每次子迭代中的最大時(shí)延路徑,通過增加并行度來減少計(jì)算時(shí)延時(shí),其它的非最大時(shí)延路徑需要進(jìn)行資源與速度的折中。

由于加速模塊與主處理器的通信耗時(shí)較大,采用將整個(gè)算法全硬件化運(yùn)行,減少交互,主處理器只需要將參數(shù)初始化值、步長和一些控制信號發(fā)送到加速模塊,加速模塊的計(jì)算中間數(shù)據(jù)則通過DMA方式進(jìn)行,成功將通信占時(shí)比控制在較低的水平,其通信占時(shí)比隨著算法變量數(shù)目、計(jì)算復(fù)雜度和迭代次數(shù)的增大而降低。

與現(xiàn)有技術(shù)相比,本發(fā)明的顯著優(yōu)點(diǎn)是:1)本發(fā)明采用硬件實(shí)現(xiàn)微分方程組求解加速,具有更高的加速比;2)本發(fā)明提出了通用的接口結(jié)構(gòu),使得該發(fā)明可以滿足不同參數(shù)量、變量數(shù)的微分方程組的求解需求;3)核心計(jì)算加速單元借用FPGA可重構(gòu)功能,針對不同的方程組,重構(gòu)該核心計(jì)算單元,提高資源利用率和發(fā)明的通用性。

下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。

附圖說明

圖1是一種求解微分方程的加速裝置組成示意圖。

圖2是串并轉(zhuǎn)換和并串轉(zhuǎn)換模塊示意圖,其中圖(a)是串并轉(zhuǎn)換模塊示意圖,圖(b)是并串轉(zhuǎn)換模塊示意圖。

圖3是基于龍哥庫塔的硬件加速單元計(jì)算流程圖。

具體實(shí)施方式

結(jié)合圖1,一種用于求解微分方程的硬件加速裝置,由輸入輸出緩存模塊、串并轉(zhuǎn)換模塊和基于龍哥庫塔的硬件加速模塊組成。輸入輸出緩存模塊主要用于與主控直接交互數(shù)據(jù)的緩存,加速單元與主控之間的所有數(shù)據(jù)均通過輸入輸出緩存交互。串并/并串轉(zhuǎn)換模塊主要是負(fù)責(zé)將輸入緩存的讀出的數(shù)據(jù)根據(jù)需要多種并行輸出,將硬件加速模塊的并行輸出數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。基于龍哥庫塔的硬件加速模塊主要負(fù)責(zé)實(shí)現(xiàn)微分方程求解的硬件加速。該用于求解微分方程的硬件加速裝置通過提出通用的計(jì)算架構(gòu),結(jié)合FPGA局部可重構(gòu)特性,通過對核心計(jì)算單元的靈活配置,實(shí)現(xiàn)對微分方程組求解的硬件加速的通用化。

結(jié)合圖2,串并轉(zhuǎn)換模塊主要將控制輸入緩存的讀操作,并根據(jù)讀取的指示信號,將讀取的數(shù)據(jù)并行與基于龍哥庫塔的硬件加速單元連接,該模塊數(shù)據(jù)輸入位寬為32位,輸出數(shù)據(jù)位寬最大支持4096位寬,具體可以根據(jù)需求進(jìn)行配置。并串轉(zhuǎn)換模塊主要是將計(jì)算結(jié)果以32位位寬輸出并控制輸出緩存的寫操作。

具體而言,本發(fā)明的一種用于求解微分方程的硬件加速裝置,包括輸入緩存模塊、輸出緩存模塊、串并轉(zhuǎn)換模塊、并串轉(zhuǎn)換模塊和基于龍哥庫塔的硬件加速單元;輸入緩存模塊、輸出緩存模塊中緩存的數(shù)據(jù)位寬與總線位寬匹配,輸入緩存模塊與串并轉(zhuǎn)換模塊相連,輸出緩存模塊與并串轉(zhuǎn)換模塊相連,串并轉(zhuǎn)換模塊的輸出與基于龍哥庫塔的硬件加速單元相連,提供微分方程計(jì)算所需的所有數(shù)據(jù),基于龍哥庫塔的硬件加速單元的輸出與并串轉(zhuǎn)換模塊相連,將計(jì)算結(jié)果輸出到并串轉(zhuǎn)換模塊;

其中輸入緩存模塊通過串并轉(zhuǎn)換模塊與基于龍哥庫塔的硬件加速單元進(jìn)行信息交互,輸出緩存模塊通過并串轉(zhuǎn)換模塊和基于龍哥庫塔的硬件加速單元進(jìn)行信息交互,輸入緩存模塊、輸出緩存模塊用于與主控單元之間交互數(shù)據(jù)的緩存,基于龍哥庫塔的硬件加速單元與主控單元之間的所有數(shù)據(jù)均通過輸入輸出緩存模塊交互;

所述串并轉(zhuǎn)換模塊將輸入緩存讀出的數(shù)據(jù)進(jìn)行并行輸出給硬件加速模塊,并串轉(zhuǎn)換模塊將基于龍哥庫塔的硬件加速模塊的并行輸出數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù);

基于龍哥庫塔的硬件加速模塊用于實(shí)現(xiàn)微分方程求解的硬件加速。

所述輸入緩存模塊包含輸入FIFO和控制寄存器組兩部分,輸入FIFO用于數(shù)據(jù)傳遞,控制寄存器組用于控制信號的傳遞,控制寄存器由上位機(jī)賦值,由基于龍哥庫塔的硬件加速單元進(jìn)行復(fù)位。

所述的輸出緩存模塊包含輸出FIFO和狀態(tài)寄存器組兩部分,輸出FIFO用于計(jì)算結(jié)果數(shù)據(jù)傳遞,狀態(tài)寄存器組用于狀態(tài)信號的傳遞,狀態(tài)寄存器由基于龍哥庫塔的硬件加速單元進(jìn)行賦值,由上位機(jī)進(jìn)行復(fù)位。

所述串并轉(zhuǎn)換模塊根據(jù)控制信號對輸入緩存模塊的輸入FIFO進(jìn)行讀操作控制,讀取的數(shù)據(jù)進(jìn)行并行輸出,同時(shí)對控制信號進(jìn)行轉(zhuǎn)換,產(chǎn)生基于龍哥庫塔的硬件加速單元的控制信號,同時(shí)對控制信號進(jìn)行復(fù)位操作。

所述并串轉(zhuǎn)換模塊根據(jù)控制信號對輸出緩存的輸出FIFO進(jìn)行寫操作控制,對狀態(tài)寄存器進(jìn)行賦值。

所述基于龍哥庫塔的硬件加速單元采用經(jīng)典的四階龍哥庫塔法,所有計(jì)算均采用單精度/雙精度浮點(diǎn)計(jì)算,用于保證精度和統(tǒng)一位寬,該模塊提供常用的浮點(diǎn)運(yùn)算硬件加速單元,支持的浮點(diǎn)運(yùn)算單元包括加減乘除浮點(diǎn)運(yùn)算單元、三角函數(shù)、冪函數(shù)單元,其核心的微分方程求解部分采用FPGA的可重構(gòu)方案,通過參數(shù)設(shè)置和重構(gòu)即可完成對不同的微分方程求解。

串并轉(zhuǎn)換模塊的數(shù)據(jù)輸入位寬為32位,輸出數(shù)據(jù)位寬最大支持4096位寬;并串轉(zhuǎn)換模塊是將計(jì)算結(jié)果以32位位寬輸出并控制輸出緩存模塊的寫操作。

所述基于龍哥庫塔的硬件加速單元的計(jì)算中間數(shù)據(jù)通過DMA方式進(jìn)行傳送。

一種基于上述的用于求解微分方程的硬件加速裝置的加速方法,包括以下步驟:

步驟1、判斷是否為高階微分方程,如果為高階微分方程,則將高階微分方程化為一階微分方程組,然后執(zhí)行步驟2;如果為一階方程組,則直接執(zhí)行步驟2;

步驟2、對一階微分方程組采用經(jīng)典的4階龍哥庫塔方法求解;其中主迭代采用相同的硬件結(jié)構(gòu),每次主迭代中的子迭代采用相同的硬件結(jié)構(gòu),子迭代采用最大限度的并行硬件結(jié)構(gòu)進(jìn)行實(shí)現(xiàn)。子迭代時(shí),找到每次子迭代中的最大時(shí)延路徑,通過增加并行度來減少計(jì)算時(shí)延時(shí)。

本發(fā)明采用硬件實(shí)現(xiàn)微分方程組求解加速,具有更高的加速比。

下面結(jié)合具體實(shí)施例對本發(fā)明做進(jìn)一步說明。

實(shí)施例1

結(jié)合圖1,一種用于求解微分方程的硬件加速裝置,由輸入輸出緩存模塊、串并轉(zhuǎn)換模塊和基于龍哥庫塔的硬件加速模塊組成。輸入輸出緩存模塊主要用于與主控直接交互數(shù)據(jù)的緩存,加速單元與主控之間的所有數(shù)據(jù)均通過輸入輸出緩存交互。串并/并串轉(zhuǎn)換模塊主要是負(fù)責(zé)將輸入緩存的讀出的數(shù)據(jù)根據(jù)需要多種并行輸出,將硬件加速模塊的并行輸出數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)?;邶埜鐜焖挠布铀倌K主要負(fù)責(zé)實(shí)現(xiàn)微分方程求解的硬件加速。該用于求解微分方程的硬件加速裝置通過提出通用的計(jì)算架構(gòu),結(jié)合FPGA局部可重構(gòu)特性,通過對核心計(jì)算單元的靈活配置,實(shí)現(xiàn)對微分方程組求解的硬件加速的通用化。

結(jié)合圖2,串并轉(zhuǎn)換模塊主要將控制輸入緩存的讀操作,并根據(jù)讀取的指示信號,將讀取的數(shù)據(jù)并行與基于龍哥庫塔的硬件加速單元連接,該模塊數(shù)據(jù)輸入位寬為32位,輸出數(shù)據(jù)位寬最大支持4096位寬,具體可以根據(jù)需求進(jìn)行配置。并串轉(zhuǎn)換模塊主要是將計(jì)算結(jié)果以32位位寬輸出并控制輸出緩存的寫操作。

結(jié)合圖3,一種用于求解微分方程的硬件加速裝置的計(jì)算流程如下:

如圖3所示,一種用于求解微分方程的硬件加速裝置的計(jì)算流程如下:

a)首先判斷是否為高階微分方程,如果為高階微分方程,則將高階微分方程化為1階微分方程組;如果為一階方程組,則直接進(jìn)行步驟b);

b)對1階微分方程組采用經(jīng)典的4階龍哥庫塔方法求解;

c)針對b)步驟的4階龍哥庫塔的硬件實(shí)現(xiàn),對每次迭代中的4次子迭代過程進(jìn)行深度優(yōu)化,主迭代采用相同的硬件結(jié)構(gòu),每次主迭代中的子迭代采用相同的硬件結(jié)構(gòu),對子迭代中的實(shí)現(xiàn)最大限度的并行硬件結(jié)構(gòu);

d)為了達(dá)到b)中的目的,對解根號、三角函數(shù)求解、除法、遍歷查找等較為復(fù)雜的算法,采用并行的運(yùn)算單元進(jìn)行,并采用多種優(yōu)化手段,如除法增加每次迭代步長、三角函數(shù)采用兩步合并、對于一些需要遍歷的常量表采用編碼的方式以查表的方式替代遍歷比較操等等。找到每次子迭代中的最大時(shí)延路徑,通過增加并行度來減少計(jì)算時(shí)延時(shí),其它的非最大時(shí)延路徑需要進(jìn)行資源與速度的折中。

由于加速模塊與主處理器的通信耗時(shí)較大,采用將整個(gè)算法全硬件化運(yùn)行,減少交互,主處理器只需要將參數(shù)初始化值、步長和一些控制信號發(fā)送到加速模塊,加速模塊的計(jì)算中間數(shù)據(jù)則通過DMA方式進(jìn)行,成功將通信占時(shí)比控制在較低的水平,其通信占時(shí)比隨著算法變量數(shù)目、計(jì)算復(fù)雜度和迭代次數(shù)的增大而降低。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
万山特区| 体育| 且末县| 永定县| 繁峙县| 银川市| 高邮市| 阳原县| 平江县| 额济纳旗| 察哈| 新晃| 广宁县| 建湖县| 苏尼特右旗| 农安县| 塔城市| 安庆市| 边坝县| 丽水市| 龙州县| 西贡区| 基隆市| 延长县| 突泉县| 英山县| 清新县| 安岳县| 筠连县| 安陆市| 资源县| 蓝山县| 射阳县| 襄樊市| 富民县| 蓝田县| 建德市| 灵宝市| 漳平市| 沽源县| 常德市|