《基于OPENCLTOFPGA的CT图像重建反投影加速方法.pdf》由会员分享,可在线阅读,更多相关《基于OPENCLTOFPGA的CT图像重建反投影加速方法.pdf(8页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104142845A43申请公布日20141112CN104142845A21申请号201410347123222申请日20140721G06F9/45200601G06T5/50200601G06T3/40200601A61B6/0320060171申请人中国人民解放军信息工程大学地址450052河南省郑州市高新区科学大道62号解放军信息工程大学72发明人李磊张瀚铭蔡爱龙闫镔李汉宁席晓琦王林元王彪74专利代理机构郑州大通专利商标代理有限公司41111代理人陈大通54发明名称基于OPENCLTOFPGA的CT图像重建反投影加速方法57摘要本发明公开了一种基于OPENCLTOF。
2、PGA的CT图像重建反投影加速方法,主要利用FPGA实现了CT图像重建反投影步骤的加速,具体为在OPENCL编程模型中,构建CPU和FPGA协作的CPUFPGA异构计算模式,CPU和FPGA间通过PCIE总线进行通信,CPU作为主机端,负责算法中的串行任务以及对FPGA的配置与控制任务;FPGA作为协处理器端,通过加载OPENCL内核程序以实现对反投影计算的并行流水加速。在编程模式中,FPGA执行程序全部采用类C/C风格的OPENCL语言开发,开发简便,修改灵活,能大大缩短研发周期,减少产品维护和升级的研发成本;另一方面,新方法基于OPENCL框架,代码可以实现跨平台快速移植,适合扩展和应用于。
3、多处理器异构平台的协同加速之中。51INTCL权利要求书1页说明书4页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图2页10申请公布号CN104142845ACN104142845A1/1页21基于OPENCLTOFPGA的CT图像重建过程中反投影加速方法,其特征在于包括如下步骤步骤A在OPENCL编程框架下,构建CPU和FPGA协作的CPUFPGA异构平台模型;步骤BCPU主机端构建OPENCL主机程序,并执行投影数据预处理操作;步骤C处理后的投影数据通过PCIE总线传输至FPGA协处理器,并存储至全局存储器中;步骤DCPU主机端对FPGA的内核进行配置。
4、,FPGA作为协处理器端,通过加载OPENCL内核程序以实现对反投影计算的并行流水加速;步骤E反投影后的重建数据通过PCIE总线传输至CPU主机端。2根据权利要求1所述的基于OPENCLTOFPGA的CT图像重建过程中反投影加速方法,其特征在于步骤D中FPGA作为协处理器端,实现对反投影计算的并行流水加速的具体步骤为步骤D1根据反投影算子的算法思想和OPENCL编程框架模型设计相应的OPENCL设备核程序(CL程序);步骤D2利用ALTERAALTERASDKFOROPENCL(AOCL)工具对核程序进行编译,生成相应的FPGA工程;步骤D3利用QUARTUS工具对生成的FPGA工程编译,生成。
5、FPGA配置文件;步骤D4CPU主机端设计并编写相应的主机程序,设计数据传输流程和FPGA设备的控制流程;步骤D5将FPGA配置文件下载到对应的FPGA协处理器设备中,同时主机端协同执行主机程序。3根据权利要求1所述的基于OPENCLTOFPGA的CT图像重建过程中反投影加速方法,其特征在于步骤D中采用了分区访问的全局存储器访问优化方法,将全局存储器分割为多块BANK,不同角度的投影数据分配到不同的BANK上。权利要求书CN104142845A1/4页3基于OPENCLTOFPGA的CT图像重建反投影加速方法技术领域0001本发明涉及一种CT图像重建的方法,特别是涉及一种基于OPENCLTOF。
6、PGA的CT图像重建过程中反投影加速方法。背景技术0002计算机断层成像(COMPUTEDTOMOGRAPHY,CT)以其无损、精确、三维可视化等优点在工业无损检测和医疗诊断领域获得了广泛的应用。然而CT设备在提高成像质量和重建分辨率的同时,相应需求的计算资源和存储资源都非常大,重建速度已成为CT技术走向实用的一个瓶颈,如何对CT重建过程加速是目前该领域研究的一个难点问题。0003目前,实际CT系统中应用的主流算法主要集中于以滤波反投影为基础的解析类重建算法上,如FBP、FDK等算法。在这类算法中,反投影过程所占计算消耗的比例最高,对反投影计算的加速是实际应用中重建加速的关键点。0004随着现。
7、代电子技术的高速发展,处理器的运算速度越来越快,因此近年来对CT重建加速的研究主要集中于基于GPU、FPGA等硬件加速方法上。FPGA拥有丰富的逻辑资源、算法模块和嵌入式硬核模块,以全数据流的形式进行处理,使用硬件以空间上全面积并行的方法提升算法速度,适合用来进行图像重建,利用FPGA实现对CT重建的反投影过程进行加速是该领域的重要研究方向。0005经过现有技术的文献检索发现,利用FPGA加速CT重建反投影的文章采取的实现方式存在开发周期长、难以跨平台快速移植、不适于多处理器异构平台协同加速等不足。2008年,MARKUSKOWARSCHIK等在PROCEEDINGSOFTHE9THINTER。
8、NATIONALMEETINGONFULLYTHREEDIMENSIONALIMAGERECONSTRUCTIONINRADIOLOGYANDNUCLEARMEDICINE上发表文章HIGHSPEEDRECONSTRUCTIONFORCARMCOMPUTEDTOMOGRAPHY,用9块FPGA协调工作完成了CT重建中三维反投影部分的加速,但他采用的开发方式是基于传统的VHDL/VERILOG硬件编程语言,开发复杂度大,研发周期长,且研发程序只能在FPGA上使用,无法移植到其它处理器上。00062009年,XU在其学位论文ANFPGAHARDWARESOLUTIONFORACCELERATING。
9、TOMOGRAPHICRECONSTRUCTION中提出采用IMPULSEC语言在FPGA上实现了CT重建的FBP算法,对FBP算法中的二维反投影过程进行了FPGA加速,IMPULSEC语言采用类C的编程模式,研发速度和修改灵活性强于传统的开发方式,但IMPULSEC仅仅是面向FPGA编程研发,依旧存在移植困难,不适于多处理器异构平台协同加速等缺点。0007OPENCL编程框架简介OPENCL全称为OPENCOMPUTINGLANGUAGE,即开放式计算语言,最早于2008年由APPLE公司提出,是一个开放的免版税标准。OPENCL可以实现混合处理器的并行计算,它所支持的异构处理器包括CPU、。
10、GPU、DSP、CELL/BEPROCESSOR等,可以实现可移植的并行加速代码,它为通用计算领域提供了一个跨平台的统一标准语言。2011年,ALTERA公司发布了FPGA的OPENCL标准开发计划,并于2013年推出了其基于OPENCL框架的FPGA产品,将跨平台并行编程标准OPENCL扩展到了FPGA。说明书CN104142845A2/4页4发明内容0008本发明的发明目的是提供一种基于OPENCLTOFPGA的CT图像重建过程中反投影加速方法。0009本发明的技术方案是基于OPENCLTOFPGA的CT图像重建过程中反投影加速方法,包括如下步骤步骤A在OPENCL编程框架下,构建CPU和。
11、FPGA协作的CPUFPGA异构平台模型;步骤BCPU主机端构建OPENCL主机程序,并执行投影数据预处理操作;步骤C处理后的投影数据通过PCIE总线传输至FPGA协处理器,并存储至全局存储器中;步骤DCPU主机端对FPGA的内核进行配置,FPGA作为协处理器端,通过加载OPENCL内核程序以实现对反投影计算的并行流水加速;步骤E反投影后的重建数据通过PCIE总线传输至CPU主机端。0010进一步地,步骤D中FPGA作为协处理器端,实现对反投影计算进的并行流水加速的具体步骤为步骤D1根据反投影算子的算法思想和OPENCL编程框架模型设计相应的OPENCL设备核程序(CL程序);步骤D2利用AL。
12、TERAALTERASDKFOROPENCL(AOCL)工具对核程序进行编译,生成相应的FPGA工程;步骤D3利用QUARTUS工具对生成的FPGA工程编译,生成FPGA配置文件;步骤D4CPU主机端设计并编写相应的主机程序,设计数据传输流程和FPGA设备的控制流程;步骤D5将FPGA配置文件下载到对应的FPGA协处理器设备中,同时主机端协同执行主机程序。0011进一步地,步骤D中采用了分区访问的全局存储器访问优化方法,将全局存储器分割为多块BANK,不同角度的投影数据分配到不同的BANK上。0012本发明的有益效果是本发明在编程模式中,FPGA执行程序全部采用类C/C风格的OPENCL语言开。
13、发,较传统的VERILOG或VHDL等底层硬件描述语言,本方法开发简便,修改灵活,能大大缩短研发周期,减少产品维护和升级的研发成本;另一方面,新方法基于OPENCL框架,代码可以实现跨平台快速移植,适合扩展和应用于多处理器异构平台的协同加速之中。附图说明0013下面结合附图对本发明的具体实施方式作进一步的详细说明图1为本发明的异构平台模型整体框架;图2为本发明中反投影算子加速流程图;图3为本发明中加速反投影重建结果图。具体实施方式说明书CN104142845A3/4页50014本方法构建的异构平台模型如图1所示,其中CPU为主机端,通过PCIE总线和一个或多个协处理器设备(FPGA板卡)连接。。
14、根据CT图像重建算法的任务分配,编程模型可以分为两部分,一部分是在CPU上执行的主程序,另一部分是在FPGA上执行的核函数。每个协处理器设备由多个处理单元组成,各种计算操作都是在处理单元中完成的,协处理器设备上的存储单元分为3种,分别为全局存储器、常数存储器和局部存储器。主机端管理着整个平台上的所有计算资源,主程序通过定义上下文并管理内核程序在FPGA上的执行,应用程序会从主机端向各个协处理器设备的处理单元发送计算命令,在一个计算单元内的所有处理单元会执行完全相同的一套指令流程。0015整个平台对于CT图像重建算法的执行过程如下(1)CPU主机端执行投影数据预处理操作;(2)处理后的投影数据通。
15、过PCIE总线传输至FPGA协处理器,并存储至全局存储器中;(3)CPU主机端对FPGA的内核进行配置,FPGA协处理器端通过多处理单元并行流水执行反投影计算;(4)反投影后的重建数据通过PCIE总线传输至CPU主机端。0016对CPU主机端的编程采用标准C/C语言,对FPGA协处理器的编程采用基于OPENCL规范的描述语言。OPENCL标准规范的编程语言的抽象等级远高于VHDL和VERILOG等硬件描述语言。传统的编程方式需要对FPGA底层硬件单元按照时序周期进行编程描述,对于复杂的算法执行,需要设计状态机控制数据通路,同时需要处理各级接口约束和时序同步问题,编程难度大、耗时长,且程序维护和。
16、升级复杂,非常不利于实际产品的快速应用。而采用OPENCL编程方式,无需关注底层时序级的硬件设计,可根据反投影算法设计高级语言描述的类C代码,OPENCL编译器则可自动实现由OPENCL代码转化为硬件描述语言和执行程序的步骤。0017对于CT重建的反投影算法并行加速实现,采用OPENCLTOFPGA方式的开发流程如图2所示,具体描述如下(1)根据反投影算子的算法思想和OPENCL编程框架模型设计相应的OPENCL设备核程序(CL程序);(2)利用ALTERAALTERASDKFOROPENCL(AOCL)工具对核程序进行编译,生成相应的FPGA工程;(3)利用QUARTUS工具对生成的FPGA。
17、工程编译,生成FPGA配置文件;(4)CPU主机端设计并编写相应的主机程序,设计数据传输流程和FPGA设备的控制流程;(5)将FPGA配置文件下载到对应的FPGA协处理器设备中,同时主机端协同执行主机程序。0018在反投影算子的OPENCL核函数设计中,采用2维线程进行并行设计。反投影过程采用体素驱动,各体素点间的计算是无关的,因此线程也按照体素点进行并行分配。同时,考虑Z方向的相关性,为了减少重复计算量,Z方向索引单独分配一个线程维度;而XY面内的索引分配另一个线程维度。0019为了实现加速性能的最优,综合考虑FPGA的硬件特点和反投影算子的计算流程,本设计主要采用了以下优化技术(1)基于分。
18、区访问的全局存储器访问优化将全局存储器分割为多块BANK,不同角度的投影数据分配到不同的BANK上,以实现负载的访问平衡,从而提升全局存储器的访问带宽(2)利用常数存储器存储运算过程中需要多次重复计算的中间变量,节省计算资源;(3)优化内核函数中一次反投影的张数,提升对投影数据存储的访问带宽,同时减少对重建数据存储的访问,通过调整以达到对全局存储器访问的最优。0020采用本方法在实际硬件设备上进行实现,使用的CPU为INTELI73770CPU340GHZ,使用的FPGA协处理器设备为ALTERA公司的DE4230开发板,OPENCL编译工具为说明书CN104142845A4/4页6ALTER。
19、ABETAOPENCLDEVELOPMENTKIT(ACL)V09版,FPGA编译工具为QUARTUS120。受DE4230板卡外部存储器的带宽限制,对实际性能评测,优化3中核函数中一次反投影的张数定为2时最佳。重建体模采用标准SHEEPLOGAN体模,CT图像重建结果如图3所示,在DE4230上执行反投影加速的测试结果如下表所示投影规模重建规模DE4230执行时间1822360128333136423602563235728236051231912上面结合附图对本发明优选的具体实施方式和实施例作了详细说明,但是本发明并不限于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可以在不脱离本发明构思的前提下作出各种变化。说明书CN104142845A1/2页7图1图2说明书附图CN104142845A2/2页8图3说明书附图CN104142845A。