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

一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法與流程

文檔序號(hào):12467303閱讀:409來源:國(guó)知局
一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法與流程

本發(fā)明涉及生物信息計(jì)算領(lǐng)域,尤其涉及一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法。



背景技術(shù):

在異構(gòu)計(jì)算系統(tǒng)上進(jìn)行的并行計(jì)算通常稱為異構(gòu)計(jì)算。異構(gòu)計(jì)算的應(yīng)用范圍很廣,幾乎所有涉及巨大挑戰(zhàn)性問題的求解都可用異構(gòu)計(jì)算進(jìn)行經(jīng)濟(jì)有效的求解。典型的應(yīng)用包括圖像理解、質(zhì)點(diǎn)示蹤、聲束形成、氣候建模、湍流對(duì)流混合模擬以及多媒體查詢等。這些應(yīng)用中通常都含有多種不同的計(jì)算類型的需求,因此很適合于用異構(gòu)計(jì)算來進(jìn)行求解。

生物信息的快速增長(zhǎng)與數(shù)據(jù)產(chǎn)出成本的不斷下降,必然帶來更多的數(shù)據(jù)處理需求。精準(zhǔn)醫(yī)療、人工智能、基因測(cè)序,包括產(chǎn)前篩查、新生兒、遺傳病,以及癌癥相關(guān)的診斷和用藥指導(dǎo),這些前沿產(chǎn)業(yè)的背后都需要數(shù)據(jù)處理能力的支撐。

生物數(shù)據(jù)分析流程比較復(fù)雜,涉及不同的語言和工具,數(shù)據(jù)量和計(jì)算量都很大,因此針對(duì)基因計(jì)算的異構(gòu)計(jì)算將會(huì)成為基因計(jì)算發(fā)展的新方向。

中國(guó)專利申請(qǐng)CN106020425A公開了一種FPGA異構(gòu)加速計(jì)算系統(tǒng),該系統(tǒng)包括CPU及與所述CPU連接的FPGA異構(gòu)加速卡;所述CPU,用于發(fā)送源操作數(shù)及控制信息至所述FPGA異構(gòu)加速卡,以及用于讀取所述FPGA異構(gòu)加速卡加速計(jì)算后得到的結(jié)果數(shù)據(jù);所述FPGA異構(gòu)加速卡,用于利用所述控制信息對(duì)所述源操作數(shù)進(jìn)行相應(yīng)的加速計(jì)算,得到所述結(jié)果數(shù)據(jù)。實(shí)現(xiàn)了CPU+FPGA的異構(gòu)加速計(jì)算方案,即,由CPU將控制信息及源操作數(shù)發(fā)送至FPGA異構(gòu)加速卡,由FPGA異構(gòu)加速卡實(shí)現(xiàn)對(duì)源操作數(shù)的計(jì)算,并得到結(jié)果數(shù)據(jù),降低系統(tǒng)功耗,提高系統(tǒng)能效。但是單純將FPGA異構(gòu)加速計(jì)算系統(tǒng)應(yīng)用于基因計(jì)算,無法滿足應(yīng)用程序特征多樣性的需求。單純基于FPGA異構(gòu)加速系統(tǒng),普遍采用主控處理器和FPGA功能固定的計(jì)算,特別是FPGA里的硬件加速程序,因此任務(wù)分配極不靈活,不能隨著基因計(jì)算程序的不同自動(dòng)進(jìn)行軟件和硬件劃分,對(duì)于計(jì)算效率大打折扣。



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

本發(fā)明的目的是提供一種適應(yīng)生物信息學(xué)的特點(diǎn)、計(jì)算效率高的一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法。

本發(fā)明為了實(shí)現(xiàn)上述目的采用以下技術(shù)方案:

一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法,包括以下步驟:

步驟S1,算法分析,將基因計(jì)算區(qū)分為用計(jì)算機(jī)處理器計(jì)算慢部分和計(jì)算機(jī)處理器計(jì)算快部分。

步驟S2,根據(jù)步驟S1中算法分析結(jié)果,計(jì)算機(jī)處理器計(jì)算慢部分采用硬件加速,計(jì)算機(jī)處理器計(jì)算快部分采用軟件加速,進(jìn)行軟硬件界面劃分。

步驟S3,根據(jù)步驟S2中分工,軟件加速部分通過云平臺(tái)實(shí)現(xiàn),硬件加速部分下載到云平臺(tái)提供的FPGA來實(shí)現(xiàn)。

