新聞中心

EEPW首頁 > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 基于CAPI FPGA的醫(yī)學(xué)超聲成像算法異構(gòu)加速

基于CAPI FPGA的醫(yī)學(xué)超聲成像算法異構(gòu)加速

作者:陳俊穎 周順風(fēng) 閔華清 時(shí)間:2016-09-28 來源:電子產(chǎn)品世界 收藏
編者按:在醫(yī)學(xué)超聲成像算法中,最經(jīng)典和最廣泛使用的是延遲疊加算法。延遲疊加算法在超聲成像、雷達(dá)信號發(fā)射、接收以及天線信號波束形成等方面有著廣泛的應(yīng)用。雖然該算法并不是典型的性能需求型算法,但是在醫(yī)學(xué)成像云計(jì)算服務(wù)的新需求下,需要提高該算法的計(jì)算速度,以克服云計(jì)算中網(wǎng)絡(luò)傳輸速度相對較慢的約束。然而,以中央處理器作為主要計(jì)算資源的傳統(tǒng)云計(jì)算框架無法滿足醫(yī)學(xué)超聲圖像快速生成的性能需求,因此,本文中使用以現(xiàn)場可編程邏輯門陣列作為異構(gòu)加速資源的SuperVessel云平臺作為并行延遲疊加算法的實(shí)現(xiàn)平臺。當(dāng)包括現(xiàn)場可編程邏輯

摘要:在算法中,最經(jīng)典和最廣泛使用的是延遲疊加算法。延遲疊加算法在超聲成像、雷達(dá)信號發(fā)射、接收以及天線信號波束形成等方面有著廣泛的應(yīng)用。雖然該算法并不是典型的性能需求型算法,但是在醫(yī)學(xué)成像服務(wù)的新需求下,需要提高該算法的計(jì)算速度,以克服中網(wǎng)絡(luò)傳輸速度相對較慢的約束。然而,以中央處理器作為主要計(jì)算資源的傳統(tǒng)框架無法滿足醫(yī)學(xué)超聲圖像快速生成的性能需求,因此,本文中使用以現(xiàn)場可編程邏輯門陣列作為資源的SuperVessel云平臺作為并行延遲疊加算法的實(shí)現(xiàn)平臺。當(dāng)包括現(xiàn)場可編程邏輯門陣列和中央處理器之間的數(shù)據(jù)傳輸時(shí)間在內(nèi)時(shí),SuperVessel云平臺上該算法異構(gòu)實(shí)現(xiàn)的運(yùn)行速度相較于中央處理器中該算法的運(yùn)行速度提升了約22倍。

本文引用地址:http://butianyuan.cn/article/201609/310488.htm

引言

  延遲疊加算法是算法中最經(jīng)典和最廣泛使用的基本算法,在眾多應(yīng)用場景中有著廣泛的運(yùn)用,例如[1]、雷達(dá)信號的發(fā)射和接收[2]以及天線信號波束形成[3]等。同時(shí),該算法可以在眾多不同的設(shè)備中實(shí)現(xiàn),例如在臨床和便攜嵌入式醫(yī)學(xué)超聲實(shí)時(shí)成像設(shè)備中均有延遲疊加算法的實(shí)現(xiàn)。然而,當(dāng)我們考慮醫(yī)學(xué)成像云計(jì)算服務(wù)的全新應(yīng)用場景時(shí),傳統(tǒng)計(jì)算設(shè)備的計(jì)算速度并不能滿足實(shí)時(shí)成像的計(jì)算需求。因此,有必要研發(fā)更快的、更有效的延遲疊加算法云實(shí)現(xiàn)。

  傳統(tǒng)的延遲疊加算法實(shí)現(xiàn)一般是采用基于中央處理器結(jié)構(gòu)的串行計(jì)算模式實(shí)現(xiàn)。對于某些應(yīng)用來說,中央處理器的計(jì)算速度可以滿足其計(jì)算需求,然而對于醫(yī)學(xué)成像云服務(wù)應(yīng)用來說,中央處理器的計(jì)算速度還是相對太慢。另一方面,使用現(xiàn)場可編程邏輯門陣列(Field-Programmable Gate Array,F(xiàn)PGA)可以滿足并行實(shí)現(xiàn)的計(jì)算需求,而SuperVessel平臺正是第一個(gè)將FPGA加速融入到云計(jì)算中的計(jì)算平臺,因此,適合在該平臺上實(shí)現(xiàn)和評測并行延遲疊加算法。

  本文將詳細(xì)描述SuperVessel云平臺[4]上使用FPGA加速的并行延遲疊加算法的設(shè)計(jì)和實(shí)驗(yàn)評測。

1 延遲疊加算法及其并行實(shí)現(xiàn)方案

1.1 延遲疊加算法

  圖1中的代碼為醫(yī)學(xué)超聲成像中串行延遲疊加算法的核心代碼。在該算法中,首先計(jì)算接收到的回聲超聲信號的延遲量,進(jìn)而將延遲后的回聲信號疊加,得到增強(qiáng)的回聲信號輸出,即超聲成像圖像中一個(gè)像素點(diǎn)的亮度值。

  延遲疊加算法包含三個(gè)循環(huán),如圖1中所示。該算法的時(shí)間復(fù)雜度為:

(1)

  其中變量LC(Line Count)表示輸出圖像中垂直的圖像線條數(shù),變量RC(Rows Count)表示輸出圖像中的行數(shù),變量PA(Probe Amount)表示接收回聲超聲信號的探頭陣元數(shù)量。

  在本文的設(shè)計(jì)和實(shí)驗(yàn)中,LC設(shè)定為64,RC設(shè)定為1024,PA設(shè)定為64,所以每生成一幅超聲圖像需要計(jì)算4194304次延遲量計(jì)算和疊加計(jì)算。此外,在實(shí)時(shí)成像的情況下,要求形成流暢的實(shí)時(shí)成像視頻需要每秒24幀圖像的幀率。因此,定義TC為上述每一次延遲量計(jì)算和疊加計(jì)算共需要消耗的時(shí)間,則:

(2)

  對上式進(jìn)行移項(xiàng),可得:

(3)

  在本文的設(shè)計(jì)和實(shí)驗(yàn)中,為了實(shí)現(xiàn)實(shí)時(shí)成像,根據(jù)公式(3)演算出TC的最大值為9.93×10-9秒。此外,隨著輸入數(shù)據(jù)集的增大,實(shí)時(shí)成像的實(shí)現(xiàn)難度也相應(yīng)提升,因此,需要考慮并行實(shí)現(xiàn)方案。

1.2 延遲疊加算法的并行實(shí)現(xiàn)

  如圖1所示,串行延遲疊加算法的核心代碼中,核心操作是對延遲后輸入數(shù)據(jù)的疊加。針對于最終生成圖像中的一個(gè)特定像素點(diǎn)(i, j),存在PA次輸入數(shù)據(jù)信號的疊加,疊加的公式如下:

(4)

  其中,i、j和k分別是LC、RC和PA的累加變量,而d是延遲量的數(shù)值,可以通過特定i、j和k變量的相關(guān)計(jì)算得到。當(dāng)變量i為一個(gè)特定值ifixed時(shí),最終圖像中第ifixed列上像素點(diǎn)的亮度值可以通過如下公式計(jì)算:

(5)

  通過對延遲疊加算法進(jìn)行分析,得出計(jì)算不同圖像線上的image(ifixed, j)時(shí)并不存在相互間的數(shù)據(jù)依賴。因此,延遲疊加算法的計(jì)算過程可以并行化實(shí)現(xiàn)。

