CN106778015A - 一种基于云平台中fpga异构加速基因计算方法 - Google Patents
一种基于云平台中fpga异构加速基因计算方法 Download PDFInfo
- Publication number
- CN106778015A CN106778015A CN201611248027.8A CN201611248027A CN106778015A CN 106778015 A CN106778015 A CN 106778015A CN 201611248027 A CN201611248027 A CN 201611248027A CN 106778015 A CN106778015 A CN 106778015A
- Authority
- CN
- China
- Prior art keywords
- fpga
- hardware
- accelerated
- cloud platform
- gene
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
Abstract
本发明公开一种基于云平台中FPGA异构加速基因计算方法,通过算法分析,将基因计算区分为用计算机处理器计算慢部分和计算机处理器计算快部分,计算慢部分采用硬件加速,计算快部分采用软件加速,软件加速部分通过云平台实现,硬件加速部分下载到云平台提供的FPGA来实现,最后综合异构加速结果,实现加速。本发明采用通用计算平台和FPGA共同使用的异构计算,相比单一处理单元,FPGA能够通过改变硬件连接关系来达到硬件结构与计算的最优结合,速度更快;相比只使用FPGA的计算而言,异构计算使两种结构的处理单元都能发挥各自的长处,比单一种类处理单元效果更好,在通信接口方面进行加强后增加一次传输的数据量,减少传输次数,更能提高整体的加速效果。
Description
技术领域
本发明涉及生物信息计算领域,尤其涉及一种基于云平台中FPGA异构加速基因计算方法。
背景技术
在异构计算系统上进行的并行计算通常称为异构计算。异构计算的应用范围很广,几乎所有涉及巨大挑战性问题的求解都可用异构计算进行经济有效的求解。典型的应用包括图像理解、质点示踪、声束形成、气候建模、湍流对流混合模拟以及多媒体查询等。这些应用中通常都含有多种不同的计算类型的需求,因此很适合于用异构计算来进行求解。
生物信息的快速增长与数据产出成本的不断下降,必然带来更多的数据处理需求。精准医疗、人工智能、基因测序,包括产前筛查、新生儿、遗传病,以及癌症相关的诊断和用药指导,这些前沿产业的背后都需要数据处理能力的支撑。
生物数据分析流程比较复杂,涉及不同的语言和工具,数据量和计算量都很大,因此针对基因计算的异构计算将会成为基因计算发展的新方向。
中国专利申请CN106020425A公开了一种FPGA异构加速计算系统,该系统包括CPU及与所述CPU连接的FPGA异构加速卡;所述CPU,用于发送源操作数及控制信息至所述FPGA异构加速卡,以及用于读取所述FPGA异构加速卡加速计算后得到的结果数据;所述FPGA异构加速卡,用于利用所述控制信息对所述源操作数进行相应的加速计算,得到所述结果数据。实现了CPU+FPGA的异构加速计算方案,即,由CPU将控制信息及源操作数发送至FPGA异构加速卡,由FPGA异构加速卡实现对源操作数的计算,并得到结果数据,降低系统功耗,提高系统能效。但是单纯将FPGA异构加速计算系统应用于基因计算,无法满足应用程序特征多样性的需求。单纯基于FPGA异构加速系统,普遍采用主控处理器和FPGA功能固定的计算,特别是FPGA里的硬件加速程序,因此任务分配极不灵活,不能随着基因计算程序的不同自动进行软件和硬件划分,对于计算效率大打折扣。
发明内容
本发明的目的是提供一种适应生物信息学的特点、计算效率高的一种基于云平台中FPGA异构加速基因计算方法。
本发明为了实现上述目的采用以下技术方案:
一种基于云平台中FPGA异构加速基因计算方法,包括以下步骤:
步骤S1,算法分析,将基因计算区分为用计算机处理器计算慢部分和计算机处理器计算快部分。
步骤S2,根据步骤S1中算法分析结果,计算机处理器计算慢部分采用硬件加速,计算机处理器计算快部分采用软件加速,进行软硬件界面划分。
步骤S3,根据步骤S2中分工,软件加速部分通过云平台实现,硬件加速部分下载到云平台提供的FPGA来实现。
步骤S4,综合异构加速结果。
所述步骤S2中软件加速部分编写C语言软件,硬件加速部分编写Verilog语言硬件程序。
所述步骤S3中,将软件加速部分和硬件加速部分分别优化编译成软件可执行程序和硬件FPGA可下载比特流文件,分别上传云平台的主控制器和FPGA加速单元中进行运算。
所述步骤S3中,云服务器和云端提供的FPGA之间使用CAPI接口进行两边的通信。
所述步骤S4中,在 本地客户端查看运算结果等返回值。
本发明的有益效果是本发明通过公共云平台进行基因大数据的采集,并用更高效的接口来提高云服务器与FPGA之间的数据传输,多个FPGA之间可以采用分步式计算进行进一步加速。通用计算平台和FPGA共同使用的异构计算,相比以往的单一处理单元,FPGA能够通过改变硬件连接关系来达到硬件结构与计算的最优结合,速度更快;相比只使用FPGA的计算而言,异构计算使两种结构的处理单元都能发挥各自的长处,比单一种类处理单元效果更好,在通信接口方面进行加强后增加一次传输的数据量,减少传输次数,更能提高整体的加速效果。
附图说明
图1为本发明的总体流程图。
图2为基因的双序列比对算法Smith-Waterman的实现流程图。
具体实施方式
如图1所示,本发明一种基于云平台中FPGA异构加速基因计算方法,主要包括以下步骤:
步骤S1,算法分析,将基因计算区分为用计算机处理器计算慢部分和计算机处理器计算快部分。
步骤S2,根据步骤S1中算法分析结果,计算机处理器计算慢的部分采用硬件加速,计算机处理器计算快的部分采用软件加速。
步骤S3,根据步骤S2中分工,软件加速部分通过云平台实现,硬件加速部分下载到云平台提供的FPGA来实现。
步骤S4,综合异构加速结果。
本实施中以基因的双序列比对算法Smith-Waterman为例对本发明做详细说明。本实施例中使用IBM提供的SuperVessel云平台(超能云)和CAPI(Coherent AcceleratorProcessor Interface)接口进行加速。基因的双序列比对算法Smith-Waterman的实现流程如图2所示,为本地主机编写合适的C程序和硬件,C程序编译后得到的可执行文件发送至云服务器;硬件Verilog代码传至云端提供的FPGA;云服务器和云端提供的FPGA之间使用CAPI接口进行两边的通信,最后对经过软件和硬件计算后得到的最终结果进行综合。
对基因的双序列比对算法Smith-Waterman进行分析,该算法主要分为两个步骤:(1)计算相似性矩阵并存储计算路径;(2)利用相似性矩阵进行回溯得到最优的比对结果。由于第一个步骤在用软件方法进行加速比对时最高可占整个事件的98.6%,所以重点应加速第一个步骤。
替换矩阵中的值 为子序列S[1]……S[i]和T[1]……T[j]比对的分值,计算公式为
其中 , 表示当前对比的数值是否匹配:如果匹配,该参数为2;如果不匹配,该参数为-1。
由计算公式可得,(1)该计算过程中最常见运算为对比及加减法;(2) 与 、、 及 有关。
硬件实现中,每对数值用一个处理单元模块(PE模块)来实现对比。由于数值需要两两对比,如果采用传统比较方法等待一方传送完成后再比较会使PE模块处于空闲时间占据大部分比对总时间的情况,PE模块利用率极低。所以采用S串数值在PE模块序列中依次更新,T串元素在PE模块阵列中流过的方法,这样可以极大地提高对比过程中PE模块的利用率。计算公式指出, 是非负整数,通过减法后比较来确定其最终的值。在硬件实现中,根据将 、 与整数2比较后的结果来决定最后和 比较的值。
基于上述比较方式,计算替换矩阵时以反对角线为计算路径,则每个单元的都要依赖于它之前两个PE模块的计算结果,FPGA中开发板中寄存器资源丰富,实现这一参数传递变得非常容易。
由于参与对比的基因序列过长,硬件资源有限,所以将基因序列分段传入进行计算,充分的寄存器资源将序列段之间的计算过程用流水线的方法进行了加速。同时还可以利用多块FPGA开发板将同反对角线上的数据分配到不同板上进行并行计算。以例化了256个PE模块的硬件电路为例,假设利用6块FPGA开发板,则可以对每条反对角线上的元素序号进行模6运算,将结果相同的元素放在同一块FPGA开发板内进行计算。
已经得到的计算结果在剩余比对过程中都按照阵列顺序存放在外部存储器DDR2SDRAM中,方便之后的运算随时取用。根据DDR2 SDRAM的有效带宽计算可得,访存时间和比对实现能够实现很好的匹配。全部运算结束后,可用C程序将 SDRAM中存储的结果写回到主机中,极大地节省了传输时间。
综上,加速基因序列匹配过程可以用FPGA开发板来实现,具体实现步骤如下:
先使用给定IBM的SDK开发需要的加速器,将编译后得到的bin文件以zip格式压缩,在FPGA Maker Zone的Upload Accelerator界面中上传该zip压缩包。点击 My AcceleratorList,进入上传的加速器的处理流程,等待所有步骤通过。所有步骤通过后加速器就部署到了云端,就可在超能云中使用这个加速器了。同时,使用该SDK编写传递序列对应的C程序。申请虚拟机,C程序编译完成后将可执行文件也传入到虚拟机中,在虚拟机上运行,读取本地给出的基因序列文件,放入加速器中进行运算。
本发明基于FPGA的动态可重构算法加速器与通用处理器的相结合,可以适应应用程序特征的多样性,同时保持系统软件的兼容性,为基因计算提供有力的支持。
Claims (3)
1.一种基于云平台中FPGA异构加速基因计算方法,其特征是包括以下步骤:
步骤S1,算法分析,将基因计算区分为用计算机处理器计算慢部分和计算机处理器计算快部分;
步骤S2,根据步骤S1中算法分析结果,计算机处理器计算慢部分采用硬件加速,计算机处理器计算快部分采用软件加速,进行软硬件界面划分;
步骤S3,根据步骤S2中分工,软件加速部分通过云平台实现,硬件加速部分下载到云平台提供的FPGA来实现;
步骤S4,综合异构加速结果;
其中,
所述步骤S2中软件加速部分编写C语言软件,硬件加速部分编写Verilog语言硬件程序;
所述步骤S3中,将软件加速部分和硬件加速部分分别优化编译成软件可执行程序和硬件FPGA可下载比特流文件,分别上传云平台的主控制器和FPGA加速单元中进行运算;云服务器和云端提供的FPGA之间使用CAPI接口进行两边的通信。
2.根据权利要求1所述的一种基于云平台中FPGA异构加速基因计算方法,其特征是所述步骤S4中,在本地客户端查看运算结果等返回值。
3.根据权利要求1或2所述的一种基于云平台中FPGA异构加速基因计算方法,其特征是所述步骤S3中,使用给定IBM的SDK开发需要的加速器,将编译后得到的bin文件以zip格式压缩生成zip压缩包,在FPGA Maker Zone的Upload Accelerator界面中上传该zip压缩包;点击 My Accelerator List,进入上传的加速器的处理流程,等待所有步骤通过;所有步骤通过后加速器部署到云端,同时,使用该SDK编写传递序列对应的C程序;申请虚拟机,C程序编译完成后将可执行文件传入到虚拟机中,在虚拟机上运行,读取本地给出的基因序列文件,放入加速器中进行运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611248027.8A CN106778015A (zh) | 2016-12-29 | 2016-12-29 | 一种基于云平台中fpga异构加速基因计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611248027.8A CN106778015A (zh) | 2016-12-29 | 2016-12-29 | 一种基于云平台中fpga异构加速基因计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106778015A true CN106778015A (zh) | 2017-05-31 |
Family
ID=58927859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611248027.8A Pending CN106778015A (zh) | 2016-12-29 | 2016-12-29 | 一种基于云平台中fpga异构加速基因计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106778015A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704268A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | Md5哈希函数计算方法、系统及计算机可读存储介质 |
CN108616535A (zh) * | 2018-04-28 | 2018-10-02 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga多协议安全认证网络交换加速系统及方法 |
CN109284250A (zh) * | 2017-09-11 | 2019-01-29 | 南京弹跳力信息技术有限公司 | 一种基于大规模fpga芯片的计算加速系统及其加速方法 |
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN110175107A (zh) * | 2019-05-13 | 2019-08-27 | 华中科技大学 | 一种fpga云服务器性能的测试方法及测试系统 |
CN110797088A (zh) * | 2019-10-17 | 2020-02-14 | 南京医基云医疗数据研究院有限公司 | 全基因组重测序分析及用于全基因组重测序分析的方法 |
WO2021143135A1 (zh) * | 2020-01-13 | 2021-07-22 | 苏州浪潮智能科技有限公司 | 一种基于fpga云平台的远端数据搬移装置和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541242A (zh) * | 2012-09-28 | 2015-04-22 | 英特尔公司 | 代码执行的灵活加速 |
CN106020425A (zh) * | 2016-05-27 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种fpga异构加速计算系统 |
CN106250349A (zh) * | 2016-08-08 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种高能效异构计算系统 |
-
2016
- 2016-12-29 CN CN201611248027.8A patent/CN106778015A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541242A (zh) * | 2012-09-28 | 2015-04-22 | 英特尔公司 | 代码执行的灵活加速 |
CN106020425A (zh) * | 2016-05-27 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种fpga异构加速计算系统 |
CN106250349A (zh) * | 2016-08-08 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种高能效异构计算系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN109426529B (zh) * | 2017-08-16 | 2023-03-21 | 龙芯中科技术股份有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN109284250A (zh) * | 2017-09-11 | 2019-01-29 | 南京弹跳力信息技术有限公司 | 一种基于大规模fpga芯片的计算加速系统及其加速方法 |
CN107704268A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | Md5哈希函数计算方法、系统及计算机可读存储介质 |
CN108616535A (zh) * | 2018-04-28 | 2018-10-02 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga多协议安全认证网络交换加速系统及方法 |
CN110175107A (zh) * | 2019-05-13 | 2019-08-27 | 华中科技大学 | 一种fpga云服务器性能的测试方法及测试系统 |
CN110175107B (zh) * | 2019-05-13 | 2020-07-28 | 华中科技大学 | 一种fpga云服务器性能的测试方法及测试系统 |
CN110797088A (zh) * | 2019-10-17 | 2020-02-14 | 南京医基云医疗数据研究院有限公司 | 全基因组重测序分析及用于全基因组重测序分析的方法 |
WO2021143135A1 (zh) * | 2020-01-13 | 2021-07-22 | 苏州浪潮智能科技有限公司 | 一种基于fpga云平台的远端数据搬移装置和方法 |
US11868297B2 (en) | 2020-01-13 | 2024-01-09 | Inspur Suzhou Intelligent Technology Co., Ltd. | Far-end data migration device and method based on FPGA cloud platform |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778015A (zh) | 一种基于云平台中fpga异构加速基因计算方法 | |
US11720357B2 (en) | Computing device and method | |
US9529590B2 (en) | Processor for large graph algorithm computations and matrix operations | |
US8131659B2 (en) | Field-programmable gate array based accelerator system | |
Imani et al. | Sparsehd: Algorithm-hardware co-optimization for efficient high-dimensional computing | |
US20210295168A1 (en) | Gradient compression for distributed training | |
Wirawan et al. | CBESW: sequence alignment on the playstation 3 | |
CN113469355B (zh) | 分布式系统中的多模型训练管道 | |
Hong et al. | DFX: A low-latency multi-FPGA appliance for accelerating transformer-based text generation | |
US20210304008A1 (en) | Speculative training using partial gradients update | |
Gupta et al. | Thrifty: Training with hyperdimensional computing across flash hierarchy | |
Li et al. | Classification and disease probability prediction via machine learning programming based on multi-GPU cluster MapReduce system | |
Lan et al. | Accelerating large-scale biological database search on Xeon Phi-based neo-heterogeneous architectures | |
Peres et al. | Faster convolutional neural networks in low density fpgas using block pruning | |
Gupta et al. | Store-n-learn: Classification and clustering with hyperdimensional computing across flash hierarchy | |
Gonçalves et al. | Exploring data size to run convolutional neural networks in low density fpgas | |
WO2023056370A1 (en) | Mixing sparsity compression | |
Le et al. | An OpenCL-based SIFT accelerator for image features extraction on FPGA in mobile edge computing environment | |
CN113077843A (zh) | 分布式列子集选择方法、系统及白血病基因信息挖掘方法 | |
Wertenbroek et al. | k-mer counting with FPGAs and HMC in-memory operations | |
Bassoy et al. | Accelerating scalar-product based sequence alignment using graphics processor units | |
US20240160906A1 (en) | Collective communication phases at mixture-of-experts layer | |
US20240160894A1 (en) | Mixture-of-experts layer with switchable parallel modes | |
US20240111528A1 (en) | Programmable compute engine having transpose operations | |
US20240103813A1 (en) | Compute engine with transpose circuitry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |