CN113268270B - 一种针对成对隐马尔可夫模型的加速方法、***及装置 - Google Patents

一种针对成对隐马尔可夫模型的加速方法、***及装置 Download PDF

Info

Publication number
CN113268270B
CN113268270B CN202110635447.6A CN202110635447A CN113268270B CN 113268270 B CN113268270 B CN 113268270B CN 202110635447 A CN202110635447 A CN 202110635447A CN 113268270 B CN113268270 B CN 113268270B
Authority
CN
China
Prior art keywords
instruction
data
module
accelerator
calculation
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
Application number
CN202110635447.6A
Other languages
English (en)
Other versions
CN113268270A (zh
Inventor
谭光明
李叶文
高睿昊
臧大伟
刘万奇
康宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Fangyuan Zhihui Technology Co.,Ltd.
Original Assignee
Western Research Institute Of China Science And Technology Computing Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Research Institute Of China Science And Technology Computing Technology filed Critical Western Research Institute Of China Science And Technology Computing Technology
Priority to CN202110635447.6A priority Critical patent/CN113268270B/zh
Publication of CN113268270A publication Critical patent/CN113268270A/zh
Application granted granted Critical
Publication of CN113268270B publication Critical patent/CN113268270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及基因分析技术领域,具体为一种针对成对隐马尔可夫模型的加速方法、***及装置,装置包括:通用计算模块,用于拆分出成对隐马尔可夫模型的指令集中的特定指令,将特定指令发送给交互接口,并执行剩余内容;交互接口,用于传输特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息;加速器阵列模块,用于指令并行接收,并根据所需的信息执行对成对隐马尔可夫模型的加速。本方案能计算匹配特征,降低交互损耗,提高计算效率。

Description

一种针对成对隐马尔可夫模型的加速方法、***及装置
技术领域
本发明涉及基因分析技术领域,具体为一种针对成对隐马尔可夫模型的加速方法、***及装置。
背景技术
基因分析技术作为探索生命奥秘的重要手段,正成为生物信息学研究的重要分支,在物种鉴别、基因检测、疾病诊断等方面都有着广泛的应用。基因分析技术的飞速发展为精准医疗奠定了坚实的基础,也使得临床诊断前景更加光明。近年来,随着第二代测序技术的高速发展,测序成本的下降速率已经远远超过摩尔定律的下降速率,因此基因数据量也呈***式增长,呈***式增长的基因数据量对现有处理器的处理能力提出了新的挑战。成对隐马尔可夫模型(Pair-Hidden Markov Model,Pair-HMM)作为基因分析流程中必不可少且相当耗时的一个步骤,在基因分析的变异体检测流程中占据了大约70%的执行时间。成对隐马尔可夫模型的执行效率已经成为目前基因分析流程一个重要的性能瓶颈,在基因分析加速研究中占据着十分重要的地位。
现有的成对隐马尔可夫模型的实现和加速技术大致分为:面向CPU的并行加速、面向GPGPU(General-Purpose Computing on Graphics Processing Units,通用图形处理器)的异构加速、基于FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的定制加速和基于ASIC(Application-Specific Integrated Circuit,专用集成电路)的定制加速四类:
1)CPU并行加速作为最常见的加速方法,特点是有成熟的编程工具支持,能够快速地实现。目前基因分析所使用的工具,如GATK、GKL均是这方面的成果。但是,基因数据分析的计算模式与传统CPU计算架构不匹配,在控制模式上,CPU依赖指令驱动的细粒度控制模式,但是基因分析流程为数据驱动的粗粒度控制模式;在数据模式上,CPU依赖数据的局部性来做分支预测等操作,这在随机访存的基因分析流程上并不适用;在并发模式上,CPU依赖多核提供了有限的并行度,但是在基因分析流程中常常需要提供和读对数量相当的并行度。
2)相对于CPU并行加速,GPGPU异构加速庞大的计算单元量解决了并行度的问题,但是GPGPU仍存在依靠细粒度的指令控制和依赖数据的局部性等问题。
3)FPGA定制加速通过定制相应的计算和控制逻辑,来实现和基因分析流程计算结构和计算特征上的匹配,但是基于LUT(Lookup Table,显示查找表)实现的定制逻辑,存在主频低和能效低等方面的问题,其相对于高主频的CPU并行加速和GPGPU异构加速往往无法取得良好的加速效果。
4)相对于上述三种技术,ASIC定制加速虽然可以做到计算结构和计算特征的匹配及高主频,但是PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)和SerDes(SERializer/DESerializer,串行器/解串器)等总线带宽远低于访存设备的带宽,使独立加速器和通用处理器之间交互损耗较高。
综上所述,ASIC定制加速相对于前三种加速技术优点更多,但是其也存在交互损耗较高的问题,因此现阶段基因分析中的成对隐马尔可夫模型急需一种能降低交互损耗的新型加速技术。
发明内容
本发明意在提供一种针对成对隐马尔可夫模型的加速方法、***及装置,能够降低交互损耗。
本发明提供基础方案一:针对成对隐马尔可夫模型的加速装置,包括:通用计算模块、交互接口和加速器阵列模块;
所述通用计算模块,用于拆分出成对隐马尔可夫模型的指令集中的特定指令,将特定指令发送给交互接口,并执行剩余内容;
所述交互接口,用于传输特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息;
所述加速器阵列模块,用于指令并行接收,并根据所需的信息执行对成对隐马尔可夫模型的加速。
基础方案一的有益效果:通用计算模块和浮点加速阵列模块都可设置若干个,并都与交互接口连接进行特定指令的传输和解析,若干通用计算模块拆分出成对隐马尔可夫模型的指令集中的特定指令,将特定指令发送给交互接口,并且通用计算模块执行算法剩余内容,即非特定指令;交互接口传输特定指令并解析特定指令,将解析的结果发送给加速器阵列模块,加速器阵列模块,用于根据所需的信息执行对成对隐马尔可夫模型的加速,以计算特征匹配,执行完成后,将结果原路回传给通用计算模块。整个装置支持若干个通用计算单元发送特定指令给加速器阵列模块进行计算,若干个通用计算模块提高了算法中非特定指令部分的执行吞吐量的同时,将特定指令给若干加速器阵列模块进行计算,提高计算的速率。
通过引入特定指令,可以针对加速器阵列模块的指令进行定制形成自定义指令,对加速器阵列模块进行直接控制调用,相对于绝大多数情况下,专用的加速器和商用处理器的连接均需要借助PCIe和SerDes来实现交互通信,本装置的通用计算模块和加速器通过特定指令进行信息交互,无需借助PCIe和SerDes,不会出现由于PCIe和SerDes等总线带宽远低于访存设备的带宽,造成交互损耗的问题,从而降低了交互损耗。
此外,自定义指令既可以高效地进行批量指令运算,针对不同的类型的任务,只需要单独调整对应的自定义指令,无需对指令集进行整体调整,简化了指令集设计的复杂性。
进一步,所述交互接口,包括:指令仲裁器、指令缓冲队列和指令解析模块;
所述指令仲裁器,用于仲裁通用计算模块发送的特定指令,将待执行的特定指令发送给空闲的指令缓冲队列,以及接受指令缓冲队列发送的指令,并将指令转发给特定的通用计算模块;
所述指令缓冲队列,用于暂时缓冲指令仲裁器发送的特定指令,若指令缓冲队列对应通道的加速器阵列模块存在空闲的计算资源,则将特定指令发送给指令解析模块;
所述指令解析模块,用于接收指令缓冲队列发送的特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息,具体包括:
处理通用计算模块向加速器阵列模块发送的第一指令片段;
处理加速器阵列模块向通用计算模块发送的第二指令片段;
处理加速器阵列模块向通用计算模块发送的缓存信息;
所述通用计算模块和指令缓冲队列均与指令仲裁器连接,且每一指令缓冲队列均串联有一指令解析模块和一加速器阵列模块。
有益效果:在设置多个通用计算模块可提高了算法中非特定指令部分的执行吞吐量的同时,将特定指令给若干加速器阵列模块进行计算,并且发送过程经过指令仲裁器、指令缓冲队列和指令解析模块进行动态的合理的分配,最大效率的利用加速器阵列模块的计算资源,从而提高了装置执行算法的速率,实现高主频的效果。每一指令缓冲队列均串联有一指令解析模块和一加速器阵列模块,实现了若干指令缓冲队列、指令解析模块和加速器阵列模块的高并行,提升了执行计算的速率。并且结合上述其他技术特征,整个装置可以实现兼顾了高并行、计算特征匹配、高主频和交互损耗低。
进一步,所述装置,还包括:存储仲裁器和若干存储模块;
所述存储仲裁器,用于对存储模块进行统一的访问地址编码,并用于对存储模块相近地址进行聚集访问;
所述存储模块,用于数据存储和为通用计算模块和加速器阵列模块供应数据。
有益效果:考虑到存储模块众多,存储仲裁器对存储模块进行统一的访问地址编码,方便加速器阵列和通用计算模块对其访问,并且存储仲裁器会将对某个存储模块相近地址进行聚集访问,以此提供存储模块的带宽利用率。
进一步,所述指令仲裁器包括通用计算模块索引、输入选择子模块、输出选择子模块和指令索引表项;
所述通用计算模块索引,用于记录通用计算模块的索引号;
所述输入选择子模块,用于接收通用计算模块发来的特定指令,配合通用计算模块,获取特定指令的指令数据写入指令索引表项;
所述输出选择子模块,用于接收已完成加速执行的指令索引表项中指令数据,并将获取的指令数据发送给指定的通用计算模块;
所述指令索引表项,用于对接收到的每个表项按序存储,其中输入选择模块发送的指令数据从顶部开始存储,待发送给输出选择子模块的指令数据从底部开始存储。
有益效果:指令仲裁器通过通用计算模块索引、输入选择子模块、输出选择子模块和指令索引表项,将发送的特定指令做好记录和装发,保证数据转发时,不会发生错乱。
进一步,所述指令缓冲队列包括用于缓冲由指令仲裁器发送到指令解析模块的指令数据的队列和用于缓冲由指令解析模块发送到指令仲裁器的指令数据的队列。
有益效果:指令缓冲队列包含用于缓冲由指令仲裁器发送到指令解析模块的指令数据的队列和用于缓冲由指令解析模块发送到指令仲裁器的指令数据的队列,分开处理两个方向的数据,防止数据混乱。
进一步,所述加速器阵列模块,还用于加速器阵列模块仲裁和计算粒度支持。
有益效果:加速器阵列模块,还用于加速器阵列模块仲裁和计算粒度支持,便于计算更长的基因读段。
进一步,所述加速器阵列模块,包括:加速器阵列子模块和粒度配置子模块;
所述加速器阵列子模块,包括若干加速器组成的脉动阵列;所述加速器,用于对成对隐马尔可夫模型进行加速,用于对基因读段进行计算;
所述粒度配置子模块,为指令解析模块和加速器阵列模块的交互端口,用于对加速器阵列子模块的粒度进行配置,将若干个加速器整合为一个计算单元对更长的基因读段进行计算,还用于分配空闲的加速器资源对指令解析单元发送的数据进行指令的计算。
有益效果:由于基因读段的长度因测序技术和公司而各不相同,单一的计算单元无法对不同长度的读段进行计算,加速器阵列可以通过粒度配置子模块来对阵列的粒度进行配置,将多个小的计算单元整合成大的计算单元来完成更长读段的计算。粒度配置模块,为指令解析模块和加速器阵列模块的交互端口,还用于分配空闲的加速器资源对指令解析单元发送的数据进行指令的计算,便于计算资源的合理配置和利用。
进一步,所述加速器,包括:数据选择器、数据缓存队列、浮点计算子模块、结果暂存队列、结果选择器和相似得分计算子模块;
所述数据选择器,用于对输入数据和数据缓存队列中缓存的上一轮计算完成的数据进行数据选择;
所述数据缓存队列,用于存储浮点计算子模块计算的结果;
所述浮点计算子模块,用于对数据选择器选择的数据进行初始化计算或迭代计算,并将计算结果输入到对应的结果暂存队列;
所述结果暂存队列,用于存储对应浮点计算子模块的计算结果;
所述结果选择器,用于为相似得分计算子模块提供数据;
所述相似得分计算子模块,用于提取结果暂存队列的数据进行相似得分计算,得到最终的相似得分。
有益效果:通过设置上述各模块实现对成对隐马尔可夫模型进行基因分析,并且实现对计算的加速。
进一步,所述特定指令,包括:
数据指令,用于配置加速器计算过程需要的数据地址,单个数据大小和数据总长度;
参数指令,用于配置加速器计算过程的参数;
计算指令,用于在数据准备完成后,启动加速器对数据的计算,并将计算结果写入数据指令配置的数据地址;
辅助指令,用于检测加速器的行为。
有益效果:对成对隐马尔可夫模型所需要的指令进行定制,实现对加速器模块进行精确的控制。
本发明提供的基础方案二:针对成对隐马尔可夫模型的加速方法,通过采用上述针对成对隐马尔可夫模型的加速装置,实现针对成对隐马尔可夫模型的加速。
基础方案二的有益效果:本方法针对成对隐马尔可夫模型的加速时可以兼顾了高并行、计算特征匹配、高主频和交互损耗低。
本发明提供基础方案三:针对成对隐马尔可夫模型的加速***,包括处理器、存储器以及存储在所述存储器上的计算机程序,所述处理器用于执行所述计算机程序,以实现上述的针对成对隐马尔可夫模型的加速方法的步骤。
基础方案三的有益效果:本***在进行基因分析,针对成对隐马尔可夫模型的加速时可以兼顾了高并行、计算特征匹配、高主频和交互损耗低。
附图说明
图1为本发明针对成对隐马尔可夫模型的加速装置实施例的逻辑框图;
图2为本发明针对成对隐马尔可夫模型的加速装置实施例的架构图;
图3为本发明针对成对隐马尔可夫模型的加速装置实施例的指令仲裁模块逻辑框图;
图4为本发明针对成对隐马尔可夫模型的加速装置实施例的单个成对隐马尔可夫模型的硬件执行模块示意图;
图5为成对隐马尔可夫模型的示意图;
图6为成对隐马尔可夫模型的执行特征图;
图7为本发明针对成对隐马尔可夫模型的加速装置实施例的加速器阵列模块的模块示意图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例一
针对成对隐马尔可夫模型的加速装置,如图1所示,包括:若干通用计算模块,交互接口,其中交互交口包括:指令仲裁器、若干指令缓冲队列和若干指令解析模块,若干加速器阵列模块,存储仲裁器和若干存储模块;所述通用计算模块和指令缓冲队列均与指令仲裁器连接,且每一指令缓冲队列均串联有一指令解析模块和一加速器阵列模块;本实施例中,本装置包括五个通用计算模块、一个指令仲裁器、五个队列缓存队列、五个指令解析模块、五个加速器阵列模块、一个存储仲裁器和五个存储模块。
本实施中,如图2所示,主存为一般的内存器件,处理器核心为通用计算模块,本实施例中有三个处理器核心,分别为处理器核心一、处理器核心二和处理器核心三,三个处理器核心可以分别运行成对隐马尔可夫模型相关的程序。交互接口用于处理器核心和加速器阵列进行通信和仲裁,处理器核心可以通过交互接口向加速器阵列发送指令和接收数据,即交互接口为指令仲裁器、指令缓冲队列和指令解析模块。缓存一、缓存二和缓存三均包括处理器核心需要的数据缓存和指令缓存,缓存四为二级数据缓存。
成对隐马尔可夫模型加速器阵列使用RTL语言进行设计,用户可以调用其中的加速器核来进行成对隐马尔可夫模型计算。对于设计的独立加速器和通用处理器之间的控制和数据交互的问题,处理器核用RISC-V指令集来实现,控制和数据交互使用RISC-V支持的RoCC协议。特别的,为了实现对独立加速器实现精确的调度,根据算法的特性将算法拆分为若干个步骤,对每个步骤进行ASIC实现并将每个步骤定义为RISC-V支持的自定义指令。
通用计算模块,用于拆分出成对隐马尔可夫模型的指令集中的特定指令,将特定指令发送给交互接口,具体为指令仲裁器,并执行算法剩余内容;通用计算模块的核心满足通用性和高性能。
所述特定指令为自定义指令,是为了能对加速器模块进行精确的控制,所以对成对隐马尔可夫模型所需要的指令进行定制,包括:
数据指令,用于配置加速器计算过程需要的数据地址,单个数据大小和数据总长度;
参数指令,用于配置加速器计算过程的参数;
计算指令,用于在数据准备完成后,启动加速器对数据的计算,并将计算结果写入数据指令配置的数据地址;
辅助指令,用于检测加速器的行为。
本实施例中自定义指令采用RISC-V指令集,***中通信使用RISC-V支持的RoCC协议,对自定义指令给出如下定义,funct功能码三位从低位到高位用作xs2、xs1和xd标志位,指示是否使用rs2、rs1寄存器的值以及是否在指令结束后写回rd寄存器。
如下表所示:
Figure BDA0003104697090000081
本实例中自定义指令的具体定义:
数据指令:
phmm_set_addr:指令每次成对隐马尔可夫模型执行过程调用四次,用于设置单体型碱基序列,读段序列,读段序列质量分数和结果序列的内存地址;
phmm_set_size:指令每次成对隐马尔可夫模型执行过程调用三次,用于设置单体型碱基序列,读段序列,读段序列质量分数和结果序列的每个字符大小;
phmm_set_lengt:指令每次成对隐马尔可夫模型执行过程调用三次,用于设置单体型碱基序列,读段序列,读段序列质量分数和结果序列的字符串长度。
参数指令:
phmm_set_param:指令每次成对隐马尔可夫模型执行过程调用一次,用于设置成对隐马尔可夫模型的参数,如转移概率(δ,ι,ε)、IC的初始值等。
计算指令:
phmm_start:指令每次成对隐马尔可夫模型执行过程调用一次,用于指定PHAA中加速器的id并开始计算过程。因为对粒度提供了支持,这里每个加速器模块的大小为kernel_size/(read_length+edit_distance),其中kernel_size为单个成对隐马尔可夫模型的硬件执行模块支持的数据计算长度,read_length为当前的读段长度,edit_distance为允许的最长的编辑距离。
辅助指令:
phmm_finish:指令为辅助指令,用于判断对应id的加速器是否完成计算,如果完成计算,则表示结果地址的数据可用。
对于上述自定义指令,进行调用的调用方法:GCC编译器支持C语言程序内嵌汇编,例如:对一条使用rs1、rs2、rd寄存器的自定义指令可以使用宏定义进行调用。其中,X为自定义指令的编号,例如:custom-0则传入0。rd、rs1、rs2为普通内存变量。funct传入指令的funct7功能码。rd_n、rs1_n、rs2_n指定指令执行过程中使用的寄存器编号。register关键字修饰的rd_、rs1_、rs2_变量保证指定的寄存器不会和C语言程序编译成的其他部分发生冲突。以上参数使用STR和CUSTOMX宏拼接,然后通过word汇编伪指令放入代码段中对应的位置。
交互接口,用于传输特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息,具体为:交互接口包括:指令仲裁器、指令缓冲队列和指令解析模块;
指令仲裁器,用于仲裁通用计算模块发送的特定指令,将待执行的特定指令发送给空闲的指令缓冲队列,以及接受指令缓冲队列发送的指令,并将指令转发给特定的通用计算模块。其中仲裁,由于通用计算模块较多,每个都可以向指令仲裁器发送自身需要的特定指令,指令仲裁器需要对不同的通用计算模块进行记录,以便可以正确返回数据给各个通用计算模块,并且考虑到指令拥塞的情况,不同的指令缓存队列中的指令拥塞情况不同,指令仲裁器需要对指令缓存队列的拥塞情况进行扫描,将仲裁器中的数据发送到最不拥塞的指令缓冲队列,从而实现对来自不同通用计算模块的指令进行正确的标记,并将特定指令分发到最不拥塞的指令缓冲队列。如图3所示,具体为:指令仲裁器包括:通用计算模块索引、输入选择子模块、输出选择子模块和指令索引表项;
通用计算模块索引,用于记录通用计算模块的索引号,保证不同的通用计算模块发送的特定指令能够正确地被加速器阵列模块加速并返回;
输入选择子模块,用于接收通用计算模块发来的特定指令,配合通用计算模块,获取特定指令的数据写入指令索引表项;
输出选择子模块,用于接收已完成加速执行的指令索引表项中数据,并将获取的数据发送给指定的通用计算模块;
指令索引表项,用于对接收到的每个表项按序存储,其中输入选择模块发送的数据从顶部开始存储,待发送给输出选择子模块的数据从底部开始存储。实际设计的时候还需要考虑顶部底部覆盖的问题,但该问题不是本方案想要解决的技术问题,此处不进行论述。
指令缓冲队列,用于暂时缓冲指令仲裁器发送的特定指令,若指令缓冲队列对应通道的加速器阵列模块存在空闲的计算资源,则将特定指令发送给指令解析模块;以此匹配加速器阵列模块和通用计算模块之间的处理速率,防止因为两个模块处理速度相差较大,影响整个执行过程。指令缓冲队列包括用于缓冲由指令仲裁器发送到指令解析模块的指令数据的队列和用于缓冲由指令解析模块发送到指令仲裁器的指令数据的队列,两个队列的方向相反,能够分别对指令仲裁器和指令解析模块发送过来的数据进行处理。
指令解析模块,用于接收指令缓冲队列发送的特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息,其中信息包括数据地址和参数地址。具体包括:
处理通用计算模块向加速器阵列模块发送的第一指令片段,本实施例中第一指令片段包括:Instruction、rs1和rs指令片段;
处理加速器阵列模块向通用计算模块发送的第二指令片段,本实施例中第二指令片段包括:rd和data指令片段;
处理加速器阵列模块向通用计算模块发送的缓存信息,缓存信息包括:用于成对隐马尔可夫模型的两个输入序列,用于成对隐马尔可夫模型的运行时需要的参数。
加速器阵列模块,为本装置的核心加速部件,用于对成对隐马尔可夫模型进行加速,还用于指令并行接收、加速器阵列模块仲裁、计算粒度支持,以此达到高性能和高通量的计算;
加速器阵列模块,包括:加速器阵列子模块和粒度配置子模块;
加速器阵列子模块,包括若干加速器组成的脉动阵列;所述加速器,用于对特定算法进行加速,用于对基因读段进行计算。加速器,包括:数据选择器、数据缓存队列、若干浮点计算子模块、结果暂存队列、结果选择器和相似得分计算子模块;
数据选择器,用于对输入数据和数据缓存队列中缓存的上一轮计算完成的数据进行数据选择;其中数据选择取决于浮点计算子模块需要的计算数据是输入数据,还是数据缓存队列中缓存的上一轮计算完成的数据;其中输入数据为存储在存储模块的读段数据和单体型碱基序列数据;
数据缓存队列,用于存储浮点计算子模块计算的结果;
浮点计算子模块,用于对数据选择器选择的数据进行初始化计算或迭代计算,并将计算结果输入到对应的结果暂存队列;
结果暂存队列,用于存储对应浮点计算子模块的计算结果;
结果选择器,用于为相似得分计算子模块提供数据;
相似得分计算子模块,用于提取结果暂存队列的数据进行相似得分计算,得到最终的相似得分。
如图4所示,本实施例中,加速器包含四个串联浮点计算子模块,串联的浮点计算子模块中第一浮点计算子模块与数据选择器连接,串联的浮点计算子模块中最后一个浮点计算子模块与数据缓存队列连接,每一浮点计算子模块连接有一个结果暂存队列,所有结果暂存队列均与结果选择器连接,结果选择器与相似得分计算子模块连接,相识得分计算模块连接与数据缓存队列直接可以进行信息交互。
上述初始化计算、迭代计算和相似得分计算为对成对隐马尔可夫模型的算法流程,具体为:
如图5,基因分析领域广泛采用的成对隐马尔可夫模型的示意图,图5中A)给出了成对隐马尔可夫模型的状态转移图,定义M状态(表示匹配)到Y状态(表示删除)的转移概率为δ,定义M状态到X状态(表示***)的转移概率为ι,定义X状态到X状态的转移概率和Y状态转移到Y状态的转移概率为ε,定义QdQiQg为删除、***和空位的连续得分。上述变量之间的关系为:
Figure BDA0003104697090000111
状态矩阵的计算为:
a)如图5中B)所示,单体型碱基序列为GATCA,待比对的读段(Read Bases)为ATT。
b)对M,X和Y的状态值进行初始化计算:
Figure BDA0003104697090000121
其中,重要的初始化值为M0,0=0,X0,0=0,Y0,0=0,IC为一个用于防止计算下溢的大初始值,若在Java实现中取21020
c)采用迭代计算,对Mi,j,Xi,j和Yi,j的状态值进行更新,如图6所示,迭代特点为当前需要更新的状态值和上边,左边以及左上角的值有关,因此迭代计算为:
i=0,…,|read|-1,j=0,…,|hap|-1except(i=0,j=0)
Figure BDA0003104697090000122
Figure BDA0003104697090000123
其中,Qb为对应比对碱基的质量分数。
d)完成所有迭代之后,进行相似得分计算:
Figure BDA0003104697090000124
其中,L的值越大则表示两个序列更加相近。
从上述算法的计算流程中,分析算法运行时的计算特征:如图6所示,第三个当前计算单元依赖于上方(在上一次迭代计算完成),右方(在上一次计算完成),右上方(在上上次计算完成),同理可得,所有当前计算单元的依赖关系。从上述计算特征来看,可以通过脉动阵列对算法进行加速,且成对隐马尔可夫模型引入了浮点计算。
所述粒度配置子模块,用于对加速器阵列子模块的粒度进行配置,将若干个加速器整合为一个计算单元对更长的基因读段进行计算。为指令解析模块和加速器阵列模块的交互端口,还用于分配空闲的加速器资源对指令解析单元发送的数据进行指令的计算。在基因分析中,由于基因读段的长度因测序技术和公司而各不相同,单一的计算单元无法对不同长度的读段进行计算,加速器阵列可以通过粒度配置子模块来对阵列的粒度进行配置,将多个小的计算单元(加速器)整合成大的计算单元来完成更长读段的计算。
如图7所示,本实施例中,加速器模块包括九个均匀脉动阵列的计算单元,每个计算单元为一个加速器,还包括输入缓存序列和输入缓冲序列,两个模块的作用是提供输入数据的存储功能,基因分析中的成对隐马尔可夫模型的计算需要两组数据,一组是读段数据(存储在输入左上的输入缓存序列中),一组是单体型碱基序列数据(存储于右下的输入缓冲序列中)。
存储仲裁器,用于对存储模块进行统一的访问地址编码,并用于对存储模块相近地址进行聚集访问;其中相近地址的判断标准为:若预设访问次数访问的数据地址的差值小于预设特定值,则判断预设访问次数访问的数据地址为相近地址;聚集访问为在预设等待时间内接收到预设阈值的数据访问请求,则统一去进行数据访问;若超过预设时间且接收到的数据访问请求没有到达预设阈值,则统一去进行数据访问。存储模块,用于数据存储和为通用计算模块和加速器阵列模块供应数据。
存储仲裁器和存储模块的构成包括但不限于DDR、HBM、HMC和NVM。
本实施例还提供一种针对成对隐马尔可夫模型的加速方法,通过采用上述针对成对隐马尔可夫模型的加速装置,实现针对成对隐马尔可夫模型的加速。
本实施例还提供一种针对成对隐马尔可夫模型的加速***,包括处理器、存储器以及存储在所述存储器上的计算机程序,所述处理器用于执行所述计算机程序,以实现上述的针对成对隐马尔可夫模型的加速方法的步骤。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。

Claims (8)

1.一种针对成对隐马尔可夫模型的加速装置,其特征在于:包括通用计算模块、交互接口、加速器阵列模块、存储仲裁器和若干存储模块;
所述通用计算模块,用于拆分出成对隐马尔可夫模型的指令集中的特定指令,将特定指令发送给交互接口,并执行剩余内容;
所述交互接口,用于传输特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息;所述交互接口,包括:指令仲裁器、指令缓冲队列和指令解析模块;
所述指令仲裁器,用于仲裁通用计算模块发送的特定指令,将待执行的特定指令发送给空闲的指令缓冲队列,以及接受指令缓冲队列发送的指令,并将指令转发给特定的通用计算模块;
所述指令缓冲队列,用于暂时缓冲指令仲裁器发送的特定指令,若指令缓冲队列对应通道的加速器阵列模块存在空闲的计算资源,则将特定指令发送给指令解析模块;
所述指令解析模块,用于接收指令缓冲队列发送的特定指令,并对特定指令进行解码,将其转化为加速器阵列模块所需的信息;
通用计算模块和指令缓冲队列均与指令仲裁器连接,且每一指令缓冲队列均串联有一指令解析模块和一加速器阵列模块;
所述加速器阵列模块,用于指令并行接收,并根据所需的信息执行对成对隐马尔可夫模型的加速;
所述存储仲裁器,用于对存储模块进行统一的访问地址编码,并用于对存储模块相近地址的访问聚集并访问;
所述存储模块,用于数据存储和为通用计算模块和加速器阵列模块供应数据。
2.根据权利要求1所述的针对成对隐马尔可夫模型的加速装置,其特征在于:所述指令仲裁器包括通用计算模块索引、输入选择子模块、输出选择子模块和指令索引表项;
所述通用计算模块索引,用于记录通用计算模块的索引号;
所述输入选择子模块,用于接收通用计算模块发来的特定指令,配合通用计算模块,获取特定指令的指令数据写入指令索引表项;
所述输出选择子模块,用于接收已完成加速执行的指令索引表项中指令数据,并将获取的指令数据发送给指定的通用计算模块;
所述指令索引表项,用于对接收到的每个表项按序存储,其中输入选择模块发送的指令数据从顶部开始存储,待发送给输出选择子模块的指令数据从底部开始存储。
3.根据权利要求1所述的针对成对隐马尔可夫模型的加速装置,其特征在于:所述指令缓冲队列包括用于缓冲由指令仲裁器发送到指令解析模块的指令数据的队列和用于缓冲由指令解析模块发送到指令仲裁器的指令数据的队列。
4.根据权利要求1所述的针对成对隐马尔可夫模型的加速装置,其特征在于:所述加速器阵列模块,还用于加速器阵列模块仲裁和计算粒度支持;
所述加速器阵列模块,包括:加速器阵列子模块和粒度配置子模块;
所述加速器阵列子模块,包括若干加速器组成的脉动阵列;所述加速器,用于对成对隐马尔科夫模型进行加速,用于对基因读段进行计算;
所述粒度配置子模块,为指令解析模块和加速器阵列模块的交互端口,用于对加速器阵列子模块的粒度进行配置,将若干个加速器整合为一个计算单元对更长的基因读段进行计算,还用于分配空闲的加速器资源对指令解析单元发送的数据进行指令的计算。
5.根据权利要求4所述的针对成对隐马尔可夫模型的加速装置,其特征在于:所述加速器,包括:数据选择器、数据缓存队列、浮点计算子模块、结果暂存队列、结果选择器和相似得分计算子模块;
所述数据选择器,用于对输入数据和数据缓存队列中缓存的上一轮计算完成的数据进行数据选择;
所述数据缓存队列,用于存储浮点计算子模块计算的结果;
所述浮点计算子模块,用于对数据选择器选择的数据进行初始化计算或迭代计算,并将计算结果输入到对应的结果暂存队列;
所述结果暂存队列,用于存储对应浮点计算子模块的计算结果;
所述结果选择器,用于为相似得分计算子模块提供数据;
所述相似得分计算子模块,用于提取结果暂存队列的数据进行相似得分计算,得到最终的相似得分。
6.根据权利要求4所述的针对成对隐马尔可夫模型的加速装置,其特征在于:所述特定指令,包括:
数据指令,用于配置加速器计算过程需要的数据地址,单个数据大小和数据总长度;
参数指令,用于配置加速器计算过程的参数;
计算指令,用于在数据准备完成后,启动加速器对数据的计算,并将计算结果写入数据指令配置的数据地址;
辅助指令,用于检测加速器的行为。
7.一种针对成对隐马尔可夫模型的加速方法,其特征在于:通过采用如权利 要求1至6任一项所述针对成对隐马尔可夫模型的加速装置,实现针对成对隐马尔可夫模型的加速。
8.一种针对成对隐马尔可夫模型的加速***,包括处理器、存储器以及存储在所述存储器上的计算机程序,其特征在于:所述处理器用于执行所述计算机程序,以实现如权利要求7所述的针对成对隐马尔可夫模型的加速方法的步骤。
CN202110635447.6A 2021-06-07 2021-06-07 一种针对成对隐马尔可夫模型的加速方法、***及装置 Active CN113268270B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110635447.6A CN113268270B (zh) 2021-06-07 2021-06-07 一种针对成对隐马尔可夫模型的加速方法、***及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110635447.6A CN113268270B (zh) 2021-06-07 2021-06-07 一种针对成对隐马尔可夫模型的加速方法、***及装置

Publications (2)

Publication Number Publication Date
CN113268270A CN113268270A (zh) 2021-08-17
CN113268270B true CN113268270B (zh) 2022-10-21

Family

ID=77234685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110635447.6A Active CN113268270B (zh) 2021-06-07 2021-06-07 一种针对成对隐马尔可夫模型的加速方法、***及装置

Country Status (1)

Country Link
CN (1) CN113268270B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113548463B (zh) * 2021-09-07 2023-03-10 中科计算技术西部研究院 联管自动抓取控制***及控制方法
CN116028398B (zh) * 2022-11-01 2023-10-31 中科计算技术西部研究院 一种互连网络仲裁***、装置、方法及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012021149A1 (en) * 2010-08-12 2012-02-16 Winters-Hilt Stephen N Methods and systems for nanopore biosensing
CN106886690A (zh) * 2017-01-25 2017-06-23 人和未来生物科技(长沙)有限公司 一种面向基因数据计算解读的异构平台
CN108646261A (zh) * 2018-02-14 2018-10-12 上饶市中科院云计算中心大数据研究院 一种车辆gps数据集的数据处理方法和装置
CN108932135A (zh) * 2018-06-29 2018-12-04 中国科学技术大学苏州研究院 基于fpga的分类算法的加速平台设计方法
CN110058883A (zh) * 2019-03-14 2019-07-26 成都恒创新星科技有限公司 一种基于opu的cnn加速方法及***
CN110990063A (zh) * 2019-11-28 2020-04-10 中国科学院计算技术研究所 一种用于基因相似性分析的加速装置、方法和计算机设备
CN111121791A (zh) * 2019-11-29 2020-05-08 上饶市中科院云计算中心大数据研究院 隐马尔可夫模型在地图匹配中的优化方法及gps定位方法
CN112347271A (zh) * 2020-12-04 2021-02-09 国网天津市电力公司电力科学研究院 基于文字语义识别的配电物联网设备缺陷辅助录入方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898575B2 (en) * 2013-08-21 2018-02-20 Seven Bridges Genomics Inc. Methods and systems for aligning sequences
CN106651742B (zh) * 2016-12-12 2020-08-11 中国航空工业集团公司西安航空计算技术研究所 一种统一染色架构图形处理器单指令多线程染色簇***
CN109657452A (zh) * 2018-12-20 2019-04-19 广东电网有限责任公司 一种移动应用行为动态可信评估方法及装置
CN109934339B (zh) * 2019-03-06 2023-05-16 东南大学 一种基于一维脉动阵列的通用卷积神经网络加速器
CN113383310A (zh) * 2019-03-15 2021-09-10 英特尔公司 矩阵加速器架构内的脉动分解

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012021149A1 (en) * 2010-08-12 2012-02-16 Winters-Hilt Stephen N Methods and systems for nanopore biosensing
CN106886690A (zh) * 2017-01-25 2017-06-23 人和未来生物科技(长沙)有限公司 一种面向基因数据计算解读的异构平台
CN108646261A (zh) * 2018-02-14 2018-10-12 上饶市中科院云计算中心大数据研究院 一种车辆gps数据集的数据处理方法和装置
CN108932135A (zh) * 2018-06-29 2018-12-04 中国科学技术大学苏州研究院 基于fpga的分类算法的加速平台设计方法
CN110058883A (zh) * 2019-03-14 2019-07-26 成都恒创新星科技有限公司 一种基于opu的cnn加速方法及***
CN110990063A (zh) * 2019-11-28 2020-04-10 中国科学院计算技术研究所 一种用于基因相似性分析的加速装置、方法和计算机设备
CN111121791A (zh) * 2019-11-29 2020-05-08 上饶市中科院云计算中心大数据研究院 隐马尔可夫模型在地图匹配中的优化方法及gps定位方法
CN112347271A (zh) * 2020-12-04 2021-02-09 国网天津市电力公司电力科学研究院 基于文字语义识别的配电物联网设备缺陷辅助录入方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
High Speed Biological Sequence Analysis With Hidden Markov Models on Reconfigurable Platforms;Timothy F. Oliver .etc;《IEEE Transactions on Information Technology in Biomedicine》;20090610;第13卷(第5期);740-746 *
高性能计算的发展;臧大伟等;《科技导报》;20160728;22-28 *

Also Published As

Publication number Publication date
CN113268270A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
US11977977B2 (en) Methods and systems for data analysis in a state machine
US9886017B2 (en) Counter operation in a state machine lattice
US9535861B2 (en) Methods and systems for routing in a state machine
EP2791862B1 (en) Device for detection in a state machine
CN113268270B (zh) 一种针对成对隐马尔可夫模型的加速方法、***及装置
US11829311B2 (en) Custom compute cores in integrated circuit devices
US10430210B2 (en) Systems and devices for accessing a state machine
US20170193351A1 (en) Methods and systems for vector length management
US11947979B2 (en) Systems and devices for accessing a state machine
CN113268269B (zh) 一种针对动态规划算法的加速方法、***及装置
US20170364474A1 (en) Devices for time division multiplexing of state machine engine signals

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

Effective date of registration: 20230731

Address after: Room 324, 1st Floor, Unit A3, Building 1, No. 18 Keyuan Road, Daxing District Economic Development Zone, Beijing, 100176

Patentee after: Beijing Fangyuan Zhihui 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

TR01 Transfer of patent right