2 SuperVessel云平臺上的算法實(shí)現(xiàn)

  本文使用SuperVessel云平臺實(shí)現(xiàn)的并行延遲疊加算法需要滿足以下計(jì)算需求:1、在一個(gè)時(shí)鐘周期內(nèi)計(jì)算特定像素點(diǎn)image(i, j)的值;2、實(shí)現(xiàn)足夠精確的浮點(diǎn)數(shù)計(jì)算;3、FPGA上全流水線化計(jì)算。

  本文使用CAPI FPGA實(shí)現(xiàn)并行延遲疊加算法的設(shè)計(jì)框圖如圖2所示。該設(shè)計(jì)包含五個(gè)主要部分:輸入數(shù)據(jù)分離器、RowsCount循環(huán)生成器、延遲信號選擇器、疊加器和數(shù)據(jù)輸出控制器。以下是這五個(gè)部分設(shè)計(jì)原理和實(shí)現(xiàn)模式的詳細(xì)描述:

  輸入數(shù)據(jù)分離器: CAPI傳輸總線的帶寬是256位,而每一個(gè)延遲信號選擇器僅需要32位的帶寬,以供傳輸標(biāo)準(zhǔn)的單精度浮點(diǎn)數(shù)。由圖2可以看出該設(shè)計(jì)中包含64個(gè)延遲信號選擇器,因此,需要將CAPI總線的256位輸入數(shù)據(jù)分離,并且規(guī)劃好輸入數(shù)據(jù)讀取的順序。輸入數(shù)據(jù)讀取過程的規(guī)劃如下:

  第一步:在T時(shí)鐘周期內(nèi),第0個(gè)至第7個(gè)延遲信號選擇器讀取一個(gè)CAPI輸入信號數(shù)據(jù);在(T+1)時(shí)鐘周期內(nèi),第8個(gè)至第15個(gè)延遲信號選擇器讀取下一個(gè)CAPI輸入信號數(shù)據(jù);以此類推,直到在(T+7)時(shí)鐘周期內(nèi),第56個(gè)至第63個(gè)延遲信號選擇器讀取下一個(gè)CAPI輸入信號數(shù)據(jù)。

  第二步:重復(fù)第一步所描述的步驟,直到生成一幅圖像中某一列像素點(diǎn)所需要的所有輸入信號數(shù)據(jù)讀取完畢。

  第三步:當(dāng)圖像中某一列的所有像素點(diǎn)數(shù)值均計(jì)算完成,則回到第一步讀取生成圖像中下一列像素點(diǎn)所需要的輸入信號數(shù)據(jù)過程。

  RowsCount循環(huán)生成器:當(dāng)圖像中某一列像素點(diǎn)計(jì)算所需要的所有輸入信號數(shù)據(jù)讀取完畢時(shí),循環(huán)生成器將開始生成RC循環(huán)變量j的值。變量j的初始值為0,在每一個(gè)時(shí)鐘周期內(nèi)自增1,直到最大值1023。

  延遲信號選擇器:延遲信號選擇器將計(jì)算對應(yīng)像素點(diǎn)不同數(shù)據(jù)通道上的延遲量,并選擇對應(yīng)的輸入信號數(shù)據(jù)。實(shí)現(xiàn)部分包含了一個(gè)延遲量計(jì)算器和一個(gè)BRAM存儲器,BRAM存儲器用于存儲某個(gè)數(shù)據(jù)輸入接收通道,接收通道接收到的輸入信號數(shù)據(jù)。

  疊加器:在并行延遲疊加算法的CAPI FPGA設(shè)計(jì)中共有64個(gè)延遲信號選擇器,而這64個(gè)延遲信號選擇器的輸出值之和,即為image(i, j)的最終結(jié)果。計(jì)算兩個(gè)延遲信號選擇器輸出值之和需要一個(gè)加法器,對應(yīng)地,計(jì)算64個(gè)延遲信號選擇器輸出值之和需要63個(gè)加法器。為了使加法器設(shè)計(jì)流水線化,疊加器模塊將加法器分為6個(gè)階段層次,每層分別使用32、16、8、4、2、1個(gè)加法器。

  輸出數(shù)據(jù)控制器:由于CAPI總線提供的帶寬是256位,而本文所描述的設(shè)計(jì)每一個(gè)時(shí)鐘周期內(nèi)輸出數(shù)據(jù)是一個(gè)32位的浮點(diǎn)數(shù)。因此,輸出的數(shù)據(jù)可以先存放于FPGA中,每8個(gè)時(shí)鐘周期通過CAPI總線接口向CPU輸出一次數(shù)據(jù)。

  除了上述的五個(gè)主要實(shí)現(xiàn)模塊外,本設(shè)計(jì)方案中也使用了下面兩個(gè)設(shè)計(jì)模塊:

  浮點(diǎn)數(shù)計(jì)算單元:本設(shè)計(jì)使用了Xilinx Vivado軟件中提供的浮點(diǎn)數(shù)IP核作為浮點(diǎn)數(shù)計(jì)算單元模塊。該類IP核遵循了IEEE-754的標(biāo)準(zhǔn),因此,本文設(shè)計(jì)中的浮點(diǎn)數(shù)計(jì)算結(jié)果相較于CPU實(shí)現(xiàn)的浮點(diǎn)數(shù)計(jì)算結(jié)果而言,誤差很小。另一方面,該類IP核是全流水線化的,這也進(jìn)一步提升了設(shè)計(jì)的吞吐量。

  狀態(tài)控制器:在圖像像素點(diǎn)數(shù)值計(jì)算的過程中有兩個(gè)狀態(tài)階段:第一個(gè)階段是輸入信號數(shù)據(jù)的讀取過程,第二個(gè)階段是延遲量的計(jì)算和延遲后輸入信號數(shù)據(jù)的疊加過程。狀態(tài)控制器包含一個(gè)狀態(tài)標(biāo)記變量,以指示當(dāng)前計(jì)算的狀態(tài)階段。當(dāng)?shù)谝浑A段的輸入信號數(shù)據(jù)讀取過程結(jié)束時(shí),BRAM的寫入地址waddr的值將為2047。因此,可定義waddr==2047為第二階段開始的標(biāo)記信號。當(dāng)?shù)诙A段結(jié)束時(shí),將waddr的值設(shè)為0,則將觸發(fā)第一階段重新開始,進(jìn)行下一輪計(jì)算。此外,當(dāng)圖像中所有的像素點(diǎn)計(jì)算完成時(shí),輸出圖像的像素點(diǎn)數(shù)目為65536 。所以,可定義該數(shù)值為圖像計(jì)算完成的標(biāo)志變量,標(biāo)志著算法計(jì)算結(jié)束。

