新闻中心

EEPW首页 > 医疗电子 > 设计应用 > 基于CAPI FPGA的医学超声成像算法异构加速

基于CAPI FPGA的医学超声成像算法异构加速

作者:陈俊颖 周顺风 闵华清时间:2016-09-28来源:电子产品世界收藏
编者按:在医学超声成像算法中,最经典和最广泛使用的是延迟叠加算法。延迟叠加算法在超声成像、雷达信号发射、接收以及天线信号波束形成等方面有着广泛的应用。虽然该算法并不是典型的性能需求型算法,但是在医学成像云计算服务的新需求下,需要提高该算法的计算速度,以克服云计算中网络传输速度相对较慢的约束。然而,以中央处理器作为主要计算资源的传统云计算框架无法满足医学超声图像快速生成的性能需求,因此,本文中使用以现场可编程逻辑门阵列作为异构加速资源的SuperVessel云平台作为并行延迟叠加算法的实现平台。当包括现场可编程逻辑

摘要:在算法中,最经典和最广泛使用的是延迟叠加算法。延迟叠加算法在超声成像、雷达信号发射、接收以及天线信号波束形成等方面有着广泛的应用。虽然该算法并不是典型的性能需求型算法,但是在医学成像服务的新需求下,需要提高该算法的计算速度,以克服中网络传输速度相对较慢的约束。然而,以中央处理器作为主要计算资源的传统框架无法满足医学超声图像快速生成的性能需求,因此,本文中使用以现场可编程逻辑门阵列作为资源的SuperVessel云平台作为并行延迟叠加算法的实现平台。当包括现场可编程逻辑门阵列和中央处理器之间的数据传输时间在内时,SuperVessel云平台上该算法异构实现的运行速度相较于中央处理器中该算法的运行速度提升了约22倍。

本文引用地址:http://www.eepw.com.cn/article/201609/310488.htm

引言

  延迟叠加算法是算法中最经典和最广泛使用的基本算法,在众多应用场景中有着广泛的运用,例如[1]、雷达信号的发射和接收[2]以及天线信号波束形成[3]等。同时,该算法可以在众多不同的设备中实现,例如在临床和便携嵌入式医学超声实时成像设备中均有延迟叠加算法的实现。然而,当我们考虑医学成像云计算服务的全新应用场景时,传统计算设备的计算速度并不能满足实时成像的计算需求。因此,有必要研发更快的、更有效的延迟叠加算法云实现。

  传统的延迟叠加算法实现一般是采用基于中央处理器结构的串行计算模式实现。对于某些应用来说,中央处理器的计算速度可以满足其计算需求,然而对于医学成像云服务应用来说,中央处理器的计算速度还是相对太慢。另一方面,使用现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)可以满足并行实现的计算需求,而SuperVessel平台正是第一个将FPGA加速融入到云计算中的计算平台,因此,适合在该平台上实现和评测并行延迟叠加算法。

  本文将详细描述SuperVessel云平台[4]上使用FPGA加速的并行延迟叠加算法的设计和实验评测。

1 延迟叠加算法及其并行实现方案

1.1 延迟叠加算法

  图1中的代码为医学超声成像中串行延迟叠加算法的核心代码。在该算法中,首先计算接收到的回声超声信号的延迟量,进而将延迟后的回声信号叠加,得到增强的回声信号输出,即超声成像图像中一个像素点的亮度值。

  延迟叠加算法包含三个循环,如图1中所示。该算法的时间复杂度为:

(1)

  其中变量LC(Line Count)表示输出图像中垂直的图像线条数,变量RC(Rows Count)表示输出图像中的行数,变量PA(Probe Amount)表示接收回声超声信号的探头阵元数量。

  在本文的设计和实验中,LC设定为64,RC设定为1024,PA设定为64,所以每生成一幅超声图像需要计算4194304次延迟量计算和叠加计算。此外,在实时成像的情况下,要求形成流畅的实时成像视频需要每秒24帧图像的帧率。因此,定义TC为上述每一次延迟量计算和叠加计算共需要消耗的时间,则:

(2)

  对上式进行移项,可得:

(3)

  在本文的设计和实验中,为了实现实时成像,根据公式(3)演算出TC的最大值为9.93×10-9秒。此外,随着输入数据集的增大,实时成像的实现难度也相应提升,因此,需要考虑并行实现方案。

