实现用于加速史密斯-沃特曼序列对齐的专用指令的制作方法

文档序号:33745208发布日期:2023-04-06 11:18阅读:71来源:国知局
实现用于加速史密斯-沃特曼序列对齐的专用指令的制作方法

各种实施例一般涉及并行处理系统,更具体地,涉及实现用于加速史密斯-沃特曼(smith-waterman)序列对齐的专用指令。


背景技术:

1、smith-waterman算法用于各种应用,例如科学、工程和数据应用,用于量化两个序列的子序列对齐的好坏,并确定优化的子序列的对齐或这些序列的“局部对齐”。例如,smith-waterman算法是许多基因组学算法的构建块,例如用于确定生物体dna序列以及将dna或蛋白质序列与基因组数据库进行比较的算法。

2、为了使用smith-waterman算法解决目标序列“t”和查询序列“q”的局部对齐问题,软件应用程序实施了矩阵填充阶段和回溯阶段或反向矩阵填充阶段。在矩阵填充阶段,软件应用程序实施动态编程技术,将优化局部对齐的计算分解为二维(2d)评分矩阵“h”中包括的相互依赖的子对齐分数的计算。评分矩阵包括但不限于初始值的最顶行和最左列、目标序列的每个符号的不同行以及查询序列的每个符号的不同列。对于长度为m的目标序列和长度为n的查询序列q,评分矩阵因此是(m+1)x(n+1)矩阵。由于初始值的行和列引入的偏移量,对于0<j<=m和0<k<=n,表示为h(j,k)的子对齐分数量化了以符号t(j-1)结尾的t的任意子序列和以符号q(k-1)结尾的q的任意子序列之间的最大相似度。作为矩阵填充阶段的一部分,软件应用程序确定最大子对齐分数和最大子对齐分数在评分矩阵内的位置。在回溯阶段或反向矩阵填充阶段,软件应用程序确定评分矩阵内对应于最大子对齐分数的起始位置。起始位置和最大子对齐分数的位置定义了与目标序列和查询序列的优化局部对齐对应的目标子序列和查询子序列。

3、因为对长度为m的t和长度为n的q执行矩阵填充阶段需要(mxn)时间或“二次时间”,而执行回溯阶段需要(m+n)或“线性时间”,在解决许多局部对齐问题时,矩阵填充阶段可能是性能瓶颈。在这方面,对于0<j<=m和0<k<=n,可以通过以下等式(1a)–(1c)计算h(j,k):

4、

5、

6、

7、在等式(1a)-(1c)中,e和f是存储中间结果的矩阵,以便在计算相关子对齐分数时重复使用。gapdeleteextend、gapdeleteextend、gapinsertopen和gapinsertextend是“间隙(gap)”常数;substitution(t(j-1),q(k-1))是对于符号t(j-1)和q(k-1)包括在对应于符号匹配值(例如,4)或符号失配值(例如,-1)的替换矩阵中的替换值。

8、由于在通常大小的dna和蛋白质序列的矩阵填充阶段必须执行大量计算,一些软件应用程序使用在并行处理器上执行的指令集或“程序”来加速矩阵填充阶段。这些类型的处理器可以通过跨许多不同的处理核心并行执行大量线程来实现非常高的计算吞吐量。在并行处理器上执行smith-waterman矩阵填充阶段的一种传统方法涉及将与位置相关联的子对齐分数计算分布在线程组中,这些位置可以彼此独立地计算。回到等式(1a)-(1c),h(j,k)取决于h(j-1,k-1)对应于相邻的左上角对角线位置,e(j-1,k)和h(j-1,k)对应于相邻的顶部位置,f(j,k-1)和h(j,k-1)对应于相邻的左侧位置。因此,可以彼此独立地计算沿着评分矩阵的每个反对角线的子对齐分数计算。在“反对角线”实现方式中,评分矩阵的反对角线从评分矩阵的左上角开始一次处理一个。为了处理每个反对角线,沿反对角线的每个位置都分配给不同的线程,线程并行计算与分配的位置对应的e、f、h和替换值。然后,线程将e、f和h值分别写入存储在共享存储器中的e矩阵、f矩阵和评分矩阵中的相应位置。

9、上述方法的一个缺点是与每个子对齐分数相关联的计算效率低下会限制归因于并行化整个矩阵填充阶段的性能改进。计算每个子对齐分数涉及顺序执行十个指令,其中包括至少五个加法/减法指令和五个二运算数最大指令。检索f值、e值、子对齐分数和用于计算每个子对齐分数的指令调用的替换值通常涉及执行降低计算吞吐量的附加数据移动指令。此外,确定和存储最大子对齐分数和相关位置需要为每个子对齐分数执行若干指令。由于附加指令导致效率低下,执行矩阵填充阶段所需的时间可能非常长。例如,使用上述方法,对47兆碱基对(mbp)长的人类21号染色体和33兆碱基对(mbp)长的黑猩猩22号染色体执行矩阵填充阶段可能需要将近一天的时间。

10、如前所述,本领域需要更有效的技术来用于并行处理器上执行smith-waterman算法的矩阵填充阶段。


技术实现思路

1、本发明的一个实施例阐述了一种处理器。该处理器包括对与第一源运算数、第二源运算数、第三源运算数和第一目的地运算数相关联的第一指令进行解码的指令解码器;以及耦合到所述指令解码器的第一执行单元,其基于所述第一源运算数的对应元素和所述第二源运算数的对应元素计算中间总和的一个或更多个元素中的每一个,并将所述第一目的地运算数的一个或更多个元素中的每一个设置为等于至少中间总和的对应元素和第三源运算数的对应元素中的最小值或最大值。

