当前位置: 首页 > 专利查询>辉达公司专利>正文

通过指令用于动态编程的处理器及配置该处理器的方法技术

技术编号:27439063 阅读:25 留言:0更新日期:2021-02-25 03:38
本公开提供了配置为根据指令执行动态编程的处理器、根据指令配置用于动态编程的处理器的方法以及使用用于配置并行处理单元的指令计算修改的SmithWaterman算法的方法。在一个示例中,配置的方法包括:(1)通过处理器的执行核心接收指示执行核心使用矩阵计算递归方程组的指令;(2)根据递归方程组配置执行核心以计算矩阵元素的状态,以及(3)将矩阵的当前元素的计算状态存储在执行核心的寄存器中,其中基于递归方程组和输入数据来确定计算状态。中基于递归方程组和输入数据来确定计算状态。中基于递归方程组和输入数据来确定计算状态。

【技术实现步骤摘要】
通过指令用于动态编程的处理器及配置该处理器的方法
[0001]相关申请的交叉应用
[0002]本申请主张William James Dally于2019年8月14日提交的美国临时申请序列号为62/886893、标题为“执行SMITH-WATERMAN步骤指令的GPU、使用该GPU的方法以及使用该方法和GPU的基因组管线(A GPU FOR PERFORMING A SMITH-WATERMAN STEP INSTRUCTION,A METHOD EMPLOYING THE GPU,AND A GENOMICS PIPELINE EMPLOYING THE METHOD AND GPU)”的优先权,该优先权与本申请共同转让,并通过引用整体并入本文。


[0003]本申请一般用于动态编程,更具体地用于配置执行动态编程的处理器,例如,创建专门的执行核心来加速矩阵计算,例如用于序列比对的基因组内部循环的矩阵计算。

技术介绍

[0004]动态编程通过将复杂问题分解为迭代求解的子问题来解决复杂问题。为了解决复杂的问题,对子问题进行排序,并使用排序中较早出现的子问题的结果来解决排序中较晚出现的子问题。矩阵可用于存储子问题的结果,以计算随后出现的子问题。
[0005]由于能够解决复杂问题,动态编程算法被用于解决包括经济、工程和基因组等不同领域的问题。基因组是生物学领域中对生物基因组的测序和分析感兴趣的领域。基因组的方向是确定完整的DNA序列和进行遗传作图以进一步了解生物系统的领域。
[0006]由于管理与基因组工程相关的大量数据,计算管线通常用于基因组应用程序。例如,从读取中执行汇编的完整管线涉及种子、筛选、比对、一致性和变量调用。大多数基因组应用程序的核心操作是序列比对,它可以是基于参考的或从头测序。不管是哪种类型,都可以使用构建阵列的各种算法通过动态编程来执行比对,其中阵列的每个单元或元素表示整个比对问题的一个子问题,并且在任何给定时间仅存储阵列的当前反对角线。Smith Waterman算法是用于比对的算法示例。

技术实现思路

[0007]在一方面,公开了根据指令配置用于动态编程的处理器的方法。在一个示例中,配置的方法包括:(1)通过处理器的执行核心接收指示执行核心使用矩阵计算递归方程组的指令;(2)根据递归方程组配置执行核心以计算矩阵元素的状态,以及(3)将矩阵的当前元素的计算状态存储在执行核心的寄存器中,其中基于递归方程组和输入数据来确定计算状态。
[0008]在另一方面,公开了一种处理器。在一个示例中,处理器包括:(1)存储器,该存储器被配置为存储输入代码,该输入代码包括指定使用矩阵计算递归方程组的数学运算的指令,以及(2)至少一个执行核心,被配置为接收该指令和输入数据,对输入数据执行数学运算以生成计算状态,并将矩阵当前元素的计算状态存储在执行核心的至少一个寄存器中。
[0009]在另一方面,本公开提供了一种使用用于配置并行处理单元(PPU)的指令来计算
修改的SmithWaterman算法的方法。在一个示例中,计算方法包括:(1)通过PPU的执行核心接收指示执行核心采用矩阵为修改的SmithWaterman算法计算递归方程组的指令,(2)根据递归方程组配置执行核心,以计算矩阵元素在并行和条带中的状态,以及(3)计算矩阵当前元素在条带中的计算状态,其中计算状态基于递归方程组和输入序列确定。
附图说明
[0010]图1示出了根据本公开的原理执行动态编程的处理器的示例的框图;
[0011]图2示出了根据本公开的原理构造的并行处理单元的示例的框图;
[0012]图3示出了具有多个多处理器的并行处理单元的示例的框图;
[0013]图4示出了根据本公开的原理用于计算递归方程组的矩阵的示例的图;
[0014]图5示出了根据本公开的原理划分为用于计算递归方程组的条带的矩阵的示例的图;
[0015]图6示出了通过指令配置用于动态编程的处理器的方法的示例的流程图;以及
[0016]图7示出了根据本公开的原理通过指令计算修改的Smith Waterman算法的方法的示例的流程图。
具体实施方式
[0017]本公开提供配置为根据指令执行动态编程的处理器。指令可以是指令集或是指令集的一部分,即抽象汇编语句、中间表示(IR)语句或与特定处理单元的特定指令集架构(ISA)相关联的汇编语言指令。例如,该指令可以是在安装时转换为目标硬件指令集的指令,例如与来自加利福尼亚州圣克拉拉Nvidia公司的图形处理单元(GPU)一起使用的并行线程执行(PTX)指令。此外,该指令可以是目标硬件指令集的一部分,该目标硬件指令集无需翻译的情况下配置处理器的本机硬件。作为硬件指令集,该指令可以向后兼容抽象汇编语句(如PTX)或其他伪汇编语言。该指令可用于配置不同类型的处理器,如并行处理器或串行处理器。因此,本公开涉及配置中央处理单元(CPU)和GPU以通过指令执行动态编程。通过使用指令,本公开提供了处理器解决方案,其与不执行动态编程时需要未使用的处理区域的较慢的、仅软件的解决方案和专用硬件解决方案相比是一种改进。例如,可以使用比软件解决方案更快的动态编程来引导指令加速基因和蛋白质序列的比对,并且在不执行比对时不浪费硬件。
[0018]在本文公开的示例中,本公开提供了通过计算每个周期矩阵的新反对角线来配置用于动态编程的处理器的指令。当反对角线的长度大于每个周期可用的并行计算能力时,则可以在条带中计算反对角线的元素。例如,当矩阵为100
×
100时,这是有利的。条带是在周期内并行(其包括基本并行)计算的矩阵的指定行数。因此,条带的大小或行数可以对应于在周期内指定用于并行计算矩阵元素的执行核心的数量。条带大小可以由指令设置。使用条带时,可以计算第一条带行,然后是第二条带行,依此类推,直到计算矩阵的每个元素。当采用条带时,条带最下面一行的中间状态可以被保存并用于下一条带的第一行。图4-5分别提供了16和8的矩阵和条带示例。
[0019]所公开的特征可以通过多种方式表现出来。例如,可以配置处理器的硬件(即排列和排序),以用于实现动态编程的指令。寄存器传输级(RTL)可用于为指令编写递归方程组。
编译器也可用于生成用于配置动态编程硬件逻辑的指令。不同的指令可以用来配置硬件,通过动态编程计算不同的递归方程组。不同指令的各种递归方程组可以存储在库中。这些库可以包括计算递归方程的优化过程。在一些示例中,递归方程组可以包括单个递归方程。
[0020]图1示出了用于根据指令执行动态编程的处理器100的示例的框图。处理器100可以是并行处理器,例如GPU。图2和3提供了具有多个执行核心的多处理器的并行处理单元的示例,多个处理核心可以配置为基于指令的动态编程。处理器100也可以是串行处理器,例如CPU。因此,该指令可用于配置单指令、多数据(SIMD)扩展以近似于并行处理单元(例如GPU)。可替代地,可以通过指令而不是CPU的扩展来本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种根据指令配置用于动态编程的处理器的方法,包括:通过所述处理器的执行核心接收指示所述执行核心使用矩阵计算递归方程组的指令;根据所述递归方程组配置所述执行核心,以计算所述矩阵的元素状态;以及将所述矩阵的当前元素的计算状态存储在所述执行核心的寄存器中,其中所述计算状态基于所述递归方程组和输入数据来确定。2.根据权利要求1所述的方法,其中所述配置包括配置所述执行核心中的每一个以在周期内计算所述计算状态中的单一一个。3.根据权利要求1所述的方法,其中所述配置包括配置所述执行核心以计算条带中的所述计算状态,其中所述条带对应于所述矩阵的多行。4.根据权利要求3所述的方法,还包括将矩阵元素的中间状态存储在所述条带的最后一行,以计算下一条带的第一行的状态。5.根据权利要求4所述的方法,其中所述中间状态存储在所述处理器的寄存器文件或所述处理器的共享存储器中。6.根据权利要求1所述的方法,其中所述矩阵的每个元素的计算状态仅取决于所述矩阵的三个元素,所述三个元素直接位于矩阵的正上方、正左侧、所述元素的正左侧的正上方。7.根据权利要求1所述的方法,其中所述递归方程组包括单个递归方程。8.根据权利要求1所述的方法,其中所述递归方程组是基因组递归方程组。9.根据权利要求8所述的方法,其中所述基因组递归方程组是SmithWaterman递归方程。10.根据权利要求9所述的方法,其中所述SmithWaterman递归方程是修改的SmithWaterman递归方程。11.根据权利要求8所述的方法,其中所述基因组递归方程组是Needeman Wunsch递归方程。12.根据权利要求1所述的方法,其中所述指令是用于所述执行核心的硬件的汇编语言指令。13.根据权利要求1所述的方法,其中所述指令是抽象汇编语句或中间表示(IR)语句。14.根据权利要求1所述的方法,其中所述执行核心是图形处理单元(GPU)的并行执行核心。15.一种处理器,包括;存储器,配置为存储包括指令的输入代码,所述指令指定使用矩阵计算递归方程组的数学运算;以及至少一个执行核心,配置为接...

【专利技术属性】
技术研发人员:W
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1