1.2 延迟叠加算法的并行实现

  如图1所示,串行延迟叠加算法的核心代码中,核心操作是对延迟后输入数据的叠加。针对于最终生成图像中的一个特定像素点(i, j),存在PA次输入数据信号的叠加,叠加的公式如下:

(4)

  其中,i、j和k分别是LC、RC和PA的累加变量,而d是延迟量的数值,可以通过特定i、j和k变量的相关计算得到。当变量i为一个特定值ifixed时,最终图像中第ifixed列上像素点的亮度值可以通过如下公式计算:

(5)

  通过对延迟叠加算法进行分析,得出计算不同图像线上的image(ifixed, j)时并不存在相互间的数据依赖。因此,延迟叠加算法的计算过程可以并行化实现。

2 SuperVessel云平台上的算法实现

  本文使用SuperVessel云平台实现的并行延迟叠加算法需要满足以下计算需求:1、在一个时钟周期内计算特定像素点image(i, j)的值;2、实现足够精确的浮点数计算;3、FPGA上全流水线化计算。

  本文使用CAPI FPGA实现并行延迟叠加算法的设计框图如图2所示。该设计包含五个主要部分:输入数据分离器、RowsCount循环生成器、延迟信号选择器、叠加器和数据输出控制器。以下是这五个部分设计原理和实现模式的详细描述:

  输入数据分离器: CAPI传输总线的带宽是256位,而每一个延迟信号选择器仅需要32位的带宽,以供传输标准的单精度浮点数。由图2可以看出该设计中包含64个延迟信号选择器,因此,需要将CAPI总线的256位输入数据分离,并且规划好输入数据读取的顺序。输入数据读取过程的规划如下:

  第一步:在T时钟周期内,第0个至第7个延迟信号选择器读取一个CAPI输入信号数据;在(T+1)时钟周期内,第8个至第15个延迟信号选择器读取下一个CAPI输入信号数据;以此类推,直到在(T+7)时钟周期内,第56个至第63个延迟信号选择器读取下一个CAPI输入信号数据。

  第二步:重复第一步所描述的步骤,直到生成一幅图像中某一列像素点所需要的所有输入信号数据读取完毕。

  第三步:当图像中某一列的所有像素点数值均计算完成,则回到第一步读取生成图像中下一列像素点所需要的输入信号数据过程。

  RowsCount循环生成器:当图像中某一列像素点计算所需要的所有输入信号数据读取完毕时,循环生成器将开始生成RC循环变量j的值。变量j的初始值为0,在每一个时钟周期内自增1,直到最大值1023。

  延迟信号选择器:延迟信号选择器将计算对应像素点不同数据通道上的延迟量,并选择对应的输入信号数据。实现部分包含了一个延迟量计算器和一个BRAM存储器,BRAM存储器用于存储某个数据输入接收通道,接收通道接收到的输入信号数据。

  叠加器:在并行延迟叠加算法的CAPI FPGA设计中共有64个延迟信号选择器,而这64个延迟信号选择器的输出值之和,即为image(i, j)的最终结果。计算两个延迟信号选择器输出值之和需要一个加法器,对应地,计算64个延迟信号选择器输出值之和需要63个加法器。为了使加法器设计流水线化,叠加器模块将加法器分为6个阶段层次,每层分别使用32、16、8、4、2、1个加法器。

  输出数据控制器:由于CAPI总线提供的带宽是256位,而本文所描述的设计每一个时钟周期内输出数据是一个32位的浮点数。因此,输出的数据可以先存放于FPGA中,每8个时钟周期通过CAPI总线接口向CPU输出一次数据。

  除了上述的五个主要实现模块外,本设计方案中也使用了下面两个设计模块:

  浮点数计算单元:本设计使用了Xilinx Vivado软件中提供的浮点数IP核作为浮点数计算单元模块。该类IP核遵循了IEEE-754的标准,因此,本文设计中的浮点数计算结果相较于CPU实现的浮点数计算结果而言,误差很小。另一方面,该类IP核是全流水线化的,这也进一步提升了设计的吞吐量。

  状态控制器:在图像像素点数值计算的过程中有两个状态阶段:第一个阶段是输入信号数据的读取过程,第二个阶段是延迟量的计算和延迟后输入信号数据的叠加过程。状态控制器包含一个状态标记变量,以指示当前计算的状态阶段。当第一阶段的输入信号数据读取过程结束时,BRAM的写入地址waddr的值将为2047。因此,可定义waddr==2047为第二阶段开始的标记信号。当第二阶段结束时,将waddr的值设为0,则将触发第一阶段重新开始,进行下一轮计算。此外,当图像中所有的像素点计算完成时,输出图像的像素点数目为65536 。所以,可定义该数值为图像计算完成的标志变量,标志着算法计算结束。