步驟S4,綜合異構(gòu)加速結(jié)果。

所述步驟S2中軟件加速部分編寫C語言軟件,硬件加速部分編寫Verilog語言硬件程序。

所述步驟S3中,將軟件加速部分和硬件加速部分分別優(yōu)化編譯成軟件可執(zhí)行程序和硬件FPGA可下載比特流文件,分別上傳云平臺(tái)的主控制器和FPGA加速單元中進(jìn)行運(yùn)算。

所述步驟S3中,云服務(wù)器和云端提供的FPGA之間使用CAPI接口進(jìn)行兩邊的通信。

所述步驟S4中,在 本地客戶端查看運(yùn)算結(jié)果等返回值。

本發(fā)明的有益效果是本發(fā)明通過公共云平臺(tái)進(jìn)行基因大數(shù)據(jù)的采集,并用更高效的接口來提高云服務(wù)器與FPGA之間的數(shù)據(jù)傳輸,多個(gè)FPGA之間可以采用分步式計(jì)算進(jìn)行進(jìn)一步加速。通用計(jì)算平臺(tái)和FPGA共同使用的異構(gòu)計(jì)算,相比以往的單一處理單元,F(xiàn)PGA能夠通過改變硬件連接關(guān)系來達(dá)到硬件結(jié)構(gòu)與計(jì)算的最優(yōu)結(jié)合,速度更快;相比只使用FPGA的計(jì)算而言,異構(gòu)計(jì)算使兩種結(jié)構(gòu)的處理單元都能發(fā)揮各自的長(zhǎng)處,比單一種類處理單元效果更好,在通信接口方面進(jìn)行加強(qiáng)后增加一次傳輸?shù)臄?shù)據(jù)量,減少傳輸次數(shù),更能提高整體的加速效果。

附圖說明

圖1為本發(fā)明的總體流程圖。

圖2為基因的雙序列比對(duì)算法Smith-Waterman的實(shí)現(xiàn)流程圖。

具體實(shí)施方式

如圖1所示,本發(fā)明一種基于云平臺(tái)中FPGA異構(gòu)加速基因計(jì)算方法,主要包括以下步驟:

步驟S1,算法分析,將基因計(jì)算區(qū)分為用計(jì)算機(jī)處理器計(jì)算慢部分和計(jì)算機(jī)處理器計(jì)算快部分。

步驟S2,根據(jù)步驟S1中算法分析結(jié)果,計(jì)算機(jī)處理器計(jì)算慢的部分采用硬件加速,計(jì)算機(jī)處理器計(jì)算快的部分采用軟件加速。

步驟S3,根據(jù)步驟S2中分工,軟件加速部分通過云平臺(tái)實(shí)現(xiàn),硬件加速部分下載到云平臺(tái)提供的FPGA來實(shí)現(xiàn)。

步驟S4,綜合異構(gòu)加速結(jié)果。

本實(shí)施中以基因的雙序列比對(duì)算法Smith-Waterman為例對(duì)本發(fā)明做詳細(xì)說明。本實(shí)施例中使用IBM提供的SuperVessel云平臺(tái)(超能云)和CAPI(Coherent Accelerator Processor Interface)接口進(jìn)行加速?;虻碾p序列比對(duì)算法Smith-Waterman的實(shí)現(xiàn)流程如圖2所示,為本地主機(jī)編寫合適的C程序和硬件,C程序編譯后得到的可執(zhí)行文件發(fā)送至云服務(wù)器;硬件Verilog代碼傳至云端提供的FPGA;云服務(wù)器和云端提供的FPGA之間使用CAPI接口進(jìn)行兩邊的通信,最后對(duì)經(jīng)過軟件和硬件計(jì)算后得到的最終結(jié)果進(jìn)行綜合。

對(duì)基因的雙序列比對(duì)算法Smith-Waterman進(jìn)行分析,該算法主要分為兩個(gè)步驟:(1)計(jì)算相似性矩陣并存儲(chǔ)計(jì)算路徑;(2)利用相似性矩陣進(jìn)行回溯得到最優(yōu)的比對(duì)結(jié)果。由于第一個(gè)步驟在用軟件方法進(jìn)行加速比對(duì)時(shí)最高可占整個(gè)事件的98.6%,所以重點(diǎn)應(yīng)加速第一個(gè)步驟。

替換矩陣中的值 為子序列S[1]……S[i]和T[1]……T[j]比對(duì)的分值,計(jì)算公式為

其中 , 表示當(dāng)前對(duì)比的數(shù)值是否匹配:如果匹配,該參數(shù)為2;如果不匹配,該參數(shù)為-1。

由計(jì)算公式可得,(1)該計(jì)算過程中最常見運(yùn)算為對(duì)比及加減法;(2) 與 、 、 及 有關(guān)。

硬件實(shí)現(xiàn)中,每對(duì)數(shù)值用一個(gè)處理單元模塊(PE模塊)來實(shí)現(xiàn)對(duì)比。由于數(shù)值需要兩兩對(duì)比,如果采用傳統(tǒng)比較方法等待一方傳送完成后再比較會(huì)使PE模塊處于空閑時(shí)間占據(jù)大部分比對(duì)總時(shí)間的情況,PE模塊利用率極低。所以采用S串?dāng)?shù)值在PE模塊序列中依次更新,T串元素在PE模塊陣列中流過的方法,這樣可以極大地提高對(duì)比過程中PE模塊的利用率。計(jì)算公式指出, 是非負(fù)整數(shù),通過減法后比較來確定其最終的值。在硬件實(shí)現(xiàn)中,根據(jù)將 、 與整數(shù)2比較后的結(jié)果來決定最后和 比較的值。

基于上述比較方式,計(jì)算替換矩陣時(shí)以反對(duì)角線為計(jì)算路徑,則每個(gè)單元的都要依賴于它之前兩個(gè)PE模塊的計(jì)算結(jié)果,F(xiàn)PGA中開發(fā)板中寄存器資源豐富,實(shí)現(xiàn)這一參數(shù)傳遞變得非常容易。

由于參與對(duì)比的基因序列過長(zhǎng),硬件資源有限,所以將基因序列分段傳入進(jìn)行計(jì)算,充分的寄存器資源將序列段之間的計(jì)算過程用流水線的方法進(jìn)行了加速。同時(shí)還可以利用多塊FPGA開發(fā)板將同反對(duì)角線上的數(shù)據(jù)分配到不同板上進(jìn)行并行計(jì)算。以例化了256個(gè)PE模塊的硬件電路為例,假設(shè)利用6塊FPGA開發(fā)板,則可以對(duì)每條反對(duì)角線上的元素序號(hào)進(jìn)行模6運(yùn)算,將結(jié)果相同的元素放在同一塊FPGA開發(fā)板內(nèi)進(jìn)行計(jì)算。

已經(jīng)得到的計(jì)算結(jié)果在剩余比對(duì)過程中都按照陣列順序存放在外部存儲(chǔ)器DDR2 SDRAM中,方便之后的運(yùn)算隨時(shí)取用。根據(jù)DDR2 SDRAM的有效帶寬計(jì)算可得,訪存時(shí)間和比對(duì)實(shí)現(xiàn)能夠?qū)崿F(xiàn)很好的匹配。全部運(yùn)算結(jié)束后,可用C程序?qū)?SDRAM中存儲(chǔ)的結(jié)果寫回到主機(jī)中,極大地節(jié)省了傳輸時(shí)間。

綜上,加速基因序列匹配過程可以用FPGA開發(fā)板來實(shí)現(xiàn),具體實(shí)現(xiàn)步驟如下:

先使用給定IBM的SDK開發(fā)需要的加速器,將編譯后得到的bin文件以zip格式壓縮,在FPGA Maker Zone的Upload Accelerator界面中上傳該zip壓縮包。點(diǎn)擊 My Accelerator List,進(jìn)入上傳的加速器的處理流程,等待所有步驟通過。所有步驟通過后加速器就部署到了云端,就可在超能云中使用這個(gè)加速器了。同時(shí),使用該SDK編寫傳遞序列對(duì)應(yīng)的C程序。申請(qǐng)?zhí)摂M機(jī),C程序編譯完成后將可執(zhí)行文件也傳入到虛擬機(jī)中,在虛擬機(jī)上運(yùn)行,讀取本地給出的基因序列文件,放入加速器中進(jìn)行運(yùn)算。

本發(fā)明基于FPGA的動(dòng)態(tài)可重構(gòu)算法加速器與通用處理器的相結(jié)合,可以適應(yīng)應(yīng)用程序特征的多樣性,同時(shí)保持系統(tǒng)軟件的兼容性,為基因計(jì)算提供有力的支持。

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