3 實(shí)驗(yàn)和評測結(jié)果討論

3.1 SuperVessel平臺上使用CAPI FPGA加速器的流程

  在SuperVessel平臺上使用CAPI FPGA加速器來加速算法應(yīng)用,需要執(zhí)行以下步驟:

  1、使用Xilinx Vivado軟件設(shè)計(jì)FPGA加速器核心模塊;

  2、在本地的x86機(jī)器上集成FPGA加速器核心模塊和CAPI仿真框架進(jìn)行仿真驗(yàn)證;

  3、在本地機(jī)器上編譯FPGA加速器核心模塊和CAPI加速框架構(gòu)成的加速器包,并生成對應(yīng)的bitstream文件;

  4、將加速器bitstream文件上傳到SuperVessel云平臺上;

  5、在SuperVessel云平臺上申請?zhí)摂M機(jī)資源,并關(guān)聯(lián)對應(yīng)的加速器bitstream文件,然后啟動虛擬機(jī)運(yùn)行加速器。

  另外需要注意以下兩點(diǎn):

  VPN網(wǎng)絡(luò):SuperVessel云平臺上申請的虛擬機(jī)資源沒有對應(yīng)的可直接訪問的公網(wǎng)IP,需要使用對應(yīng)的VPN網(wǎng)絡(luò)。使用的VPN網(wǎng)絡(luò)在Windows、Linux、MacOS等主流操作系統(tǒng)中均有對應(yīng)的軟件支持。

  內(nèi)存占用:編譯步驟3中所述的加速器包時(shí)需要大量本地機(jī)器內(nèi)存,尤其在綜合和布線的階段;而且CAPI FPGA加速器設(shè)計(jì)越復(fù)雜,本地機(jī)器內(nèi)存占用量就越大。在本文的實(shí)驗(yàn)評測中觀察到,編譯階段的內(nèi)存占用量最高達(dá)到了14GB。內(nèi)存不足將導(dǎo)致編譯失敗,因此需要根據(jù)CAPI FPGA設(shè)計(jì)的大小配置足夠的內(nèi)存資源。

3.2 仿真數(shù)據(jù)生成

  本文的實(shí)驗(yàn)過程中為了測試使用CAPI FPGA并行加速的延遲疊加算法,使用Field II醫(yī)學(xué)超聲信號模擬器[5]仿真了醫(yī)學(xué)超聲回波輸入數(shù)據(jù)。本文的醫(yī)學(xué)超聲圖像回波輸入數(shù)據(jù)仿真了128個(gè)陣元的超聲探頭,探頭間距為0.3048mm,采用5 kHz的脈沖發(fā)射頻率和40 MHz的回波接收采樣頻率。此外,超聲圖像的成像場景仿真了線形點(diǎn)陣列作為成像對象的散射源。