3 实验和评测结果讨论

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

  在SuperVessel平台上使用CAPI FPGA加速器来加速算法应用,需要执行以下步骤:

  1、使用Xilinx Vivado软件设计FPGA加速器核心模块;

  2、在本地的x86机器上集成FPGA加速器核心模块和CAPI仿真框架进行仿真验证;

  3、在本地机器上编译FPGA加速器核心模块和CAPI加速框架构成的加速器包,并生成对应的bitstream文件;

  4、将加速器bitstream文件上传到SuperVessel云平台上;

  5、在SuperVessel云平台上申请虚拟机资源,并关联对应的加速器bitstream文件,然后启动虚拟机运行加速器。

  另外需要注意以下两点:

  VPN网络:SuperVessel云平台上申请的虚拟机资源没有对应的可直接访问的公网IP,需要使用对应的VPN网络。使用的VPN网络在Windows、Linux、MacOS等主流操作系统中均有对应的软件支持。

  内存占用:编译步骤3中所述的加速器包时需要大量本地机器内存,尤其在综合和布线的阶段;而且CAPI FPGA加速器设计越复杂,本地机器内存占用量就越大。在本文的实验评测中观察到,编译阶段的内存占用量最高达到了14GB。内存不足将导致编译失败,因此需要根据CAPI FPGA设计的大小配置足够的内存资源。

3.2 仿真数据生成

  本文的实验过程中为了测试使用CAPI FPGA并行加速的延迟叠加算法,使用Field II医学超声信号模拟器[5]仿真了医学超声回波输入数据。本文的医学超声图像回波输入数据仿真了128个阵元的超声探头,探头间距为0.3048mm,采用5 kHz的脉冲发射频率和40 MHz的回波接收采样频率。此外,超声图像的成像场景仿真了线形点阵列作为成像对象的散射源。

3.3 实验结果讨论

  在实验中,通过网络将10份医学超声图像的输入信号数据载入SuperVessel云平台,其中每份图像的输入信号数据对应于一张超声图像。在云平台上通过CAPI加速架构提供的API,调用FPGA加速器,将数据从云平台上CPU对应的DDR内存中传输到FPGA中的BRAM里;完成图像像素点数值计算后再将数据传回DDR内存。实测从数据传输开始到数据传输结束的时间,得到并行延迟叠加算法云计算应用运行的总时间。并行延迟叠加算法在FPGA上的计算时间通过统计算法执行的时钟周期来确定,因此,还可推算出数据传输所消耗的时间。通过多次实验求得各项时间参数的平均值,如表1所示。

  与此同时,使用SuperVessel云平台上CPU计算获得同样的10张医学超声图像,其每张图像计算的平均耗时为246 ms。由此计算可得,本文设计的CAPI FPGA并行延迟叠加算法实现的加速比达到了约22倍。此外,通过实验推导出该设计的TC数值为秒,满足1.1小节提出的实时成像要求。

4 结论和展望

  本文描述了在SuperVessel云平台上,设计和评测基于CAPI FPGA加速器技术的并行延迟叠加算法。实验评测结果表明,SuperVessel云平台上基于CAPI FPGA加速器的并行延迟叠加算法的运行速度相较于使用CPU计算的延迟叠加算法的运行速度提高了约22倍,该速度可以满足医学成像云计算服务的需求。

  目前,本文设计中的超声回波信号接收通道数为64。通道数越大时,得到的图像越清晰,所以我们使用同样的方案设计了96通道和128通道的成像方案,但由于资源限制的原因未能成功运行。我们将继续优化当前的设计,降低资源占用并采用多片FPGA设计方案,进一步提高通道数量和数据处理能力。

  另外,SuperVessel云平台提供的CAPI加速技术可以应用于其他计算密集型算法加速,尤其是输入输出数据量小,而时间复杂度高的算法。我们将进一步把其他医学超声成像算法设计到SuperVessel云平台上实现。

参考文献:

  [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.

本文来源于中国科技期刊《电子产品世界》2016年第9期第41页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