1.一种处理器,包括:
一个或多个寄存器文件;和
执行单元,其配置为执行指令集中定义的指令类型的实例,所述指令集中的每个指令由操作码和一个或多个操作数组成;
其中所述执行单元是配置为运行多个并发线程的桶型线程执行单元,每个并发线程在重复序列的交错时隙的不同的相应一个中运行,而对于每个并发线程,所述一个或多个寄存器文件包括相应上下文寄存器组,所述相应上下文寄存器组布置为保持相应线程的程序状态,每个上下文寄存器组包括由相应线程使用的相应算术操作数寄存器组;
其中所述一个或多个寄存器文件其中一个还包括共同于一些或所有并发线程的共享权重寄存器组;
其中所述指令集中定义的指令类型包括具有操作数的算术指令,所述操作数在其中执行算术指令的线程的相应算术寄存器组之中指定源和目的地;和
其中所述执行单元配置为响应于算术指令的操作码而执行包括将来自所述源的输入乘以来自至少一个共享权重寄存器的至少一个权重的操作,并将结果放置于所述目的地。
2.如权利要求1所述的处理器,其中所述至少一个共享权重寄存器在算术指令的操作码中是隐含的,不被算术指令的任何操作数指定。
3.如权利要求1所述的处理器,其中所述算术指令采用另一个操作数,所述另一个操作数在共享权重寄存器组之中指定所述至少一个共享权重寄存器。
4.如权利要求1、2或3所述的处理器,其中所述输入包括向量,而乘法包括所述输入与来自共享权重寄存器的权重的向量之点积。
5.如权利要求3所述的处理器,其中:
所述输入包括向量,而乘法包括所述输入与来自共享权重寄存器的权重的向量之点积;和
所述至少一个共享权重寄存器包括来自多个共享权重寄存器子集之中的子集,每个子集保持相应的权重向量;并且其中所述另一个操作数选择从哪个子集取得权重向量以用于所述乘法。
6.如权利要求1、2或3所述的处理器,其中所述算术指令包括以下其中一项:向量点积指令、累加向量点积指令、矩阵积指令、累加矩阵积指令,或卷积指令。
7.如权利要求1、2或3所述的处理器,其中所述并发线程包括多个工作者线程,并且所述执行单元进一步布置为至少在一些时间运行监督者子程序,所述监督者子程序包括至少一个配置为管理工作者线程的监督者线程。
8.如权利要求7所述的处理器,其中所述监督者子程序配置为写入共享权重寄存器文件中的权重。
9.如权利要求8所述的处理器,配置成使得只有监督者子程序可以写入共享权重寄存器中的权重,并且工作者线程只可以读取共享权重寄存器。
10.如权利要求7所述的处理器,其中所述上下文寄存器对于每个可以并发执行的工作者线程包括相应一个上下文寄存器组,并包括布置为保持监督者子程序的程序状态的额外上下文寄存器组。
11.如权利要求10所述的处理器,其中所述监督者子程序布置为通过最初在所有时隙中运行来开始,并且在启动工作者线程前写入权重;并且其中所述监督者子程序通过将监督者子程序最初在其中运行的一些或所有时隙中的每一个放弃给相应的工作者线程,从而启动每个工作者线程。
12.如权利要求11所述的处理器,其中所述指令集包括运行指令,所述运行指令作为监督者子程序的一部分执行时,导致其中执行运行指令的时隙被放弃给其中一个工作者线程,使得工作者线程取代监督者子程序在该时隙中启动。
13.如权利要求12所述的处理器,其中所述指令集包括退出指令,所述退出指令在作为其中一个工作者线程的一部分执行时,导致其中执行退出指令的时隙被交回给监督者子程序,使得监督者子程序取代工作者线程再次在该时隙中继续运行。
14.如权利要求7所述的处理器,其中所述寄存器文件对于每个并发工作者线程包括单独的算术寄存器文件,相应的算术寄存器文件包括相应的算术操作数寄存器。
15.如权利要求14所述的处理器,其中所述寄存器文件包括单独的权重寄存器文件,所述单独的权重寄存器文件包括权重寄存器。
16.如权利要求15所述的处理器,其中所述权重寄存器文件布置成使得只有监督者子程序可以写入它,并且工作者线程只可以读取权重寄存器文件。
17.一种操作根据权利要求1至16中任一项配置的处理器的方法,所述方法包括通过执行单元在处理器上运行包括算术指令的一个或多个实例的程序。