CN113268269A - 一种针对动态规划算法的加速方法、系统及装置 - Google Patents
一种针对动态规划算法的加速方法、系统及装置 Download PDFInfo
- Publication number
- CN113268269A CN113268269A CN202110632421.6A CN202110632421A CN113268269A CN 113268269 A CN113268269 A CN 113268269A CN 202110632421 A CN202110632421 A CN 202110632421A CN 113268269 A CN113268269 A CN 113268269A
- Authority
- CN
- China
- Prior art keywords
- instruction
- module
- data
- dynamic programming
- accelerator
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000001133 acceleration Effects 0.000 title claims description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 68
- 238000004458 analytical method Methods 0.000 claims abstract description 56
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 12
- 108090000623 proteins and genes Proteins 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000003759 clinical diagnosis Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000012252 genetic analysis Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G16B5/00—ICT specially adapted for modelling or simulations in systems biology, e.g. gene-regulatory networks, protein interaction networks or metabolic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Physiology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及基因分析技术领域,具体公开了一种针对动态规划算法的加速方法、系统及装置,装置包括通用计算模块、指令解析模块和加速器阵列模块;通用计算模块,用于对动态规划算法的指令集进行拆分,将指令集中特定的指令信息分发至指令解析模块;指令信息包括数据指令、参数指令和计算指令中的一种或多种;指令解析模块用于对指令信息进行解析,将解析的结果分发至加速器阵列模块;加速器阵列模块用于根据解析的结果执行动态规划计算。采用本发明的技术方案能够降低交互损耗。
Description
技术领域
本发明涉及基因分析技术领域,特别涉及一种针对动态规划算法的加速方法、系统及装置。
背景技术
基因分析技术作为探索生命奥秘的重要手段,正成为生物信息学研究的重要分支,在物种鉴别、基因检测、疾病诊断等方面有着广泛的应用,基因分析技术的飞速发展为精准医疗奠定了坚实的基础,也使得临床诊断前景更加光明。近年来,随着第二代测序技术的高速发展,测序成本的下降速率已经远远超过摩尔定律的下降速率,呈爆炸式增长的基因数据量对现有处理器的处理能力提出了新的挑战。动态规划算法作为基因分析流程中必不可少且相当耗时的一个步骤,在初步比对、插入缺失重校验、变异体检测等流程均占据了不小的执行时间占比。动态规划算法的执行效率已经成为目前基因分析流程一个重要的性能瓶颈。
现有进行动态规划计算的独立加速器和通用处理器之间通常采用PCIe和SerDes等接口,PCIe和SerDes的接口以及总线的带宽远低于访存设备的带宽,这成为了独立加速器和通用处理器之间交互的瓶颈,导致交互损耗高。
综上所述,需要一种能降低基因分析中的动态规划算法交互损耗的加速方法、系统及装置。
发明内容
本发明的目的之一是提供一种针对动态规划算法的加速方法,能够降低交互损耗。
为了解决上述技术问题,本申请提供如下技术方案:
一种针对动态规划算法的加速装置,包括通用计算模块、指令解析模块和加速器阵列模块;
通用计算模块,用于对动态规划算法的指令集进行拆分,将指令集中特定的指令信息分发至指令解析模块;指令信息包括数据指令、参数指令和计算指令中的一种或多种;
指令解析模块用于对指令信息进行解析,将解析的结果分发至加速器阵列模块;
加速器阵列模块用于根据解析的结果执行动态规划计算。
基础方案原理及有益效果如下:
现有技术中,加速器与通用处理器之间通过总线连接,加速器与通用处理器之间的带宽受接口以及总线的影响大,带宽无法满足加速器与通用处理器之间的数据传输需求,导致交互损耗高。
本方案中,通过引入特定的指令信息,可以针对加速器的指令进行定制形成自定义指令即数据指令、参数指令和计算指令中的一种或多种。通过设置通用计算模块可以将指令集中特定的指令信息拆分出来,由指令解析模块进行解析,可以将加速器阵列模块执行动态规划计算需要的数据、参数等进行提前配置,加速器阵列模块在此基础上直接调用计算,效率更高。
综上,本方案摆脱了现有的接口以及总线造成的交互过程中的带宽瓶颈,使通用计算模块与加速器阵列模块直接通过指令信息来进行交互,降低了交互损耗。而且,通过自定义指令既可以高效地进行批量指令运算,针对不同的类型的任务,只需要单独调整对应的自定义指令,无需对指令集进行整体调整,简化了指令集设计的复杂性。数据指令、参数指令和计算指令区分明确,针对性强,便于对加速器阵列模块实现精确的调度。
进一步,所述指令解析模块包括指令仲裁器、指令缓冲队列、指令解析单元和加速器仲裁器;
指令缓冲队列和指令解析单元的数量有若干个,且指令缓冲队列和指令解析单元一一对应;
指令缓冲队列分别与指令仲裁器与指令解析单元连接,指令解析单元还与加速器仲裁器连接,加速器仲裁器还与加速器阵列模块连接;
指令仲裁器用于从通用计算模块接收指令信息,为指令信息选择指令缓存队列;
指令缓冲队列用于对指令信息进行缓冲,将指令信息分发至对应的指令解析单元;
指令解析单元用于对指令信息进行解析;
加速器仲裁器用于异步地将指令解析单元解析的结果分发至加速器阵列模块。
指令解析模块中指令缓冲队列和指令解析单元的数量有若干个,可以并行处理指令信息,实现了高并行的特性。整体上设置指令解析模块作为通用计算模块与加速器阵列模块的交互接口,设置使得通用计算模块可以非阻塞式地向加速器阵列模块发送指令信息,达到支持批量的指令运算的目的。
进一步,还包括存储模块,存储模块用于为通用计算模块和加速器阵列模块提供计算的数据。
通过存储模块统一为通用计算模块和加速器阵列模块提供计算的数据,可以降低交互损耗。
进一步,所述计算的数据包括参考序列,读段序列,结果序列。
进一步,所述数据指令用于配置加速器阵列模块计算的数据地址,单个数据大小和数据总长度;
参数指令用于配置加速器阵列模块动态规划计算的参数;
计算指令用于在数据准备完成后,启动加速器阵列模块对数据执行动态规划计算,将计算结果写回数据指令配置的数据地址。
指令信息对动态规划过程需要的指令类型进行了区分,形成了数据指令、参数指令和计算指令,既可以高效地进行批量指令运算,也简化了指令集设计的复杂性。
进一步,所述加速器阵列模块包括粒度配置模块和m个计算单元,粒度配置模块用于将n个计算单元整合为加速器,其中n小于或等于m。
本方案中,粒度配置模块将n个计算单元整合为加速器,实现了粗细粒度的调整,使得加速器进行基因的动态规划计算时,可以对不同长度的读段序列进行计算,而且单个计算单元可以有效地利用动态规划算法中数据重用性的特点,可以有效缩短运算的时间。
进一步,所述计算单元包括数据选择器、字符比较模块、结果暂存队列、回溯逻辑模块和数据缓存队列;
字符比较模块和结果暂存队列的数量有若干个,且字符比较模块与结果暂存队列一一对应;
数据选择器用于接收输入的参考序列和数据缓存队列中的上一轮计算完成的对比序列;进行数据选择;
字符比较模块用于将读段序列与数据选择器输入的参考序列或对比序列进行比较,将比较结果存储在结果暂存队列中;
回溯逻辑模块用于提取结果暂存队列中的比较结果进行动态规划的反向回溯,得到比对序列,将对比序列存储在数据缓存队列中。
字符比较模块将读段序列与对比序列进行比较,有效地利用了动态规划算法中数据重用性的特点。
进一步,所述粒度配置模块整合的每个加速器的大小为:
kernel_size/(read_length+edit_distance)
其中kernel_size为单个计算单元支持的数据计算长度,read_length为当前的读段序列长度,edit_distance为允许的最长的编辑距离。
使得加速器支持的数据计算长度与当前的读段序列长度相匹配,可以提高计算速度,缩短计算的时间。
进一步,所述指令仲裁器为指令信息选择指令缓存队列时,选择拥塞度最低的指令缓存队列。
可以间接提高指令解析的速度。
进一步,所述指令缓冲队列在对应指令解析单元完成上一条指令信息的解析后,将本条分发至对应的指令解析单元。
本发明的目的之二是提供一种针对动态规划算法的加速系统,使用上述针对动态规划算法的装置。
本发明的目的之三是提供一种针对动态规划算法的加速方法,使用上述针对动态规划算法的装置,还包括如下步骤:
对动态规划算法的指令集进行拆分,分发指令集中特定的指令信息;指令信息包括数据指令、参数指令和计算指令中的一种或多种;
对指令信息进行解析,分发解析后的指令信息;
根据指令信息控制加速器阵列模块执行动态规划计算。
附图说明
图1为实施例一针对动态规划算法的加速装置的逻辑框图;
图2为实施例一针对动态规划算法的加速装置中指令解析模块的逻辑框图;
图3为实施例一针对动态规划算法的加速装置中加速器阵列模块的逻辑框图;
图4为实施例一针对动态规划算法的加速装置中计算单元的逻辑框图;
图5为实施例一中动态规划算法的示意图;
图6为实施例二中的硬件结构图;
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例一
如图1所示,本实施例的一种针对动态规划算法的装置,包括通用计算模块,指令解析模块,加速器阵列模块和存储模块。
通用计算模块为整个系统的控制核心,用于执行非加速器阵列模块执行的算法部分,还用于对动态规划算法的指令集进行拆分将需要加速器阵列模块执行的指令信息分发至指令解析模块。本实施例中,指令集采用RISC-V指令集(精简指令集)。
指令解析模块用于为通用计算模块和加速器阵列模块提供交互。为了能完成高效的交互,本实施例中,指令解析模块还用于指令信息并行接收,指令信息并行解析等。
加速器阵列模块为此系统的核心加速部件,用于根据解析的结果完成对特定算法的加速,本实施例中特定算法为动态规划算法。为了能达到高性能和高通量的计算,本实施例中,加速器阵列模块还具备指令信息并行接收,加速器阵列模块仲裁,动态规划算法加速,计算粒度支持等功能。
存储模块用于为通用计算模块和加速器阵列模块提供计算的数据以及动态规划计算的参数。计算的数据包括参考序列,读段序列,结果序列。
整体上完成数据存储和数据供应的作用,存储模块可以采用但不限于DDR、HBM、HMC、NVM等存储器件。
如图2所示,具体的,指令解析模块包括指令仲裁器、指令缓冲队列、指令解析单元和加速器仲裁器。
指令缓冲队列和指令解析单元的数量各有若干个,且指令缓冲队列和指令解析单元一一对应,本实施例中为各5个。
指令缓冲队列分别与指令仲裁器与指令解析单元连接,指令解析单元还与加速器仲裁器连接,加速器仲裁器还与加速器阵列模块连接。
指令仲裁器用于从通用计算模块接收指令信息,为指令信息选择指令缓存队列。本实施例中,选择的指标为指令缓存队列的拥塞程度,即选择拥塞度最低的指令缓存队列。
指令缓冲队列用于对指令信息进行缓冲,并将指令信息分发至对应的指令解析单元。由于指令解析单元对指令信息的解析需要时间,本实施例中,如果当前指令信息解析完成即可进行对指令缓冲队列中的下一个指令信息进行解析,如果当前指令解析未完成,则等待,此时下一条指令信息将继续在指令缓冲队列里。
指令解析单元是指令解析模块设计的核心部分。指令解析单元用于对指令信息进行解析,具体的,指令解析单元用于处理通用计算模块发送至加速器阵列模块的指令信息的第一预设片段,本实施例中,第一预设片段包括rs1和rs2和Instruction。
还用于处理加速器阵列模块发送至通用计算模块的指令信息的第二预设片段,本实施例中,第二预设片段包括rd,在其他实施例中还可以包括data。
还用于处理加速器阵列模块向通用计算模块发送的缓存信息。本实施例中,缓存信息包括用于动态规划算法的输入序列(本实施例中为两个,即参考序列和对比序列),以及用于动态规划计算的参数。
加速器仲裁器为指令解析单元和加速器阵列模块的交互端口,用于异步地将指令解析单元的解析结果分发至加速器阵列模块,加速器阵列模块用于根据解析结果进行动态规划计算;加速器仲裁器还用于异步读取加速器阵列模块计算完成的数据。
指令信息包括数据指令、参数指令和计算指令中的一种或多种,本实施例中包括上述全部。在其他实施例中,还可以包括辅助指令。
数据指令,用于配置加速器阵列模块计算需要的数据地址,单个数据大小和数据总长度,其调用次数取决于计算需要哪几类数据。
参数指令,用于配置加速器阵列模块动态规划计算的参数,通常只调用一次。
计算指令,用于在数据准备完成后,启动加速器阵列模块对数据执行动态规划计算,并兼顾将计算结果写回数据指令配置的数据地址。
辅助指令,用于检测加速器阵列模块的行为,例如判断当前加速器是否计算完成等。
如图3所示,加速器阵列模块包括粒度配置模块、输入缓存序列、输入缓冲序列和m个计算单元。m个计算单元组成矩形阵列,本实施例中,计算单元的数量为9个,组成3x3的矩形阵列,具体为脉动阵列。
输入缓存序列用于存储读段序列、输入缓冲序列用于存储参考序列。
如图4所示,计算单元包括数据选择器、字符比较模块、结果暂存队列、回溯逻辑模块和数据缓存队列。
字符比较模块有若干个,结果暂存队列的数量与字符比较模块的数量一致,且与字符比较模块一一对应。
数据选择器用于接收输入的参考序列和数据缓存队列中的上一轮计算完成的对比序列;进行数据选择;本实施例中,数据选择根据字符比较模块的需求确定,换句话说字符比较模块需要的计算数据是上一轮的比对序列还是输入的参考序列。
字符比较模块为核心的计算模块,字符比较模块用于将读段序列与数据选择器输入的参考序列或对比序列进行比较,将比较结果存储在结果暂存队列中。例如本实施例中的四个字符比较模块会完成读段序列中的四个数据的比较计算。也就是说,每一轮迭代都会比较计算四个数据,若干次比较计算直至读段序列全部完成。
当完成读段序列与参考序列或对比序列的比较计算后,回溯逻辑模块用于提取结果暂存队列中的比较结果来进行动态规划的反向回溯,得到比对序列,将对比序列存储在数据缓存队列中,供下一轮计算使用。
粒度配置模块用于将n个计算单元整合为加速器,实现对阵列的粒度进行配置,其中n小于或等于m。由于读段序列的长度因测序技术和公司而各不相同,单一的计算单元无法对不同长度的读段序列进行计算,将多个小的计算单元整合为加速器可以完成更长读段序列的计算。
如图5所示的基因分析领域广泛采用的动态规划算法:史密斯-沃特曼(Smith-Waterman)算法,该算法可以分为两步:
根据置换矩阵等参数来对序列GGTTGACTA和TGTTACGG进行前向运算过程,计算得分矩阵,即图中的Matrix Fill阶段;
从最高得分点进行反向回溯的过程,并得到序列的最优局部匹配情况,即GTT-AC匹配GTTGAC。
故,基于本实施例的加速装置进行基因分析时,包括如下步骤:
(1)读取参考序列,读取读段序列,读取动态规划过程需要的参数;
(2)执行动态规划算法的前向运算和反向回溯阶段;
(3)读取计算完成的数据。
本实施例还提供一种针对动态规划算法的加速系统,使用上述针对动态规划算法的装置。
本实施例还提供一种针对动态规划算法的加速方法,使用上述针对动态规划算法的装置,还包括如下步骤:
对动态规划算法的指令集进行拆分,分发指令集中特定的指令信息;指令信息包括数据指令、参数指令和计算指令中的一种或多种;
对指令信息进行解析,分发解析后的指令信息;
根据指令信息控制加速器阵列模块执行动态规划计算。
现有技术中的缺陷是当前的加速手段无法兼顾高并行、计算特征匹配、高主频和交互损耗低四个特性,而这四个特性均会对计算性能产生较大影响,ASIC设计可以兼顾高并行、计算特征匹配和高主频三个特性,本方案可以基于ASIC实现,达到兼顾高并行、计算特征匹配和高主频三个特性的目的。相比于现有技术,本实施例方案效果还包括:
1)考虑到当下成熟的基因分析软件包远不止动态规划这一算法,受制于它们不是计算密集型任务,无法通过传统的加速器提供加速效果。本实施例的加速装置不仅保证了对动态规划算法进行有效的加速,通过加入通用计算模块,对非动态规划算法等程序部分也提供了支持。
2)指令解析模块的设置使得通用计算模块可以非阻塞式地向加速器阵列模块发送指令信息,这样支持批量的指令运算。
3)针对动态规划加速器的指令进行定制形成指令信息,指令信息对动态规划过程需要的指令类型进行了区分,既可以高效地进行批量指令运算,也简化了指令集设计的复杂性。
4)加速器阵列模块中,单个计算单元有效地利用了数据重用性,使得可以短时间内完成运算。粗细粒度的加速器阵列设计使得可以对不同长度的读段序列进行计算。
实施例二
如图6所示的硬件结构图,本实施例包括处理器和主存,处理器包括处理器核心、交互接口、动态规划加速器阵列、一级指令缓存、一级数据缓存、二级缓存、rs2寄存器、rs1寄存器和rd寄存器。
本实施例中通用计算模块为其中的处理器核心,加速器阵列模块为动态规划加速器阵列,指令解析模块为交互接口。存储模块包括主存、一级指令缓存、一级数据缓存、二级缓存、rs2寄存器、rs1寄存器和rd寄存器。
交互接口用于处理器核心和动态规划加速器阵列之间的通信,处理器核心可以通过交互接口向动态规划加速器阵列发送指令信息和接收计算完成的数据。本实施例中,动态规划加速器阵列使用RTL语言进行设计,用户可以调用其中的加速器来进行动态规划计算,每个加速器可以并行进行计算。
本实施例中,具体使用RISC-V支持的RoCC协议,以及RISC-V支持的指令信息,即自定义指令进行控制和数据交互。
本实施例中,对指令信息的格式给出如下定义:funct功能码三位从低位到高位用作xs2、xs1和xd标志位,指示是否使用rs2寄存器、rs1寄存器的值以及是否在指令结束后写回rd寄存器。
本实施例中指令信息的具体定义:dp_set_addr、dp_set_size和dp_set_length为数据指令,dp_set_para为参数指令,dp_start为计算指令,dp_finish为辅助指令。
dp_set_addr、dp_finish等指令都是Instruction字段,即Instruction字段字段用以指定具体为哪一个指令。
各指令在指令信息格式下的详细信息如下表所示:
编号 | 指令名称 | funct7 | rs1 | rs2 | rd |
1 | dp_set_addr | 0 | 输入数据类别 | 输入数据地址 | - |
2 | dp_set_size | 1 | 输入数据类别 | 单个输入数据大小 | |
3 | dp_set_length | 2 | 输入数据类别 | 输入数据个数 | |
4 | dp_set_para | 3 | 输入数据类别 | 输入数据参数 | |
5 | dp_start | 4 | - | - | - |
6 | dp_finish | 5 | - | - | 输出数据地址 |
表中输入数据类别为参考序列,读段序列和结果序列三类。
表中,dp_set_addr;此指令每次动态规划过程调用三次,用于设置参考序列,读段序列,结果序列的内存地址。
dp_set_size;此指令每次动态规划过程调用三次,用于设置参考序列,读段序列,结果序列的每个ACGT的字符大小。
dp_set_length;此指令每次动态规划过程调用三次,用于设置参考序列,读段序列,结果序列的字符串长度。
dp_set_para;此指令每次动态规划过程调用一次,用于配置动态规划计算的参数,如置换矩阵,空位罚分,边带大小,drop大小等。标准的置换矩阵为4×4的二维数组,这里按行展开成一维数据。空位罚分,边带大小,drop大小数值拼接在一维置换矩阵之后。
dp_start;此指令每次动态规划过程调用一次,用于指定加速器的id并开始计算过程。因为对粒度提供了支持,这里每个加速器的大小为kernel_size/(read_length+edit_distance),其中kernel_size为单个计算单元支持的数据计算长度,read_length为当前的读段序列长度,edit_distance为允许的最长的编辑距离。
dp_finish;此指令为辅助指令,用于判断对应id的加速器是否完成计算,如果完成计算,则表示结果地址的数据可用。
以上的仅是本发明的实施例,该发明不限于此实施案例涉及的领域,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (10)
1.一种针对动态规划算法的加速装置,其特征在于,包括通用计算模块、指令解析模块和加速器阵列模块;
通用计算模块,用于对动态规划算法的指令集进行拆分,将指令集中特定的指令信息分发至指令解析模块;指令信息包括数据指令、参数指令和计算指令中的一种或多种;
指令解析模块用于对指令信息进行解析,将解析的结果分发至加速器阵列模块;
加速器阵列模块用于根据解析的结果执行动态规划计算。
2.根据权利要求1所述的针对动态规划算法的加速装置,其特征在于:所述指令解析模块包括指令仲裁器、指令缓冲队列、指令解析单元和加速器仲裁器;
指令缓冲队列和指令解析单元的数量有若干个,且指令缓冲队列和指令解析单元一一对应;
指令缓冲队列分别与指令仲裁器与指令解析单元连接,指令解析单元还与加速器仲裁器连接,加速器仲裁器还与加速器阵列模块连接;
指令仲裁器用于从通用计算模块接收指令信息,为指令信息选择指令缓存队列;
指令缓冲队列用于对指令信息进行缓冲,将指令信息分发至对应的指令解析单元;
指令解析单元用于对指令信息进行解析;
加速器仲裁器用于异步地将指令解析单元解析的结果分发至加速器阵列模块。
3.根据权利要求2所述的针对动态规划算法的装置,其特征在于:还包括存储模块,存储模块用于为通用计算模块和加速器阵列模块提供计算的数据。
4.根据权利要求3所述的针对动态规划算法的加速装置,其特征在于:所述计算的数据包括参考序列,读段序列和结果序列。
5.根据权利要求1所述的针对动态规划算法的加速装置,其特征在于:所述数据指令用于配置加速器阵列模块计算的数据地址,单个数据大小和数据总长度;
参数指令用于配置加速器阵列模块动态规划计算的参数;
计算指令用于在数据准备完成后,启动加速器阵列模块对数据执行动态规划计算,将计算结果写回数据指令配置的数据地址。
6.根据权利要求4所述的针对动态规划算法的加速装置,其特征在于:所述加速器阵列模块包括粒度配置模块和m个计算单元,粒度配置模块用于将n个计算单元整合为加速器,其中n小于或等于m。
7.根据权利要求6所述的针对动态规划算法的加速装置,其特征在于:所述计算单元包括数据选择器、字符比较模块、结果暂存队列、回溯逻辑模块和数据缓存队列;
字符比较模块和结果暂存队列的数量有若干个,且字符比较模块与结果暂存队列一一对应;
数据选择器用于接收输入的参考序列和数据缓存队列中的上一轮计算完成的对比序列;进行数据选择;
字符比较模块用于将读段序列与数据选择器输入的参考序列或对比序列进行比较,将比较结果存储在结果暂存队列中;
回溯逻辑模块用于提取结果暂存队列中的比较结果进行动态规划的反向回溯,得到比对序列,将对比序列存储在数据缓存队列中。
8.根据权利要求6所述的针对动态规划算法的加速装置,其特征在于:所述粒度配置模块整合的每个加速器的大小为:
kernel_size/(read_length+edit_distance)
其中kernel_size为单个计算单元支持的数据计算长度,read_length为当前的读段序列长度,edit_distance为允许的最长的编辑距离。
9.一种针对动态规划算法的加速系统,其特征在于,使用权利要求1-8任一项所述的针对动态规划算法的装置。
10.一种针对动态规划算法的加速方法,其特征在于,使用权利要求1-8任一项所述的针对动态规划算法的装置,还包括如下步骤:
对动态规划算法的指令集进行拆分,分发指令集中特定的指令信息;指令信息包括数据指令、参数指令和计算指令中的一种或多种;
对指令信息进行解析,分发解析后的指令信息;
根据指令信息控制加速器阵列模块执行动态规划计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110632421.6A CN113268269B (zh) | 2021-06-07 | 2021-06-07 | 一种针对动态规划算法的加速方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110632421.6A CN113268269B (zh) | 2021-06-07 | 2021-06-07 | 一种针对动态规划算法的加速方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268269A true CN113268269A (zh) | 2021-08-17 |
CN113268269B CN113268269B (zh) | 2022-10-14 |
Family
ID=77234457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110632421.6A Active CN113268269B (zh) | 2021-06-07 | 2021-06-07 | 一种针对动态规划算法的加速方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268269B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997392A (zh) * | 2022-08-03 | 2022-09-02 | 成都图影视讯科技有限公司 | 用于神经网络计算的架构以及架构方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070129926A1 (en) * | 2005-12-01 | 2007-06-07 | Verheyen Henry T | Hardware acceleration system for simulation of logic and memory |
CN103930875A (zh) * | 2011-06-16 | 2014-07-16 | 尤塞瑞斯公司 | 用于加速业务数据处理的软件虚拟机 |
CN107704728A (zh) * | 2017-09-26 | 2018-02-16 | 华南理工大学 | 一种基因序列比对的云计算加速方法 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109284131A (zh) * | 2013-05-24 | 2019-01-29 | 相干逻辑公司 | 具有可编程优化的存储器-网络处理器 |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
US20200257652A1 (en) * | 2018-01-16 | 2020-08-13 | Tencent Technology (Shenzhen) Company Limited | Instruction set processing method based on a chip architecture and apparatus, and storage medium |
CN111831333A (zh) * | 2020-07-16 | 2020-10-27 | 中国科学院计算技术研究所 | 用于智能处理器的指令分解方法、装置及电子设备 |
CN111857833A (zh) * | 2020-07-16 | 2020-10-30 | 中国科学院计算技术研究所 | 并行计算智能处理器及并行计算智能处理方法 |
WO2021057720A1 (zh) * | 2019-09-24 | 2021-04-01 | 安徽寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-06-07 CN CN202110632421.6A patent/CN113268269B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070129926A1 (en) * | 2005-12-01 | 2007-06-07 | Verheyen Henry T | Hardware acceleration system for simulation of logic and memory |
CN103930875A (zh) * | 2011-06-16 | 2014-07-16 | 尤塞瑞斯公司 | 用于加速业务数据处理的软件虚拟机 |
CN109284131A (zh) * | 2013-05-24 | 2019-01-29 | 相干逻辑公司 | 具有可编程优化的存储器-网络处理器 |
CN107704728A (zh) * | 2017-09-26 | 2018-02-16 | 华南理工大学 | 一种基因序列比对的云计算加速方法 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
US20200257652A1 (en) * | 2018-01-16 | 2020-08-13 | Tencent Technology (Shenzhen) Company Limited | Instruction set processing method based on a chip architecture and apparatus, and storage medium |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
WO2021057720A1 (zh) * | 2019-09-24 | 2021-04-01 | 安徽寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN111831333A (zh) * | 2020-07-16 | 2020-10-27 | 中国科学院计算技术研究所 | 用于智能处理器的指令分解方法、装置及电子设备 |
CN111857833A (zh) * | 2020-07-16 | 2020-10-30 | 中国科学院计算技术研究所 | 并行计算智能处理器及并行计算智能处理方法 |
Non-Patent Citations (2)
Title |
---|
N.CLARK: ""Processor acceleration through automated instruction set customization"", 《IEEE》 * |
徐俊刚等: "生产调度理论和方法研究综述", 《计算机研究与发展》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997392A (zh) * | 2022-08-03 | 2022-09-02 | 成都图影视讯科技有限公司 | 用于神经网络计算的架构以及架构方法 |
CN114997392B (zh) * | 2022-08-03 | 2022-10-21 | 成都图影视讯科技有限公司 | 用于神经网络计算的架构以及架构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113268269B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108985008B (zh) | 一种快速比对基因数据的方法和比对系统 | |
US9443156B2 (en) | Methods and systems for data analysis in a state machine | |
WO2011081798A1 (en) | Methods and apparatuses for reducing power consumption in a pattern recognition processor | |
Li et al. | BLASTP-ACC: parallel architecture and hardware accelerator design for BLAST-based protein sequence alignment | |
CN113268270B (zh) | 一种针对成对隐马尔可夫模型的加速方法、系统及装置 | |
US12106201B2 (en) | Reconfigurable hardware buffer in a neural networks accelerator framework | |
CN113268269B (zh) | 一种针对动态规划算法的加速方法、系统及装置 | |
US11580055B2 (en) | Devices for time division multiplexing of state machine engine signals | |
US11726757B2 (en) | Processor for performing dynamic programming according to an instruction, and a method for configuring a processor for dynamic programming via an instruction | |
Cong et al. | Smem++: A pipelined and time-multiplexed smem seeding accelerator for genome sequencing | |
US9438414B2 (en) | Virtualized SHA computational engine | |
CN113241120B (zh) | 一种基因测序系统及测序方法 | |
Moscola et al. | Hardware-accelerated RNA secondary-structure alignment | |
Kässens et al. | Combining GPU and FPGA technology for efficient exhaustive interaction analysis in GWAS | |
CN115936128A (zh) | 一种支持多精度计算及动态配置的向量处理器及处理方法 | |
CN112541309B (zh) | 逻辑综合的实现控制方法及装置 | |
US20220197696A1 (en) | Condensed command packet for high throughput and low overhead kernel launch | |
US6584514B1 (en) | Apparatus and method for address modification in a direct memory access controller | |
CN113535637B (zh) | 一种运算加速单元及其运行方法 | |
Kieu-Do-Nguyen et al. | High-Performance FPGA-Based BWA-MEM Accelerator | |
KR100639146B1 (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
CN113254104B (zh) | 一种用于基因分析的加速器及加速方法 | |
JP2003244190A (ja) | データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ | |
Zhang et al. | Accelerating BLASTP on the Cell broadband Engine | |
US20240320496A1 (en) | Methods and Apparatus For Packet Reorder Flow in a Neural Network Processing System |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231218 Address after: Room 7-1, Building 3, No. 99 Chunhua Avenue, Xiantao Street, Yubei District, Chongqing, 401120 Patentee after: Zhongke Yuncai (Chongqing) Technology Co.,Ltd. Address before: 401120 No.53, middle section of Huangshan Avenue, Yubei District, Chongqing Patentee before: Western Research Institute of China Science and technology computing technology |