基于FPGA的面向基因测序串匹配算法的加速平台及设计方法技术

技术编号:19058131 阅读:286 留言:0更新日期:2018-09-29 12:25
本发明专利技术公开了基于FPGA的面向基因测序串匹配算法加速平台及设计方法,加速平台包括PS(Program System)与PL(Program Logic)两部分,PS端包含通用处理器以及DRAM以完成软件端代码的运行以及硬件部分的控制,PL端包含多个可根据需求固化的IP核来以实现相应任务,首先通用处理器将字符串数据写入DRAM中,然后FPGA从DRAM中读取字符串数据并开始计算,并把计算结果写入到DRAM中,最后通用处理器从DRAM中读取匹配结果。本发明专利技术加速器在FPGA上部署了多个用于计算的独立IP核,以流水线方式运行,使得不具备硬件知识的编程者可以利用已有的FPGA资源轻松获得良好的性能。

【技术实现步骤摘要】
基于FPGA的面向基因测序串匹配算法的加速平台及设计方法
本专利技术涉及基因测序算法的硬件加速平台,具体涉及一种通用性好和灵活性高的基于FPGA的面向基因测序串匹配算法的加速平台及设计方法。
技术介绍
基因测序有很多种方法。但无论这些方法在实现上有什么不同,本质上它们都依赖DNA复制原理展开设计。DNA复制简单来说就是DNA的自我增殖过程。在复制期间DNA慢慢打开双链结构,并在各种引导酶的作用下分为两个单链并生成新的匹配短链。之后游离在细胞核中的游离碱基就会在一系列酶的作用下,加入新生成的短链使短链慢慢延展。到了复制末期,原始DNA双链完全打开,并分别与由游离碱基拼接而成的单链组成双链结构。由于碱基配对的专一性,在没有出现复制错误的情况下,两条新的双链在结构上是完全相同的,这样就实现了一条变两条的复制。本文选取串匹配算法研究基因测序其原理就是碱基之间配对的唯一性。DNA是由四种不同的碱基组成的,一般简记为A、T、C、G。四种碱基严格按照AT两两配对,CG两两配对原则执行配对。这样一来,测量一段未知的基因片段,就可以借助一条已知片段与该未知片段进行匹配,当两片段完全匹配时,已知片段的共轭序列就是所测目标的序列。下面简单描述基因测序的串匹配流程,包含以下几个步骤。第一步先构造若干已知的碱基序列,并对这些碱基序列进行标记以便识别。常用的标记方法为同位素标记法。第二步进行碱基对的匹配,将目标序列与构造序列放入缓冲液中进行DNA的。在DNA复制过程中,目标序列会吸收预先构造的带标记碱基进行延展,通过测量生成的新链的碱基序列就可以得到原链的序列。第三步是对短碱基序列的拼接。随着基因测序进入大数据时代,测序工程中包含庞大的数据量,传统的计算机系统已经无法适应大数据的典型需求。目前,适用于大数据处理的平台可分为软件处理平台与硬件处理平台两类。云计算平台和GPGPU平台是两种最为主流的大数据软件处理平台。1)云计算平台。一般来说,云计算平台由大量同构的基于CPU的单节点服务器构成,多个节点间互相配合、协同工作。云计算平台编程模型大体上可以分为基于Map-Reduce计算模型和基于图的计算模型两种,两种计算模型的本质都是利用任务级并行和数据集并行的手段来加速应用的执行。2)GPGPU平台。GPGPU平台是一种较为普及的并行加速平台,每块GPGPU处理器芯片内部往往由多个SM构成,每个SM由多个SP组成,每个SP就是一个计算单元。本质上来说,GPGPU是以SIMD的方式来利用数据级并行来加速任务的执行。目前,针对GPGPU平台提出和实现了诸如CUDA、OpenCL和OpenACC等编程规范,这大大降低了基于GPGPU的应用的开发门槛,也使GPGPU成为了目前较为广泛使用的并行加速平台。虽然利用云计算平台和GPGPU平台的确可以加速基因测序算法的执行,但是它们还是各自存在相对的局限性。对于云计算平台来说,集群运行的维护就需要不小的开销,并且从效率的角度来说,单个节点的计算效率其实并不是很高。GPGPU平台的每块GPU芯片虽然有很高的计算效率,但是每块GPU芯片也都有很高的功率,因此在运行时往往需要消耗大量的电能来处理任务。以细粒度的视角来看,云计算平台的每个节点往往是普通的CPU架构,而CPU由于其通用性的设计架构使得对于处理特定的基因测序算法任务可能会得不到理想的性能。GPGPU平台的每块GPU芯片则主要适合处理能够进行数据级并行的任务,虽然基因测序算法中的大部分比较适合进行数据级并行,但是还有一部分不能够进行数据级并行。此外,为了增强通用性,GPU芯片集成很多基因测序算法用不到的功能部件,这不仅带来了较大的芯片面积,还带来了不小的额外功耗开销。硬件平台主要有专用集成电路(ASIC)和现场可编程门阵列(FPGA)。1)ASIC。相对于云平台和GPGPU,ASIC采用改进硬件架构来对算法进行加速。ASIC作为特定专用的集成电路,对特定的应用和算法具有较高的计算效率。但其专用性也导致其灵活性差,开发成本高;硬件设计的高门槛也使得其设计开发周期长,开发难度大。2)FPGA。相比于ASIC,其设计周期与实现难度要低很多,并且它还拥有灵活的可编程性。此外,随着越来越多的FPGA版嵌入式SOC芯片问世,FPGA与通用CPU间的通信变得越来越简单,因此选用FPGA来实现基因测序算法的专用加速器结构是目前研究的一个热点。综上所述,基于FPGA平台,从底层硬件层次上设计一个专用硬件加速器结构来加速基因测序是一个具有吸引力的选择,但FPGA的开发需要具备一定的硬件设计经验,正因为如此,FPGA将许多软件编程人员拒之门外。针对这个问题,本课题拟设计一个基于FPGA的面向基因测序串匹配算法的加速平台,使软件编程人员能够使用库函数一样使用平台提供的接口选择合适的串匹配算法,实现自己的FPGA加速器。
技术实现思路
针对上述存在的技术问题,本专利技术目的是:提供了一个基于FPGA的面向基因测序串匹配算法的加速平台,使得不具备硬件知识的编程者可以利用已有的FPGA资源,轻松获得良好的硬件性能。本专利技术的技术方案是:基于FPGA的面向基因测序串匹配算法的加速平台,包括PS与PL两部分,PS部分包括通用处理器和DRAM,用于完成软件端代码的运行以及硬件部分的控制,PL端包括多个IP核来以实现相应任务,通用处理器将字符串数据写入DRAM中,然后FPGA从DRAM中读取字符串数据并开始计算,并把计算结果写入到DRAM中,最后通用处理器从DRAM中读取匹配结果。基于FPGA的面向基因测序串匹配算法的加速平台的设计方法,包括以下步骤:S01:分析基因测序算法KMP、BWA的特点,梳理算法流程,确定算法设计。S02:根据基因测序算法KMP、BWA计算过程,针对两个算法分别设计出可扩展的IP核实现。S03:根据基因测序算法KMP、BWA特点和FPGA的资源,确定KMP与BWA算法相应的硬件IP核结构;S04:移植操作系统到硬件平台,并将硬件IP核烧写到硬件平台,编写各个硬件设备的驱动;S05:在用户层调用各个硬件IP核,形成硬件加速器。优选技术方案中,所述步骤S01中KMP、BWA算法设计,其中KMP算法设计步骤为:首先模式字符串传输到部分匹配函数中,生成回退位置表并存储,然后将源串与模式串输入KMP搜索函数,并根据回退位置表得出匹配起始字符位置;BWA算法设计步骤为:对源串进行BW转换生成后缀数组,将后缀与模式串输入搜索函数中得出模式串所有匹配。优选技术方案中,所述步骤S02中可扩展的IP核,具体包括KMPIP核,BWAIP核。优选技术方案中,所述步骤S02中,每个IP核都有一个DMA连接,IP核之间完全独立,并行运行。优选技术方案中,所述步骤S03中的硬件IP核结构,其中KMPIP核结构包含KMP的输入输出模块、串分片模块、位移计算模块、搜索模块,BWAIP核包含输入输出模块、串分片模块、BMA转换模块、搜索模块。优选技术方案中,KMPIP核与BWAIP核中的串分片模块对源串进行等大小的分片,并对片进行编号,通过片的编号,分片的大小以及字符在分片中的偏移对字符进行重定位,分片后的输入可以并行进行,固定大小的分片长度也有利于DMA的设置。优选技术方案中,所述步骤S0本文档来自技高网
...