2、所公开的技术相对于现有技术的至少一个技术优势在于,利用所公开的技术,当使用并行处理器执行smith-waterman算法的矩阵填充阶段时,可以减少执行以计算每个子对齐分数的指令的数量。在这方面,利用所公开的技术,单个smith-waterman指令或六条指令smith-waterman序列可以用于并发地计算分别与一个、两个或四个不同的局部相关联的一个、两个或四个子对齐分数对齐问题。由于使用所公开的技术,与评分矩阵中的每个位置相关联的子对齐分数和中间结果可以以交错方式存储在单个单元格内,因此与从单独矩阵检索相同数据的传统技术相比,与数据移动相关联的低效率可以降低。此外,利用所公开的技术,在确定两个运算数的最小值或最大值时指示所选运算数的指令可用于减少在确定和存储最大子对齐分数和相关位置时执行的指令的数量。这些技术优势提供了对现有技术方法的一种或更多种技术改进。



技术特征:

1.一种处理器,包括:

2.根据权利要求1所述的处理器,其中所述第一目的地运算数包括:包括32位有符号整数的一个元素、包括32位无符号整数的一个元素、各包括16位有符号整数的两个元素、各包括16位无符号整数的两个元素、各包括8位有符号整数的四个元素、或各包括8位无符号整数的四个元素。

3.根据权利要求1所述的处理器,其中所述第一执行单元在所述第一源运算数的第一元素与所述第二源运算数的第一元素之间或与所述第二源运算数的所述第一元素的否定之间执行加法运算,以计算所述中间总和的第一元素。

4.根据权利要求1所述的处理器,其中所述第一执行单元将所述目的地运算数的第一元素设置为等于所述中间总和的第一元素、所述第三源运算数的第一元素、以及零中的最小值或最大值。

5.根据权利要求1所述的处理器,其中所述第一执行单元将所述目的地运算数的第一元素设置为等于所述中间总和的第一元素和所述第三源运算数的第一元素中的最小值或最大值。

6.根据权利要求1所述的处理器,其中所述第一指令被包括在六个指令的序列中,在由所述处理器执行所述六个指令时,在史密斯-沃特曼算法的矩阵填充阶段期间计算子对齐数据。

7.根据权利要求1所述的处理器,其中在对所述指令进行解码之前,所述指令解码器对与所述第四源运算数、所述第一源运算数和所述第三源运算数相关联的第二指令进行解码,并且其中所述处理器还包括:

8.根据权利要求7所述的处理器,其中所述第一执行单元被包括在整数管线中,并且所述第二执行单元被包括在浮点管线中。

9.根据权利要求1所述的处理器,其中所述第一源运算数的第一元素包括与评分矩阵中的顶部位置相对应的顶部子对齐分数,所述评分矩阵与史密斯-沃特曼算法相关联,并且所述第一目的地运算数的第一元素包括与所述评分矩阵中的当前位置相对应的当前e值。

10.根据权利要求1所述的处理器,其中所述第一源运算数的第一元素包括与评分矩阵中的左侧位置相对应的左子对齐分数,所述评分矩阵与史密斯-沃特曼算法相关联,并且所述第一目的地运算数的第一元素包括与所述评分矩阵中的当前位置相对应的当前f值。

11.根据权利要求1所述的处理器,其中所述第一目的地运算数的每个元素包括与不同的查询序列和与史密斯-沃特曼算法相关联的评分矩阵中的当前位置相对应的不同的当前f值。

12.一种处理器,包括:

13.根据权利要求12所述的处理器,其中所述第一目的地运算数包括:包括32位有符号整数的一个元素、包括32位无符号整数的一个元素、各包括16位有符号整数的两个元素、各包括16位无符号整数的两个元素,各包括8位有符号整数的四个元素,或各包括8位无符号整数的四个元素。

14.根据权利要求12所述的处理器,其中所述第一执行单元在所述第一源运算数的第一元素与所述第二源运算数的第一元素之间或与所述第二源运算数的所述第一元素的否定之间执行加法运算,以计算所述中间总和的第一元素。

15.根据权利要求12所述的处理器,其中所述第一执行单元将所述目的地运算数的第一元素设置为等于所述中间总和的第一元素、所述第三源运算数的第一元素、以及零中的最小值或最大值。

16.根据权利要求12所述的处理器,其中所述第一执行单元将所述目的地运算数的第一元素设置为等于所述中间总和的第一元素和所述第三源运算数的第一元素中的最小值或最大值。

17.根据权利要求12所述的处理器,其中所述第一指令被包括在六个指令的序列中,在由所述处理器执行所述六个指令时,在史密斯-沃特曼算法的矩阵填充阶段期间计算子对齐数据。

18.根据权利要求12所述的处理器,其中所述第一执行单元被包括在整数管线中,并且其中所述处理器还包括:

19.根据权利要求12所述的处理器,其中所述处理器包括并行处理单元、图形处理单元、张量处理单元、多核心中央处理单元或神经处理单元。

20.一种计算机实现的方法,包括:


技术总结
本公开涉及实现用于加速史密斯‑沃特曼序列对齐的专用指令。提供了用于加速史密斯‑沃特曼序列对齐的各种技术。例如,一组线程中的线程用于使用交错单元格布局将相关数据存储在寄存器中,同时为一个或更多个局部对齐问题计算子对齐数据。在另一个示例中,使用减少计算每个子对齐分数所需的周期数的专用指令。在另一个示例中,线程用于计算一个或更多个局部对齐问题的列的子集的子对齐数据,而其他线程基于从先前线程接收的部分结果数据开始计算子对齐数据。在计算出最大子对齐分数后,线程将最大子对齐分数和对应的位置存储在全局存储器中。

技术研发人员:M·P·特尔里克,A·S·蒂鲁马拉,S·加德雷
受保护的技术使用者:辉达公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1