CN110990063B - 一种用于基因相似性分析的加速装置、方法和计算机设备 - Google Patents
一种用于基因相似性分析的加速装置、方法和计算机设备 Download PDFInfo
- Publication number
- CN110990063B CN110990063B CN201911191604.8A CN201911191604A CN110990063B CN 110990063 B CN110990063 B CN 110990063B CN 201911191604 A CN201911191604 A CN 201911191604A CN 110990063 B CN110990063 B CN 110990063B
- Authority
- CN
- China
- Prior art keywords
- gene
- task
- tasks
- sequence
- processing unit
- 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.)
- Active
Links
- 108090000623 proteins and genes Proteins 0.000 title claims abstract description 267
- 238000004458 analytical method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 133
- 238000004891 communication Methods 0.000 claims abstract description 14
- 239000013598 vector Substances 0.000 claims description 136
- 238000004364 calculation method Methods 0.000 claims description 50
- 230000001133 acceleration Effects 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 47
- 238000004422 calculation algorithm Methods 0.000 description 28
- 230000007246 mechanism Effects 0.000 description 10
- 241000700605 Viruses Species 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 108091028043 Nucleic acid sequence Proteins 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 241001227084 Avian avulavirus 3 Species 0.000 description 4
- 241000894006 Bacteria Species 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005314 correlation function Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 238000012896 Statistical algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 208000015181 infectious disease Diseases 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000002864 sequence alignment Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 108020004414 DNA Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 108020000999 Viral RNA Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 241001493065 dsRNA viruses Species 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002773 nucleotide Substances 0.000 description 1
- 125000003729 nucleotide group Chemical group 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Genetics & Genomics (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Analytical Chemistry (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Chemical & Material Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
Abstract
本发明实施例提供了一种用于基因相似性分析的加速装置、方法和计算机设备,该加速装置包括高速通信接口,用于与主机通信,接收主机分发的待加速处理的任务;序列缓存模块,用于缓存来自主机的一个或者多个任务,每个任务包含待进行基因相似性分析的多个基因序列数据;阵列处理机,其上设有用于处理任务的处理单元,处理单元中设有基于数据驱动的流式计算模式处理任务的完整流水线,流水线中配置有处理任务所需的多个定点计算部件;控制模块,其被配置为用于将序列缓存模块中的待处理的任务分配给处理单元;任务缓存模块,其上设置有任务缓存单元,用于缓存分配给处理单元的待处理任务。本发明能够提高基因相似性分析的效率,快速得到分析结果。
Description
技术领域
本发明涉及生物基因数据处理技术领域,具体来说涉及一种面向图解基因相似性算法的加速结构,更具体地说,涉及一种用于基因相似性分析的加速装置、方法和计算机设备。
背景技术
随着人类基因组计划的完成,人类对遗传信息的了解和掌握有了前所未有的进步。与此同时,随着分子水平的基因检测技术不断发展和完善,使得基因测序技术得到了迅猛发展,高通量、低成本的测序技术已经普遍应用,积累了大量不同物种的基因和蛋白质数据。面对***性增长的基因序列的数据量,如何分析和解读基因序列中所包含的有用信息成为目前生物学研究的关键。基因序列的相似性分析在生物信息学中作为关键技术之一,是理解基因序列本身结构功能与生物信息最基本的方法。对于一个未知生物的基因序列数据,如果能够证明它与某些已知序列存在联系,那么就能在一定程度上推断出生物的种类和性状,对生物学、医药学的研究具有重要意义。面对海量的基因序列数据,如何提高相似性分析的速度和能效,显得尤为重要。
基因序列相似性分析算法一般包括比对算法(aligment method)和非比对算法(aligment-free method)。比对算法计算较为精确,但计算复杂度高,速度慢且需要消耗大量的计算资源,随着基因数据的快速增长,比对算法已经不能满足基因相似性分析的需求。非比对算法的一个优势是避免了选择多个基因的完整基因组序列来进行分析,其次是计算复杂度低并且耗费时间短。近年来,非比对算法在学业界和产业界发展迅速,非比对算法通常包括统计学方法和图解表示法等,基于k-words的方法是一种经典的统计学方法,但是统计学方法忽略了生物分子的化学结构和特性。基于图解表示法的主要过程是将序列映射到图形中,这样生物序列的复杂关系能够变得可视化,然后可以使用数值特征描述可视化的图形。
如果采用通用处理器实现非比对算法时,其处理时间过长,难以满足快速对数百万个碱基序列进行相似性分析的需求,所以迫切需要新的计算结构来加速大量碱基序列的相似性分析。具体来说,虽然图解基因相似性分析算法在适用性和准确性上有很大的优势,但是面对海量的基因序列数据,其巨大的计算量需求对计算***的设计提出了挑战。例如,当前通用处理器的RNA序列比对的通量为每秒一万个碱基,如果用于处理一个RNA 病毒的序列比对,每次通常需要比对几十万个病毒序列,按照病毒平均长度为1000个碱基计算,得到一个病毒的比对结果则需要十几个小时,对后续制定应对措施比如制药等有较大的影响,特别是在应对一些因病毒或者细菌引发的突发大规模感染事件,需要争分夺秒制定应对措施以防止病毒或者细菌失控扩散,而现有的技术在性能上不能满足要求。
造成以上问题的主要原因是通用处理器的计算结构与非比对算法的算法特征的不匹配。第一,非比对算法中需要大量的2位、8位、32位整型数乘加运算,而通用处理器中配置的64位计算部件虽然位数多,但是其数量少,不仅不能满足算法对整型计算单元数量的需求,而且存在大量的计算资源的浪费;第二,由于基因序列之间的独立性,非比对算法具有很高的并发性,同一条序列可以同时跟若干条其它序列比对,但是通用处理器的并发性低,达到不到非比对算法的需求;第三,通用处理器具有 Cache机制和分支控制逻辑,Cache机制是为了减少内存的访问延迟,提升通用处理器的响应速度,Cache机制是利用设置在位于CPU与内存之间的临时存储器作为CPU缓存(Cache Memory)来存储CPU短时间内即将访问的数据,从而加快读取速度,降低CPU访问数据的延迟的机制。临时存储器的容量比内存小但交换速度更快,在CPU缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度,通常缓存的数据是热数据,即CPU可能频繁访问到的数据,但是,对于基因序列的相似性分析,任务中基因序列数据的相似性分析完成后,该任务中的基因序列数据很难再次用到,Cache机制对基因序列数据的相似性分析的速度提升没有太大的作用。分支控制逻辑是为了支持通用处理器的流水线技术,加快程序的执行速度,对于分支控制逻辑,由于处理器通过流水线技术来提高性能,而流水线要求事先知道接下来要执行的具体指令,才能保持流水线中充满待执行的指令。当在程序中遇到分支语句/条件跳转时,问题就出现了,处理器不确定下一条指令是什么,这时就需要进行“分支控制逻辑”来确定哪一条指令进入流水线。如果预测了一个分支加入流水线,之后却发现它是错误的分支,处理器要回退该错误预测执行的工作,再用正确的指令填充流水线。这样一个错误的预测会严重浪费时钟周期,导致程序性能下降。分支预测更多是在指令层次的调度,由于本申请采用的计算基因相似性的非比对算法具有高流水性、并发性,其处理流程完全是固定、可预测的,可以流式的处理,只要数据来了,处理单元就知道要做什么操作,不需要复杂的Cache机制和分支控制逻辑的支持。
由此可见,通用处理器中有限数目的计算核心限制了算法并发性的提升,使得通用处理器中复杂的Cache机制和分支控制逻辑不仅不能发挥相应的效果,而且消耗了大量的硅片面积,能耗较高。因此,有必要对现有技术进行改进。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于基因相似性分析的加速装置、方法和计算机设备。
根据本发明的第一方面,本发明提供一种用于基因相似性分析的加速装置,包括:高速通信接口,用于与主机通信,接收主机分发的待加速处理的任务;序列缓存模块,用于缓存来自主机的一个或者多个任务,每个任务包含待进行基因相似性分析的多个基因序列数据;阵列处理机,其上设有至少一个用于处理任务的处理单元,每个所述处理单元中设有基于数据驱动的流式计算模式处理任务的完整流水线,所述流水线中配置有处理任务所需的多个定点计算部件;控制模块,其被配置为用于将序列缓存模块中的待处理任务分配给处理单元;任务缓存模块,其上设置有任务缓存单元,用于缓存分配给处理单元的待处理任务;和/或结果缓存模块,所述结果缓存模块通过片上网络连接到控制模块和阵列处理机,用于缓存经阵列处理机处理任务得到的基因相似性分析的分析结果。所述序列缓存模块和/或所述控制模块通过片上网络连接到阵列处理机,所述阵列处理机中的多个处理单元彼此之间通过片上网络以Mesh结构的形式互相连接。所述序列缓存模块、任务缓存单元和结果缓存模块均采用程序可见的存储器,其中所述程序可见的存储器是指和主存统一编址的存储器。
优选的,所述处理单元被配置为多级流水线结构,所述多级流水线结构用于并行执行任务,所述多级流水线结构中设置低位宽的定点计算部件;所述多级流水线结构中低位宽的定点计算部件的设置数量多于主机的处理器中的定点计算部件的数量。所述多级流水线结构至少包括一级、二级和三级流水线;其中,所述一级流水线中配置有多个序列预处理模块,用于对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据;所述二级流水线中配置有多个互相关计算模块,用于基于一级流水线处理得到的十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量;所述三级流水线中配置有多个欧式距离计算模块,用于基于二级流水线计算出的所有互相关向量计算其中每两个互相关向量之间的欧式距离。
优选的,所述阵列处理机包括用于并行处理任务的多个处理单元,所述任务缓存模块包括多个任务缓存单元,每个处理单元独立配有一个其专属的任务缓存单元;所述控制模块被配置为监控各处理单元处理任务的情况,在监控到相应的处理单元当前的任务处于将要被完成执行的状态之时,将所述序列缓存模块中待处理的任务分配给该处理单元并预先发送至该处理单元专属的任务缓存单元。所述控制模块被配置为在监控到相应的处理单元当前的任务处于将要被完成执行的状态之时,从所述序列缓存模块内剩余的所有待处理任务中随机选出一个或者多个待处理任务分配给该处理单元。
优选的,所述控制模块被配置为通过分析各处理单元专属的任务缓存单元内的待读取的数据量来对各处理单元执行任务的情况进行监控,其中,在相应的任务缓存单元内的待读取的数据占任务缓存单元容量的百分比占比降低到预设阈值时判定其所属的处理单元当前的任务处于将要被完成执行的状态。所述预设阈值的取值范围为10%~30%。
根据本发明的第二方面,本发明提供一种基于如第一方面所述的用于基因相似性分析的加速装置的加速方法,包括:S100、接收主机分发的待加速处理的任务,每个任务包含待进行基因相似性分析的多个基因序列数据;S200、基于数据驱动的流式计算模式处理任务,采用多个相互独立的完整流水线并行处理任务,并在每个流水线中采用多个低位宽的定点计算部件对任务进行加速处理,其中每个流水线进行加速处理包括:S210、对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据;S220、基于十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量;和/或S230、基于所有互相关向量计算其中每两个互相关向量之间的欧式距离。
根据本发明的第三方面,本发明提供一种用于基因相似性分析的计算机设备,包括:存储器;主机;和/或,如第一方面所述的加速装置。
与现有技术相比,本发明的优点在于:本发明各处理单元均设有基于数据驱动的流式计算模式处理任务的完整流水线,能够流式地处理数据,流水线结构中配置有处理任务所需的多个定点计算部件,能够提高基因相似性分析的效率,对主机分发的任务进行加速分析得到分析结果,而且本发明可以少量地、持续地根据各处理单元执行任务的情况来分发待处理的任务,让各处理单元在所有任务完成前尽可能都处于工作状态,进一步提高了基因相似性分析的效率,特别是在应对一些因病毒或者细菌引发的突发大规模感染事件,需要争分夺秒制定应对措施以防止病毒或者细菌失控扩散的情况下,可以加速得出基因相似性的分析结果,以便快速为后续制定应对措施(比如制药、防疫措施等)提供技术参考。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的用于基因相似性分析的加速装置的模块示意图;
图2为根据本发明实施例的用于基因相似性分析的加速装置的处理单元的流水线结构;
图3为根据本发明实施例的用于基因相似性分析的加速装置中五维互相关向量的选择过程的示意图;
图4为根据本发明实施例的用于基因相似性分析的加速装置的计算某个维度的互相关向量的过程的流程示意图;
图5为根据本发明的一个示例的用于基因相似性分析的加速装置中计算互相关向量的过程示意图;
图6为根据本发明的一个示例的用于基因相似性分析的加速装置中计算欧式距离的过程示意图;
图7为根据本发明的一个实施例的用于基因相似性分析的加速方法的流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如在背景技术部分提到的,通用处理器中复杂的Cache机制和分支控制逻辑对于本发明使用的非比对算法不能发挥相应的效果,而且通用处理器中有限数目的计算核心限制了算法并发性的提升。而计算完相应的基因序列的相似性后,基因序列数据后续再次被处理器使用的概率较低,无需用到Cache机制。而分支预测更多是在指令层次的调度,由于本发明的非比对算法的流程完全是固定、可以流式的处理,只要序列数据来了,处理单元就知道需要做什么操作,处理单元中不用使用分支预测,直接采用流水线结构即可。本发明通过在处理单元中设置基于数据驱动的流式计算模式处理任务的完整流水线,流水线结构中配置有处理任务所需的多个定点计算部件,能够提高基因相似性分析的效率,对主机分发的任务进行加速分析得到分析结果。
在对本发明的实施例进行具体介绍之前,先对其中使用到的部分术语作如下解释:
片上网络(network-on-chip,简称NoC),是为片上*** (system-on-chip,简称SoC)的多个节点提供通信网络的通信平台。网络中的多个节点可以同时利用网络中的不同物理链路进行信息交换,支持多个IP核并发地进行数据通信。片上网络(NoC)技术相对于总线(Bus) 互连技术具有较高的带宽以及更高的通信效率。
PCIe(peripheral component interconnect express)接口,是根据高速串行计算机扩展总线标准制作的一种通信接口。
便笺存储器(Scratchpad Memory),通常也可称为便签存储器、暂存存储器、超高速中间结果缓存器或者SPM。
阵列处理机(Process Element Array),是指处理单元阵列,通常也称PE处理阵列。
互相关计算,是指利用互相关函数计算两个序列之间的相关程度的计算。通常,互相关函数被用于计算信号x(t)、y(t)在任意两个不同时刻 t1、t2的取值之间的相关程度。本发明将其引入到计算基因序列,以基因序列的相应位的位数代替时刻,由此计算两个基因序列的互相关程度。
欧氏距离可以是指欧式空间中两点间的直线距离。
Mesh结构,是一种片上网络的网络拓扑结构,或者说是一种用于片上网络多核之间的通信的多核互联形式。目前,片上网络拓扑结构主要有 Mesh结构和Torus结构。
定点计算,是指在空间网格里的运算。在给定的直角坐标系上,坐标全是整数的点,叫做整点,全部整点构成的组就叫做空间格网。
浮点运算,除定点运算外的运算是浮点运算。
根据本发明的一个实施例,提供一种用于基因相似性分析的加速装置,可以包括高速通信接口、序列缓存模块、阵列处理机、任务缓存模块、结果缓存模块和控制模块中的一个或者多个模块。其中,高速通信接口,可以用于与主机通信,接收主机分发的待加速处理的任务;序列缓存模块,可以用于缓存来自主机的一个或者多个任务,每个任务包含待进行基因相似性分析的多个基因序列数据;阵列处理机,其上设有至少一个用于处理任务的处理单元,每个处理单元中设有基于数据驱动的流式计算模式处理任务的完整流水线,该流水线中配置有处理任务所需的多个定点计算部件;控制模块,其可以被配置为用于将序列缓存模块中的待处理任务分配给处理单元;任务缓存模块,其上设置有任务缓存单元,用于缓存分配给处理单元的待处理任务;结果缓存模块,可以用于缓存经阵列处理机处理任务得到的基因相似性分析的分析结果。
根据本发明的一个实施例,如图1所示,根据本发明实施例的用于基因相似性分析的加速装置,包括高速通信接口110、序列缓存模块140、阵列处理机、任务缓存模块、结果缓存模块150和控制模块120中的一个或者多个模块。优选的,序列缓存模块140、阵列处理机、任务缓存模块、结果缓存模块150和控制模块120彼此之间可以通过片上网络连接。优选的,序列缓存模块140和/或控制模块120通过片上网络连接到阵列处理机。每个处理单元160能直接访问其专属的任务缓存单元170。优选的,该加速装置可以在专用集成芯片上实现,比如,ASIC芯片。或者,该加速装置也可以半定制芯片上实现,比如,FPGA芯片。
优选的,阵列处理机可以包括用于并行处理任务的多个处理单元160;任务缓存模块包括多个任务缓存单元170,每个处理单元160独立配有其专属的任务缓存单元170。优选的,阵列处理机可以包括多个处理单元160。多个处理单元160彼此之间可以通过片上网络以Mesh结构的形式互相连接,参见图1中形成网格状的Mesh结构的路由节点130。优选的,阵列处理机中并行处理任务的处理单元160个数可以是2~100个,比如,例如可以是图1所示的16个。任务缓存模块可以包括多个任务缓存单元170,每个处理单元160可以独立配有其专属的任务缓存单元170。该实施例的技术方案至少能够实现以下有益技术效果:该加速装置对基因序列数据进行相似分析时的计算并行度大于主机对基因序列数据进行相似分析时的计算并行度,从而加速实现对主机分发的任务中的基因序列数据进行基因相似性分析的过程,得到分析结果后将分析结果发送给主机,以便用户在主机对基因序列数据进行相似分析时的分析结果进行查看。
优选的,该加速装置可以通过高速通信接口110连接于主机,比如,本发明加速装置可以通过PCIe接口或者HSSI接口连接于主机。主机是指计算机,比如,个人电脑、服务器或者服务器集群。需要说明的是,主机可以采用通用处理器,通用处理器可以负责将任务分发给加速装置和从加速装置处获取由加速装置加速处理后得到的基因相似性分析的分析结果。该加速装置连接于主机后,可以对主机分发的任务中的基因序列数据进行基因相似性分析并将分析结果返回给主机。
根据本发明的一个实施例,参见图2,图2为根据本发明实施例的用于基因相似性分析的加速装置的处理单元160的流水线结构。每个处理单元160可以被配置为多级流水线结构,多级流水线结构用于并行执行任务,多级流水线结构中设置低位宽的定点计算部件。优选的,各级流水线并行执行用于进行基因相似分析的基因非比对算法的一部分并最终得到分析结果。比如,多级流水线结构可以包括一级、二级和三级流水线。其中,一级流水线中配置有多个序列预处理模块161,用于对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据。二级流水线中配置有多个互相关计算模块162,用于基于一级流水线处理得到的十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量。三级流水线中配置有多个欧式距离计算模块163,用于基于二级流水线计算出的所有互相关向量计算其中每两个互相关向量之间的欧式距离。
优选的,处理单元160中或者说多级流水线结构中可以设有多个定点计算部件并且其设置数量多于主机的处理器中的定点计算部件的数量。优选的,相应的定点计算部件的设置数量与任务中基因序列数据对应的基因序列的平均长度成正比。优选的,相应的定点计算部件的设置数量是任务中基因序列数据对应的基因序列的平均长度的1~2倍,比如,按照病毒 RNA序列平均长度为1000,那么二级流水线中布置的相应的定点计算模块的数量可以为1000~2000。低位宽的定点计算模块可以是指低位宽的定点乘法器和/或低位宽的定点加法器。优选的,低位宽可以是指64位以下的位宽,比如,4位、8位、32位。比如,计算互相关向量时,一级流水线中可以采用1000个8位定点乘法器、1000个32位定点加法器来分别执行计算互相关向量时的乘法和加法运算。优选的,除定点计算部件以外,流水线结构中还可以设置浮点计算部件。比如,互相关计算模块162中可以设置32位浮点器进行除法操作。在欧氏距离计算模块163中配置多个浮点运算器,以提高计算的并行度。由于欧式距离计算中的输入数值为32 位的浮点数,而求平方再相加之后32位运算器可能会出现溢出情况,因此欧式距离计算单元中相减和平方操作可以采用32位的浮点运算器,加法可以采用64位的浮点运算器,以防止溢出。在该实施例中,本发明的加速装置采用的非比对算法是面向图解基因相似性算法。但是,应当理解的是,对于其他类型的非比对算法,例如统计学算法,也可以采用本发明的加速装置的结构形式,仅是将处理单元160的流水线结构执行的具体计算调整为与统计学算法相适配的流水线结构即可。该实施例的技术方案至少能够实现以下有益技术效果:本发明可以利用加速装置内设置的数量更多的定点计算模块来对主机分发的任务进行加速分析,弥补主机上定点计算模块数量少而非比对算法对定点计算模块的需求量大的不足,降低基因相似性分析的时间,提高分析效率;而且,本发明中的算法是完全的流式计算,处理单元计算过程无需使用分支预测,流程控制简单。
优选的,一级流水线和二级流水线之间,以及二级流水线和三级流水线之间都设有临时存储数据的先入先出存储器FIFO。序列预处理模块161 完成基因原始序列到十进制序列的转换,将十进制基因序列数据存储到一级流水线和二级流水线之间的先入先出存储器FIFO中。序列预处理模块 161可以用于寻找最短的基因序列。待所有序列预处理完毕,序列预处理模块161将表示十进制基因序列有效的信号拉高(指将信号由0置为1),通知互相关计算模块162读取数据。互相关计算模块162读取数据之后,计算每个待计算的基因序列与最短的基因序列的互相关向量,并将计算出的互相关向量存储到二级流水线和三级流水线之间的先入先出存储器FIFO中,等到所有序列的互相关向量计算完毕,通知欧氏距离计算模块 163读取数据。
根据本发明的一个实施例,控制模块120被配置为通过分析各处理单元专属的任务缓存单元内的待读取的数据量来对各处理单元执行任务的情况进行监控。其中,在相应的任务缓存单元内的待读取的数据占任务缓存单元容量的百分比占比降低到预设阈值时判定其所属的处理单元当前的任务处于将要被完成执行的状态。控制模块120可以被配置为监控各处理单元处理任务的情况,在监控到相应的处理单元160当前的任务处于将要被完成执行的状态而序列缓存模块140内还有待处理的任务时,将序列缓存模块中待处理的任务分配给该处理单元160并预先发送至该处理单元 160专属的任务缓存单元170。该实施例的技术方案至少能够实现以下有益技术效果:本发明可以减少传输时延对总的计算效率的影响,而且本发明可以少量地、持续地根据各处理单元执行任务的情况来分发待处理的任务,让各处理单元在所有任务完成前尽可能都处于工作状态,以提高计算效率。因为这种方式可以避免先将大量的计算任务均匀分配给各处理单元后,某些处理单元过早处理完任务而无后续任务只能处于空闲状态,而其他处理单元此时却还有大量的任务待处理,导致计算效率不高的问题,并且,本发明设置了能并行处理任务的多个处理单元,其中每个处理单元均设有基于数据驱动的流式计算模式处理任务的完整流水线,能够流式地处理数据,进一步地提高了基因相似性分析的效率。优选的,预设阈值的设置范围可以为10%~30%。比如,假设任务缓存单元170容量为100MB,预设阈值设置为10%。假设先分配给处理单元160的任务的大小有60MB,则在处理单元160读取任务时监控任务缓存单元170内的待读取的数据占任务缓存单元容量的百分比占比,在待读取的数据量降低到10%,即10MB时,则判定该处理单元160当前的任务处于将要被完成执行的状态。
优选的,控制模块120可以包括控制逻辑和任务分发逻辑。控制逻辑可以用于负责与主机的交互,接收主机分发的基因序列并将比对结果返回给主机,包含DMA、中断产生等控制逻辑。比如,控制逻辑可以用于通过 DMA操作和中断操作将携带有需要进行相似性分析的基因序列数据的任务搬移到序列缓存模块140。优选的,任务分发逻辑可以用于分别对每个处理单元160执行任务的情况进行监控,在监控到相应的处理单元160当前的任务处于将要被完成执行的状态而序列缓存模块140内还有待处理的任务时,将序列缓存模块中待处理的任务分配给该处理单元160并预先发送至该处理单元160专属的任务缓存单元170。即,控制模块120可以从序列缓存模块140内剩余的所有待处理任务中随机选出分配给该处理单元 160的一个或者多个新任务。比如,序列缓存模块140剩余的待处理任务还有十个,则随机从十个任务中选出一个或两个新任务分配给相应的处理单元160。将序列缓存模块中的待处理的任务分配给阵列处理机,从而为其再分配新任务发送该处理单元160专属的任务缓存单元170。由于非比对算法的任务可以不用按照特定的顺序先后执行,无需使用分支预测功能,因此,本发明直接采用随机分配的方式来分配新任务,任务分发过程无需分支预测,控制过程简单高效。
在本发明的一个实施例中,序列缓存模块140、任务缓存单元170和结果缓存模块150均采用程序可见的存储器。程序可见的存储器是指和主存统一编址的存储器,控制模块120、处理单元160和/或主机的处理器可以直接访问程序可见的存储器,比如,程序可见的存储器可以是便笺存储器。该实施例的技术方案至少能够实现以下有益技术效果:该实施例中,使用程序可见的便笺存储器代替硬件控制的Cache机制,避免了使用通用处理器中复杂的Cache机制,能够充分利用非比对算法的特性,使得任务分配的流程控制更简单高效。
根据本发明的一个实施例,序列预处理模块161对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据。比如,序列预处理模块通过查表的方式将任务的基因序列数据中四种碱基替换为相应的占两位位宽的四进制数值,得到四进制序列数据;将每个四进制序列数据中代表生物学的意义上的一对二核苷酸的两个相邻四进制数值转换为十进制数值,得到十进制序列数据。由于DNA和RNA中都含有4 种碱基,所以可以使用四进制为基础做数字序列的转换。本实施例以RNA 为例进行说明,比如,RNA中含有U、C、G、A四种碱基,可以将U、C、G、 A分别映射为0、1、2、3中的其中一个且彼此互不相同的数值。例如,可以定义A、U、C、G的映射方式为:U映射为0,C映射为1,G映射为2, A映射为3。得到四进制序列数据之后,计算每两个相邻碱基的十进制数值,比如相邻两个四进制碱基为CA,其四进制的数值为13,那么十进制数值则为1乘4再加上3,即这两个相邻碱基的十进制数值为7,按照此方式依次计算,最终得到十进制序列数据。每个十进制数值需要用4位位宽表示。查表的过程可以采用4位位宽处理部件来实现。该实施例的技术方案至少能够实现以下有益技术效果:本实施例将基因序列数据转换为十进制数据,可以将以ASCII码表示的碱基转换为十进制数据来表示,可以节约计算资源,提高计算效率。
根据本发明的一个实施例,互相关计算模块162基于一级流水线处理得到的十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量。优选的,计算两个基因序列x序列和y序列的互相关向量可以采用公式:
其中,x序列的长度比y序列的长度短,C(n)表示互相关向量的数值, n表示第几个维度,n从0开始直到计算到4,总共计算五个维度的互相关向量的数值,N指x序列的长度,m指计数值,m从0开始直到计算到N-n。
优选的,互相关计算模块162基于一级流水线处理得到的十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量可以是通过以下方式:
将最短的十进制基因序列的第一位与待计算的十进制基因序列的第一相应位对齐,以该当前对齐的状态计算最短的十进制基因序列的每一位与待计算的十进制基因序列的对应位的乘积之和除以最短的基因序列的长度,得到该基因序列的一维互相关向量,其中,待计算的基因序列数据的第一相应位的位数从其第一位开始,每计算一个一维互相关向量后第一相应位的位数自增一,直到该待计算的基因序列数据的第一相应位的位数增加到使最短的十进制基因序列的最后一位与待计算的基因序列数据的最后一位对齐,得到多个一维互相关向量,将多个一维互相关向量中的最小值作为一维互相关向量的最终结果;
在忽略最短的十进制基因序列的最后一位的情况下,将最短的十进制基因序列的第一位与待计算的十进制基因序列的第二相应位对齐,以该当前对齐的状态计算最短的十进制基因序列的每一位与待计算的十进制基因序列的对应位的乘积之和除以最短的基因序列的长度,得到该基因序列的二维互相关向量,其中,待计算的基因序列数据的第二相应位的位数从其第二位开始,每计算一个二维互相关向量后第二相应位的位数自增一,直到该待计算的基因序列数据的第二相应位的位数增加到使最短的十进制基因序列的最后一位与待计算的基因序列数据的最后一位对齐,得到多个二维互相关向量,将多个二维互相关向量中的最小值作为二维互相关向量的最终结果;
在忽略最短的十进制基因序列的最后两位的情况下,将最短的十进制基因序列的第一位与待计算的十进制基因序列的第三相应位对齐,以该当前对齐的状态计算最短的十进制基因序列的每一位与待计算的十进制基因序列的对应位的乘积之和除以最短的基因序列的长度,得到该基因序列的三维互相关向量,其中,待计算的基因序列数据的第三相应位的位数从第三位开始,每计算一个三维互相关向量后第三相应位的位数自增一,直到该待计算的基因序列数据的第三相应位的位数增加到使最短的十进制基因序列的最后一位与待计算的基因序列数据的最后一位对齐,得到多个三维互相关向量,将多个三维互相关向量中的最小值作为三维互相关向量的最终结果;
在忽略最短的十进制基因序列的最后三位的情况下,将最短的十进制基因序列的第一位与待计算的十进制基因序列的第四相应位对齐,以该当前对齐的状态计算最短的十进制基因序列的每一位与待计算的十进制基因序列的对应位的乘积之和除以最短的基因序列的长度,得到该基因序列的四维互相关向量,其中,待计算的基因序列数据的第四相应位的位数从第四位开始,每计算一个四维互相关向量后第四相应位的位数自增一,直到该待计算的基因序列数据的第四相应位的位数增加到使最短的十进制基因序列的最后一位与待计算的基因序列数据的最后一位对齐,得到多个四维互相关向量,将多个四维互相关向量中的最小值作为四维互相关向量的最终结果;
在忽略最短的十进制基因序列的最后四位的情况下,将最短的十进制基因序列的第一位与待计算的十进制基因序列的第五相应位对齐,以该当前对齐的状态计算最短的十进制基因序列的每一位与待计算的十进制基因序列的对应位的乘积之和除以最短的基因序列的长度,得到该基因序列的五维互相关向量,其中,待计算的基因序列数据的第五相应位的位数从第五位开始,每计算一个五维互相关向量后第五相应位的位数自增一,直到该待计算的基因序列数据的第五相应位的位数增加到使最短的十进制基因序列的最后一位与待计算的基因序列数据的最后一位对齐,得到多个五维互相关向量,将多个五维互相关向量中的最小值作为五维互相关向量的最终结果。
可以看出,一维互相关向量是以完整的最短的基因序列数据为基础,从最短的基因序列的第一位和待计算的基因序列数据的第一位对齐开始计算一次一维互相关向量,后续依次将最短的基因序列数据后移一位且后移一维后都再计算一次一维互相关向量,直至最短的基因序列数据的最后一位和待计算的基因序列数据的最后一位对齐。这样,假设在待计算的基因序列数据与最短的基因序列相差k位时,每维互相关向量都会计算出k+1 个值,并从中选择最小值作为该维互相关向量的结果。同理,计算二维、三维、四维和五维互相关向量分别是以忽略了最短的基因序列数据的最后一位、最后两位、最后三位和最后四位为基础来计算的。图3为根据本发明实施例的用于基因相似性分析的加速装置中五维互相关向量的选择过程的示意图。每个维度中都包括计算出的多个互相关向量,例如参见图3中的一维互相关向量,每个维度中选择该维中的最小的值作为该维互相关向量的结果。该实施例的技术方案至少能够实现以下有益技术效果:本实施例计算出五个维度的互相关向量来用于计算欧式距离,可以减少过多相似性信息的流失,提高基因相似性分析的准确性。
图4为根据本发明实施例的用于基因相似性分析的加速装置的计算某个维度的互相关向量的过程的流程示意图。参见图4,互相关计算模块162 在计算某个维度的互相关向量时,可以包括:
步骤T1,输入十进制基因序列x序列和y序列,x序列的长度小于y 序列的长度,将该维最小的互相关向量的初始值设为最大值,转至步骤T2;
步骤T2,判断x序列的右移位数是否小于y序列的长度减去x序列的长度,若是,转至步骤T3,若否,转至步骤T4;
步骤T3,将上一次计算的x序列和y序列的所有相应位的乘积之和置零,转至步骤T5;
步骤T4,返回该维中计算出的最小的互相关向量作为该维的互相关向量的最终结果;
步骤T5,判断当前计算位m是否小于x序列的长度,否是,转至步骤 T6,若否,转至步骤T7;
步骤T6,计算x序列的当前计算位与y序列的相应位的乘积并与之前的值求和,x序列的当前计算位m的数值自增一,转至步骤T5;
步骤T7,本次的互相关向量的计算值等于本次计算的x序列和y序列的对齐位的乘积之和除以x序列的长度,x序列的右移位数的数值自增一,转至步骤T8;
步骤T8,本次的互相关向量的计算值是否小于当前该维最小的互相关向量,若是,转至步骤T9,若否,转至步骤T2;
步骤T9,令该维最小的互相关向量的值等于本次的互相关向量的计算值,转至步骤T2。
为了便于理解,下面通过一个具体的示例来说明本实施例计算五维互相关向量的过程。在本发明的一个示例中,通过两个示意性的基因序列数据来说明本发明的计算过程。应当注意的是,十进制序列的一位是二进制数的四位所表示的。比如,二进制数0111表示的十进制数7为是十进制序列的一位,二进制数1111表示的十进制数15也为十进制序列的一位。为了直观简便,该示例中使用仅含0、1、2和3的十进制序列来进行举例。假设最短的基因序列对应的十进制的基因序列数据为: 3120230313032032031302。一条要与最短的基因序列数据计算互相关向量的十进制的待计算的基因序列数据为032132120231320232321313132。两条序列的长度相差4位。
由此,在计算一维互相关向量时,会在以下五种状态下计算五个一维互相关向量,并选取其中的最小值作为一维互相关向量的最终结果。第一个状态下,最短的基因序列数据与待计算的基因序列数据的第一位对齐。两个基因序列数据的对齐的位两两相乘后求和再除以最短的基因序列数据的长度23,则得到了一个一维互相关向量。计算互相关向量过程中,待计算的基因序列数据中多出的首部或者尾部会被忽略。后续列举的计算互相关向量的方式的原理相同,只是对齐的位置有变化,故后续不再赘述。
31202303130320320313023
032132120231320232321313132
第二个状态下,最短的基因序列数据与待计算的基因序列数据的第二位对齐。
31202303130320320313023
032132120231320232321313132
第三个状态下,最短的基因序列数据与待计算的基因序列数据的第三位对齐。
31202303130320320313023
032132120231320232321313132
第四个状态下,最短的基因序列数据与待计算的基因序列数据的第四位对齐。
31202303130320320313023
032132120231320232321313132
第五个状态下,最短的基因序列数据与待计算的基因序列数据的第五位对齐。
31202303130320320313023
032132120231320232321313132
同理,在计算二维互相关向量时,会忽略掉最短的基因序列数据的最后一位,且每次右移一位在以下五种状态下计算五个二维互相关向量。应当理解的是,在忽略掉最短的基因序列数据的最后一位后,此时计算的最短的基因序列数据的长度会减一。即,最短的基因序列数据的长度N以计算相应维度的互相关向量时最短的基因序列数据的当前的实际长度为准。比如,此处计算二维互相关向量时,两个基因序列数据的对齐的位两两相乘后求和再除以此时最短的基因序列数据的长度22,则得到了一个二维互相关向量。
计算二维互相关向量时,第一个状态下,忽略掉最后一位的最短的基因序列数据与待计算的基因序列数据的第二位对齐。
3120230313032032031302
032132120231320232321313132
计算二维互相关向量时,第二个状态下,忽略掉最后一位的最短的基因序列数据与待计算的基因序列数据的第三位对齐。
3120230313032032031302
032132120231320232321313132
计算二维互相关向量时,第三个状态下,忽略掉最后一位的最短的基因序列数据与待计算的基因序列数据的第四位对齐。
3120230313032032031302
032132120231320232321313132
计算二维互相关向量时,第四个状态下,忽略掉最后一位的最短的基因序列数据与待计算的基因序列数据的第五位对齐。
3120230313032032031302
032132120231320232321313132
计算二维互相关向量时,第五个状态下,忽略掉最后一位的最短的基因序列数据与待计算的基因序列数据的第六位对齐。
3120230313032032031302
032132120231320232321313132
同理,每次在最短的基因序列数据的最后多忽略一位,按照上述方式来计算三维、四维和五维互相关向量。比如,假设仅有x序列和y序列,x 序列与最短的基因序列数据(其自身)得到的第一互相关向量为X={Cx(0),Cx(1),Cx(2),Cx(3),Cx(4)},y序列与最短的基因序列数据(x序列) 得到的互相关向量为Y={Cy(0),Cy(1),Cy(2),Cy(3),Cy(4)}。
下面通过附图以另一个具体的示例来说明互相关向量的计算过程。图 5为根据本发明的一个示例的用于基因相似性分析的加速装置中计算互相关向量的过程示意图。假设其是计算一维互相关向量,最短的基因序列为八位,依次取最短的基因序列中八位和待计算的基因序列中的八位进行乘法计算,每个方框内的数值代表十进制序列数据的一位。比如,最短的基因序列数据中的4、6、15、1分别是八位里的其中四位。两个基因序列的八对相应位的乘法同时计算,即用八个乘法操作同时计算,然后将相乘的结果求和,将求和的结果除以最短的基因序列的长度8,则得到一个一维互相关向量。
根据本发明的一个实施例,欧氏距离计算模块163基于计算出的所有互相关向量计算其中每两个互相关向量之间的欧式距离。其中,欧式距离越小代表两个互相关向量对应的基因序列数据的相似性越高。
优选的,计算互相关向量两两之间的欧式距离的计算公式为:
其中,X,Y指两个向量,Cx(i)指X向量中的元素,Cy(i)指Y向量中的元素。i是序号,取值从0到4。假设有三个序列,其中一个为最短序列,三个序列分别与最短序列进行互相关计算,则得到三个互相关向量。 Cx(i)和Cy(i)则从这3个向量中取值。比如,假设有x、y、z三个序列,其中z是最短序列,则计算互相关向量时就是分别基于xz、yz和zz 这三种组合算出来的三个互相关向量,基于组合xz和yz计算出来两个互相关向量来计算x序列和y序列的欧式距离;基于组合xz和zz计算出来的两个互相关向量来计算x序列和z序列的欧氏距离;基于组合yz和zz 计算出来的两个互相关向量来计算y序列和z序列的欧氏距离。
优选的,欧氏距离计算模块163基于计算出的所有互相关向量计算其中每两个互相关向量之间的欧式距离可以是通过以下方式:
分别对应计算两个互相关向量的每一维互相关向量之差的平方;
对这两个互相关向量的所有维互相关向量之差的平方求和,得到其平方和;
对这两个互相关向量的所有维互相关向量之差的平方和进行开方,得到这两个互相关向量的欧式距离;和/或
针对每两个互相关向量分别计算欧式距离,直至完成对所有互相关向量的欧式距离的计算。
图6为根据本发明的一个示例的用于基因相似性分析的加速装置中计算欧式距离的过程示意图。根据本发明的一个示例,第一互相关向量为 X={Cx(0),Cx(1),Cx(2),Cx(3),Cx(4)},第二互相关向量为 Y={Cy(0),Cy(1),Cy(2),Cy(3),Cy(4)}。Cx(0)~Cx(4)分别表示第一互相关向量包含的一维至五维互相关向量。在步骤S231中,计算Cx(0)与Cy(0)相减的差值的平方、Cx(1)与Cy(1)相减的差值的平方、Cx(2)与Cy(2)相减的差值的平方、Cx(3)与Cy(3)相减的差值的平方、Cx(4)与Cy(4)相减的差值的平方。在步骤S232中,对步骤S231所有差值的平方求和。在步骤S233 中,对步骤S232中求和结果开平方,得到这两个互相关向量的欧式距离。在步骤S234中,返回步骤S231,针对其他还未计算两两之间的欧式距离的其他互相关向量计算欧氏距离,直至完成对所有互相关向量的欧式距离的计算。
根据本发明的一个示例,对于欧式距离越小基因相似性越高,为了更形象地展示,举例来说:
AIMV-3病毒的RNA序列为:
AUGCUCAUGCAAAACUGCAUGAAUGCCCCUAAGGGAUGC
CiLRV-3病毒的RNA序列为:
AUGCCUAUAUUUUCUCUCCUGAGAAAAUAUAGAUGCCUCCAAAGGAGAUGC
APMV-3病毒的RNA序列为:
AAUGCCCACAACGUGAAGUUGUGGAUGCCCCGUUAGGGAAGC。
经过本发明的非比对算法的计算,AIMV-3与CiLRV-3的欧氏距离为 51.2248,AIMV-3与APMV-3的欧氏距离为27.5925。从欧氏距离上看出, APMV-3与AIMV-3距离更小,而直观从RNA序列上也能看出,APMV-3与 AIMV-3两个序列更为相似。
根据本发明的一个实施例,公开了一种用于基因相似性分析的加速方法,包括:步骤S100、接收主机分发的待加速处理的任务,每个任务包含待进行基因相似性分析的多个基因序列数据;和/或步骤S200、基于数据驱动的流式计算模式处理任务,采用多个相互独立的完整流水线并行处理任务,并在每个流水线中采用多个低位宽的定点计算部件对任务进行加速处理。每个流水线进行加速处理可以包括:步骤S210、对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据;步骤S220、基于十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量;和/或步骤S230、基于所有互相关向量计算其中每两个互相关向量之间的欧式距离。该实施例中各步骤与上述用于基因相似性分析的加速装置的实施例中各模块的功能相对应。对于本发明***实施例中未披露的细节,请参照本发明上述的用于基因相似性分析的加速装置的实施例。
根据本发明的另一个优选实施方式,应当注意的是,在本发明保护范围内,根据不同的理解方式,本发明的方法步骤S200可以被拆分为更细的步骤。以图7为例,图7为根据本发明的一个实施例的用于基因相似性分析的加速方法的流程示意图。本发明的步骤S200可以包括以下步骤的一个或多个:
步骤S201、从任务缓存单元170读入多个基因的字符串序列;
步骤S202、将基因字符串序列转换为四进制基因序列数据;
步骤S203、通过将每两个相邻的四进制的基因序列数据转换为一个十进制数的方式,将四进制基因序列数据转换为十进制的基因序列数据;
步骤S204、通过互相关函数计算表示每两个十进制的基因序列的相关性的互相关向量;
步骤S204、计算每两个互相关向量之间的欧氏距离;
步骤S206、得到基因序列的相似性结果,该结果中以两个互相关向量之间的欧氏距离表示对应的两个基因序列之间的相似性。
根据本发明的一个实施例,公开了一种用于基因相似性分析的计算机设备,包括存储器;主机;和/或前述实施例所述的加速装置。该实施例中的加速装置与上述用于基因相似性分析的加速装置的实施例的相对应,因此对于本发明***实施例中未披露的细节,请参照本发明上述的用于基因相似性分析的加速装置的实施例。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种用于基因相似性分析的加速装置,其特征在于,包括:
高速通信接口,用于与主机通信,接收主机分发的待加速处理的任务;
序列缓存模块,用于缓存来自主机的一个或者多个任务,每个任务包含待进行基因相似性分析的多个基因序列数据;
阵列处理机,其上设有至少一个用于处理任务的处理单元,每个所述处理单元中设有基于数据驱动的流式计算模式处理任务的完整流水线,所述流水线中配置有处理任务所需的多个定点计算部件,所述处理单元被配置为多级流水线结构,其至少包括一级、二级和三级流水线,其中,所述一级流水线中配置有多个序列预处理模块,用于对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据;所述二级流水线中配置有多个互相关计算模块,用于基于一级流水线处理得到的十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量;所述三级流水线中配置有多个欧式距离计算模块,用于基于二级流水线计算出的所有互相关向量计算其中每两个互相关向量之间的欧式距离;
控制模块,其被配置为用于将序列缓存模块中的待处理任务分配给处理单元;
任务缓存模块,其上设置有任务缓存单元,用于缓存分配给处理单元的待处理任务。
2.根据权利要求1所述的一种用于基因相似性分析的加速装置,其特征在于,所述多级流水线结构用于并行执行任务,所述多级流水线结构中设置低位宽的定点计算部件;所述多级流水线结构中低位宽的定点计算部件的设置数量多于主机的处理器中的定点计算部件的数量。
3.根据权利要求1所述的一种用于基因相似性分析的加速装置,其特征在于,
所述阵列处理机包括用于并行处理任务的多个处理单元,所述任务缓存模块包括多个任务缓存单元,每个处理单元独立配有一个其专属的任务缓存单元;
所述控制模块被配置为监控各处理单元处理任务的情况,在监控到相应的处理单元当前的任务处于将要被完成执行的状态之时,将所述序列缓存模块中待处理的任务分配给该处理单元并预先发送至该处理单元专属的任务缓存单元。
4.根据权利要求3所述的一种用于基因相似性分析的加速装置,其特征在于,所述控制模块被配置为通过分析各处理单元专属的任务缓存单元内的待读取的数据量来对各处理单元执行任务的情况进行监控,其中,在相应的任务缓存单元内的待读取的数据占任务缓存单元容量的百分比占比降低到预设阈值时判定其所属的处理单元当前的任务处于将要被完成执行的状态。
5.根据权利要求4所述的一种用于基因相似性分析的加速装置,其特征在于,所述预设阈值的取值范围为10%~30%。
6.根据权利要求4所述的一种用于基因相似性分析的加速装置,其特征在于,所述控制模块被配置为在监控到相应的处理单元当前的任务处于将要被完成执行的状态之时,从所述序列缓存模块内剩余的所有待处理任务中随机选出一个或者多个待处理任务分配给该处理单元。
7.根据权利要求3至6任一项所述的一种用于基因相似性分析的加速装置,其特征在于,所述序列缓存模块和/或所述控制模块通过片上网络连接到阵列处理机,所述阵列处理机中的多个处理单元彼此之间通过片上网络以Mesh结构的形式互相连接。
8.根据权利要求1至6任一项所述的一种用于基因相似性分析的加速装置,其特征在于,所述加速装置还包括结果缓存模块,所述结果缓存模块通过片上网络连接到控制模块和阵列处理机,用于缓存经阵列处理机处理任务得到的基因相似性分析的分析结果。
9.根据权利要求8所述的一种用于基因相似性分析的加速装置,其特征在于,所述序列缓存模块、任务缓存单元和结果缓存模块均采用程序可见的存储器,其中所述程序可见的存储器是指和主存统一编址的存储器。
10.一种基于如权利要求1至9任一所述的用于基因相似性分析的加速装置的加速方法,包括:
S100、接收主机分发的待加速处理的任务,每个任务包含待进行基因相似性分析的多个基因序列数据;
S200、基于数据驱动的流式计算模式处理任务,采用多个相互独立的完整流水线并行处理任务,并在每个流水线中采用多个低位宽的定点计算部件对任务进行加速处理,其中每个流水线进行加速处理包括:
S210、对任务中的基因序列数据进行预处理得到以更少位数表示的各基因序列的十进制序列数据;
S220、基于十进制序列数据计算每个基因序列与该任务中最短的基因序列的互相关向量;
S230、基于所有互相关向量计算其中每两个互相关向量之间的欧式距离。
11.一种用于基因相似性分析的计算机设备,其特征在于,包括:
存储器;
主机;以及,
如权利要求1至9任一项所述的加速装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911191604.8A CN110990063B (zh) | 2019-11-28 | 2019-11-28 | 一种用于基因相似性分析的加速装置、方法和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911191604.8A CN110990063B (zh) | 2019-11-28 | 2019-11-28 | 一种用于基因相似性分析的加速装置、方法和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990063A CN110990063A (zh) | 2020-04-10 |
CN110990063B true CN110990063B (zh) | 2021-11-23 |
Family
ID=70088014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911191604.8A Active CN110990063B (zh) | 2019-11-28 | 2019-11-28 | 一种用于基因相似性分析的加速装置、方法和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990063B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867793A (zh) * | 2020-06-30 | 2021-12-31 | 上海寒武纪信息科技有限公司 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
CN113254104B (zh) * | 2021-06-07 | 2022-06-21 | 中科计算技术西部研究院 | 一种用于基因分析的加速器及加速方法 |
CN113268270B (zh) * | 2021-06-07 | 2022-10-21 | 中科计算技术西部研究院 | 一种针对成对隐马尔可夫模型的加速方法、***及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375807A (zh) * | 2014-12-09 | 2015-02-25 | 中国人民解放军国防科学技术大学 | 基于众核协处理器的三级流水序列比对方法 |
CN110427262A (zh) * | 2019-09-26 | 2019-11-08 | 深圳华大基因科技服务有限公司 | 一种基因数据分析方法及异构调度平台 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060293859A1 (en) * | 2005-04-13 | 2006-12-28 | Venture Gain L.L.C. | Analysis of transcriptomic data using similarity based modeling |
CN104735003B (zh) * | 2013-12-24 | 2019-05-31 | 锐迪科(重庆)微电子科技有限公司 | 欧式距离计算方法、模块和多输入多输出译码装置 |
CN105631239B (zh) * | 2014-10-30 | 2018-08-17 | 国际商业机器公司 | 用于管理基因序列的方法和装置 |
CN104375963B (zh) * | 2014-11-28 | 2019-03-15 | 上海兆芯集成电路有限公司 | 基于缓存一致性的控制***和方法 |
CN104951673B (zh) * | 2015-06-19 | 2018-03-30 | 中国科学院计算技术研究所 | 一种基因组酶切图谱拼接方法及*** |
BR112018075407A2 (pt) * | 2016-06-07 | 2019-03-19 | Illumina, Inc. | plataforma de análise genômica para executar uma segmentação de análise de sequência |
CN107273209B (zh) * | 2017-06-09 | 2020-11-03 | 北京工业大学 | 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法 |
CN109698010A (zh) * | 2017-10-23 | 2019-04-30 | 北京哲源科技有限责任公司 | 一种针对基因数据的处理方法 |
US11244761B2 (en) * | 2017-11-17 | 2022-02-08 | Accenture Global Solutions Limited | Accelerated clinical biomarker prediction (ACBP) platform |
CN109785905B (zh) * | 2018-12-18 | 2021-07-23 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
CN110188129A (zh) * | 2019-05-31 | 2019-08-30 | 北京旷视科技有限公司 | 人证核验终端的数据处理方法、装置、***、设备及介质 |
-
2019
- 2019-11-28 CN CN201911191604.8A patent/CN110990063B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375807A (zh) * | 2014-12-09 | 2015-02-25 | 中国人民解放军国防科学技术大学 | 基于众核协处理器的三级流水序列比对方法 |
CN110427262A (zh) * | 2019-09-26 | 2019-11-08 | 深圳华大基因科技服务有限公司 | 一种基因数据分析方法及异构调度平台 |
Non-Patent Citations (1)
Title |
---|
FPGA implementation of K-means algorithm for bioinformatics application: An accelerated approach to clustering Microarray data;Hanaa M. Hussain .etc;《2011 NASA/ESA Conference on Adaptive Hardware and Systems (AHS)》;20110729;1-8 * |
Also Published As
Publication number | Publication date |
---|---|
CN110990063A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990063B (zh) | 一种用于基因相似性分析的加速装置、方法和计算机设备 | |
Zachariadis et al. | Accelerating sparse matrix–matrix multiplication with GPU Tensor Cores | |
Ren et al. | FPGA acceleration of the pair-HMMs forward algorithm for DNA sequence analysis | |
EP2657842B1 (en) | Workload optimization in a multi-processor system executing sparse-matrix vector multiplication | |
Bošnački et al. | Parallel probabilistic model checking on general purpose graphics processors | |
JP7292297B2 (ja) | 確率的丸めロジック | |
CN104254833A (zh) | 基于向量和标量的模取幂 | |
KR20160141675A (ko) | 고효율 부정확 컴퓨팅 스토리지 장치 | |
US20210357732A1 (en) | Neural network accelerator hardware-specific division of inference into groups of layers | |
WO2023029464A1 (zh) | 数据处理装置、方法、芯片、计算机设备及存储介质 | |
Sun et al. | An I/O bandwidth-sensitive sparse matrix-vector multiplication engine on FPGAs | |
Saavedra et al. | Mining discriminative k-mers in DNA sequences using sketches and hardware acceleration | |
JP4477959B2 (ja) | ブロードキャスト型並列処理のための演算処理装置 | |
Soto et al. | JACC-FPGA: A hardware accelerator for Jaccard similarity estimation using FPGAs in the cloud | |
CN109032667B (zh) | 一种分子动力学模拟中邻接表快速建立方法和*** | |
CN111931441B (zh) | Fpga快速进位链时序模型的建立方法、装置以及介质 | |
Chang et al. | FPGA-based Heterogeneous Architecture for Sequence Alignment | |
CN112395548A (zh) | 通过指令用于动态编程的处理器及配置该处理器的方法 | |
CN116842304A (zh) | 一种不规则稀疏矩阵的计算方法及*** | |
CN116092587A (zh) | 一种基于生产者-消费者模型的生物序列分析***及方法 | |
Anderson et al. | An FPGA-based hardware accelerator supporting sensitive sequence homology filtering with profile hidden Markov models | |
CN115729554A (zh) | 一种形式化验证约束求解的方法及相关设备 | |
CN116502028B (zh) | 基于浮点数压缩技术的大规模fft实现方法及装置 | |
Ren et al. | GPU-accelerated GATK haplotypecaller with load-balanced multi-process optimization | |
CN112596912B (zh) | 二值或三值神经网络卷积计算的加速运算方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |