一种用于基因分析的加速器及加速方法技术

技术编号:29672306 阅读:10 留言:0更新日期:2021-08-13 21:53
本发明专利技术涉及基因分析技术领域,具体公开了一种用于基因分析的加速器及加速方法,其中,加速器包括加速器阵列模块和粒度配置模块;加速器阵列模块包括m个计算单元,粒度配置模块用于将n个计算单元整合为加速核,其中n小于或等于m;粒度配置模块还用于获取指令信息,加速核用于根据指令信息进行加速计算;指令信息包括数据指令、参数指令和计算指令中的一种或多种。采用本发明专利技术的技术方案能够提高基因分析的速度。

【技术实现步骤摘要】
一种用于基因分析的加速器及加速方法
本专利技术涉及基因分析
,特别涉及一种用于基因分析的加速器及加速方法。
技术介绍
基因分析技术作为探索生命奥秘的重要手段,正成为生物信息学研究的重要分支,在物种鉴别、基因检测、疾病诊断等方面有着广泛的应用,基因分析技术的飞速发展为精准医疗奠定了坚实的基础,也使得临床诊断前景更加光明。近年来,随着第二代测序技术的高速发展,测序成本的下降速率已经远远超过摩尔定律的下降速率,呈爆炸式增长的基因数据量对现有处理器的处理能力提出了新的挑战。在基因分析流程中,动态规划算法、成对隐马尔可夫模型等步骤必不可少且相当耗时,已经成为目前基因分析流程中重要的性能瓶颈。目前主流的通用处理器如Intel,AMD,ARM,PowerPC均是商用处理器,未开放处理器的源代码。在没有开源代码的情况下,无法实现在芯片内部定制加速器模块,而且,主流的通用处理器采用的指令集为X86,ARM和Power等。这些指令集也不支持用户去定义调用特定加速器模块的指令。由于以上两点限制,所以目前主流的通用处理器仅仅能完成通用的计算功能。无法根据基因的特点进行自适应的加速,导致计算速度慢。为此,需要一种能提高计算速度的用于基因分析的加速器及加速方法。
技术实现思路
本专利技术提供了一种用于基因分析的加速器及加速方法,能够提高基因分析的速度。为了解决上述技术问题,本申请提供如下技术方案:本专利技术的目的之一是提供一种用于基因分析的加速器,包括加速器阵列模块和粒度配置模块;加速器阵列模块包括m个计算单元,粒度配置模块用于将n个计算单元整合为加速核,其中n小于或等于m;粒度配置模块还用于获取指令信息,加速核用于根据指令信息进行加速计算;指令信息包括数据指令、参数指令和计算指令中的一种或多种。基础方案原理及有益效果如下:由于基因读段的长度因测序技术和公司而各不相同,单一的计算单元无法对不同长度的读段进行计算,影响计算效率。本方案中,未采用已有的商用处理器,而且进行了重新设计,设置了包括m个计算单元的加速器阵列模块,还设置了粒度配置模块。粒度配置模块可以将其中n个计算单元整合为加速器,实现了粗细粒度的调整,可以对不同长度的读段序列进行计算。换句话说,通过粒度配置模块来对加速器阵列模块的粒度进行配置,将多个小的计算单元整合成大的计算单元来完成更长读段的计算。可以有效提高运算速度,缩短运算的时间。通过引入特定的指令信息,可以针对加速器的指令进行定制形成自定义指令即数据指令、参数指令和计算指令中的一种或多种。通过指令信息可以将加速器阵列模块执行计算需要的数据、参数等进行提前配置,加速器阵列模块在此基础上直接调用计算,效率更高。综上,本方案能够提高基因分析的速度。进一步,还包括输入缓存序列和输入缓冲序列,用于为加速器阵列模块提供加速计算需要的数据。便于加速器阵列模块直接从输入缓存序列和输入缓冲序列调取数据进行加速计算,与从计算机的内存中调用数据相比,无需借助PCIe和SerDes等接口进行数据传输,不会出现由于PCIe和SerDes等接口带宽远低于访存设备的带宽,造成交互损耗的问题,从而降低了交互损耗。进一步,所述计算单元包括数据选择器、数据缓存队列、第一计算模块、结果暂存队列、结果选择器和第二计算模块;第一计算模块和结果暂存队列的数量有若干个,且第一计算模块与结果暂存队列一一对应;数据选择器用于对输入数据和数据缓存队列中缓存的上一轮计算完成的数据,进行数据选择;数据缓存队列用于存储第一计算模块的结果;第一计算模块用于对数据选择器选择的数据进行第一次计算,并将计算结果输入到对应的结果暂存队列;所述结果暂存队列用于存储对应第一计算模块的计算结果;所述结果选择器用于为第二计算模块提供数据;所述第二计算模块用于提取结果暂存队列的数据进行第二次计算,将计算完成的数据输入数据缓存队列。通过设置数据选择器、数据缓存队列、第一计算模块、结果暂存队列、结果选择器和第二计算模块,可以实现多种基因分析步骤的加速。第一计算模块和结果暂存队列的数量有若干个,且第一计算模块与结果暂存队列一一对应,可以实现并行计算,提高计算速度。进一步,所述加速计算包括动态规划计算,动态规划计算中,输入缓存序列提供读段序列,输入缓冲序列提供参考序列;数据选择器用于对输入的参考序列和数据缓存队列中的上一轮计算完成的对比序列;进行数据选择;第一计算模块用于将读段序列与数据选择器输入的参考序列或对比序列进行比较,将比较结果存储在结果暂存队列中;第二计算模块用于提取结果暂存队列中的比较结果进行动态规划的反向回溯,得到比对序列,将对比序列输入数据缓存队列中。本优选方案可以有效支持动态规划计算,第一计算模块将读段序列与对比序列进行比较,有效地利用了动态规划算法中数据重用性的特点。进一步,所述加速计算还包括成对隐马尔可夫模型计算,成对隐马尔可夫模型计算中,输入缓存序列提供读段序列,输入缓冲序列提供单体型碱基序列;数据选择器用于对单体型碱基序列和数据缓存队列中缓存的上一轮计算完成的数据进行数据选择;数据缓存队列用于存储第一计算模块的计算结果;第一计算模块用于对数据选择器选择的数据与读段序列进行初始化计算或迭代计算,并将计算结果输入到对应的结果暂存队列;第二计算模块用于提取结果暂存队列的数据进行相似得分计算,得到相似得分。本优选方案可以有效支持成对隐马尔可夫模型计算。进一步,所述粒度配置模块整合的每个加速核的大小为:kernel_size/(read_length+edit_distance)其中kernel_size为单个计算单元支持的数据计算长度,read_length为当前的读段序列长度,edit_distance为允许的最长的编辑距离。使得加速器支持的数据计算长度与当前的读段序列长度相匹配,可以提高计算速度,缩短计算的时间。进一步,所述数据指令用于配置加速器阵列模块计算的数据地址,单个数据大小和数据总长度;参数指令用于配置加速器阵列模块加速计算的参数;计算指令用于在数据准备完成后,启动加速器阵列模块对数据执行加速计算,将计算结果写回数据指令配置的数据地址。通过数据指令、参数指令和计算指令可以实现对加速器阵列模块进行精确的控制。进一步,所述m个计算单元组成脉动阵列。采用脉动阵列,计算时,数据在阵列结构的各计算单元之间沿各自方向同步前进,吞吐量大,计算速度快。进一步,所述指令信息还包括辅助指令,辅助指令用于检测加速器阵列模块的行为。例如判断当前加速核是否计算完成等,可以对加速器阵列模块的加速过程进行监控。本专利技术的目的之二是提供一种用于基因分析的加速方法,使用上述加速器,实现对基因分析的加速。由于基因读段的长度因测序技术和公司而各不相同,单一本文档来自技高网...

【技术保护点】
1.一种用于基因分析的加速器,其特征在于,包括加速器阵列模块和粒度配置模块;/n加速器阵列模块包括m个计算单元,粒度配置模块用于将n个计算单元整合为加速核,其中n小于或等于m;/n粒度配置模块还用于获取指令信息,加速核用于根据指令信息进行加速计算;/n指令信息包括数据指令、参数指令和计算指令中的一种或多种。/n

【技术特征摘要】
1.一种用于基因分析的加速器,其特征在于,包括加速器阵列模块和粒度配置模块;
加速器阵列模块包括m个计算单元,粒度配置模块用于将n个计算单元整合为加速核,其中n小于或等于m;
粒度配置模块还用于获取指令信息,加速核用于根据指令信息进行加速计算;
指令信息包括数据指令、参数指令和计算指令中的一种或多种。


2.根据权利要求1所述的用于基因分析的加速器,其特征在于:还包括输入缓存序列和输入缓冲序列,用于为加速器阵列模块提供加速计算需要的数据。


3.根据权利要求2所述的用于基因分析的加速器,其特征在于:所述计算单元包括数据选择器、数据缓存队列、第一计算模块、结果暂存队列、结果选择器和第二计算模块;第一计算模块和结果暂存队列的数量有若干个,且第一计算模块与结果暂存队列一一对应;
数据选择器用于对输入数据和数据缓存队列中缓存的上一轮计算完成的数据,进行数据选择;
数据缓存队列用于存储第一计算模块的结果;
第一计算模块用于对数据选择器选择的数据进行第一次计算,并将计算结果输入到对应的结果暂存队列;
所述结果暂存队列用于存储对应第一计算模块的计算结果;
所述结果选择器用于为第二计算模块提供数据;
所述第二计算模块用于提取结果暂存队列的数据进行第二次计算,将计算完成的数据输入数据缓存队列。


4.根据权利要求3所述的用于基因分析的加速器,其特征在于:所述加速计算包括动态规划计算,
动态规划计算中,输入缓存序列提供读段序列,输入缓冲序列提供参考序列;
数据选择器用于对输入的参考序列和数据缓存队列中的上一轮计算完成的对比序列;进行数据选择;
第一计算模块用于将读段序列与数据选择器输入的参考序列或对比序列进行比较,将比较结果存储在结果暂存队列中;
第二计算模块用于提取结果暂存队列中的比较结果进行动态规划的反向回溯,得到比对序列,将...

【专利技术属性】
技术研发人员:谭光明李叶文高睿昊臧大伟刘万奇康宁
申请(专利权)人:中科计算技术西部研究院
类型:发明
国别省市:重庆;50

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

1