3.3 實(shí)驗(yàn)結(jié)果討論

  在實(shí)驗(yàn)中,通過網(wǎng)絡(luò)將10份醫(yī)學(xué)超聲圖像的輸入信號數(shù)據(jù)載入SuperVessel云平臺,其中每份圖像的輸入信號數(shù)據(jù)對應(yīng)于一張超聲圖像。在云平臺上通過CAPI加速架構(gòu)提供的API,調(diào)用FPGA加速器,將數(shù)據(jù)從云平臺上CPU對應(yīng)的DDR內(nèi)存中傳輸?shù)紽PGA中的BRAM里;完成圖像像素點(diǎn)數(shù)值計(jì)算后再將數(shù)據(jù)傳回DDR內(nèi)存。實(shí)測從數(shù)據(jù)傳輸開始到數(shù)據(jù)傳輸結(jié)束的時(shí)間,得到并行延遲疊加算法云計(jì)算應(yīng)用運(yùn)行的總時(shí)間。并行延遲疊加算法在FPGA上的計(jì)算時(shí)間通過統(tǒng)計(jì)算法執(zhí)行的時(shí)鐘周期來確定,因此,還可推算出數(shù)據(jù)傳輸所消耗的時(shí)間。通過多次實(shí)驗(yàn)求得各項(xiàng)時(shí)間參數(shù)的平均值,如表1所示。

  與此同時(shí),使用SuperVessel云平臺上CPU計(jì)算獲得同樣的10張醫(yī)學(xué)超聲圖像,其每張圖像計(jì)算的平均耗時(shí)為246 ms。由此計(jì)算可得,本文設(shè)計(jì)的CAPI FPGA并行延遲疊加算法實(shí)現(xiàn)的加速比達(dá)到了約22倍。此外,通過實(shí)驗(yàn)推導(dǎo)出該設(shè)計(jì)的TC數(shù)值為秒,滿足1.1小節(jié)提出的實(shí)時(shí)成像要求。

4 結(jié)論和展望

  本文描述了在SuperVessel云平臺上,設(shè)計(jì)和評測基于CAPI FPGA加速器技術(shù)的并行延遲疊加算法。實(shí)驗(yàn)評測結(jié)果表明,SuperVessel云平臺上基于CAPI FPGA加速器的并行延遲疊加算法的運(yùn)行速度相較于使用CPU計(jì)算的延遲疊加算法的運(yùn)行速度提高了約22倍,該速度可以滿足醫(yī)學(xué)成像云計(jì)算服務(wù)的需求。

  目前,本文設(shè)計(jì)中的超聲回波信號接收通道數(shù)為64。通道數(shù)越大時(shí),得到的圖像越清晰,所以我們使用同樣的方案設(shè)計(jì)了96通道和128通道的成像方案,但由于資源限制的原因未能成功運(yùn)行。我們將繼續(xù)優(yōu)化當(dāng)前的設(shè)計(jì),降低資源占用并采用多片F(xiàn)PGA設(shè)計(jì)方案,進(jìn)一步提高通道數(shù)量和數(shù)據(jù)處理能力。

  另外,SuperVessel云平臺提供的CAPI加速技術(shù)可以應(yīng)用于其他計(jì)算密集型算法加速,尤其是輸入輸出數(shù)據(jù)量小,而時(shí)間復(fù)雜度高的算法。我們將進(jìn)一步把其他醫(yī)學(xué)超聲成像算法設(shè)計(jì)到SuperVessel云平臺上實(shí)現(xiàn)。

參考文獻(xiàn):

  [1] G. Matrone, A.S. Savoia, G. Caliano, and G. Magenes, “ The Delay Multiply and SumBeamforming Algorithm in Ultrasound B-Mode Medical Imaging,” IEEE Transactions onMedical Imaging, 2015, 34, (4), pp. 940-949.

  [2] T. Sakamoto, T. Sato, P.J. Aubry, and A.G. Yarovoy, “Ultra-Wideband Radar ImagingUsing a Hybrid of Kirchhoff Migration and Stolt F-K Migration With an Inverse BoundaryScattering Transform,” IEEE Transactions on Antennas and Propagation, 2015, 63, (8),pp. 3502-3512.

  [3] S.S. Tiang, M. Sadoon, T.F. Zanoon, M.F. Ain, and M.Z. Abdullah, “Radar sensingfeaturing biconical antenna and enhanced delay and sum algorithm for early stage breastcancer detection,” Progress In Electromagnetics Research B, 2013, 46, pp. 299-316.

  [4] Y. Lin, and L. Shao, “SuperVessel: The Open Cloud Service for Open-POWER,” White paper, IBM corporation, 2015.

  [5] J.A. Jensen, “Ultrasound fields from triangular apertures,” Journal of the Acoustical Society of America, 1996, 100, (4), pp. 2049-2056.

本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第9期第41頁,歡迎您寫論文時(shí)引用,并注明出處。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