【技术保护点】
1.基于FPGA的面向基因测序串匹配算法的加速平台,其特征在于,包括PS与PL两部分,PS部分包括通用处理器和DRAM,用于完成软件端代码的运行以及硬件部分的控制,PL端包括多个IP核来以实现相应任务,通用处理器将字符串数据写入DRAM中,然后FPGA从DRAM中读取字符串数据并开始计算,并把计算结果写入到DRAM中,最后通用处理器从DRAM中读取匹配结果。

【技术特征摘要】
1.基于FPGA的面向基因测序串匹配算法的加速平台,其特征在于,包括PS与PL两部分,PS部分包括通用处理器和DRAM,用于完成软件端代码的运行以及硬件部分的控制,PL端包括多个IP核来以实现相应任务,通用处理器将字符串数据写入DRAM中,然后FPGA从DRAM中读取字符串数据并开始计算,并把计算结果写入到DRAM中,最后通用处理器从DRAM中读取匹配结果。2.根据权利要求1所述的基于FPGA的面向基因测序串匹配算法的加速平台设计方法,包括以下步骤:S01:分析基因测序算法KMP、BWA的特点,梳理算法流程,确定算法设计。S02:根据基因测序算法KMP、BWA计算过程,针对两个算法分别设计出可扩展的IP核实现。S03:根据基因测序算法KMP、BWA特点和FPGA的资源,确定KMP与BWA算法相应的硬件IP核结构;S04:移植操作系统到硬件平台,并将硬件IP核烧写到硬件平台,编写各个硬件设备的驱动;S05:在用户层调用各个硬件IP核,形成硬件加速器。3.根据权利要求2所述的基于FPGA的面向基因测序串匹配算法的加速平台设计方法,其特征在于,所述步骤S01中的KMP、BWA算法设计,其中KMP算法设计步骤为:首先模式字符串传输到部分匹配函数中,生成回退位置表并存储,然后将源串与模式串输入KMP搜索函数,并根据回退位置表得出匹配起始字符位置;BWA算法设计步骤为:对源串进行BW转换生成后缀数组,将后缀与模式串输入搜索函数中得出模式串所有匹配。4...

【专利技术属性】
技术研发人员:李曦王超娄文启周学海
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1