CN114281302A - 随机数生成装置、方法及其相关产品 - Google Patents

随机数生成装置、方法及其相关产品 Download PDF

Info

Publication number
CN114281302A
CN114281302A CN202011035413.5A CN202011035413A CN114281302A CN 114281302 A CN114281302 A CN 114281302A CN 202011035413 A CN202011035413 A CN 202011035413A CN 114281302 A CN114281302 A CN 114281302A
Authority
CN
China
Prior art keywords
random number
stage
instruction
state
update
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.)
Pending
Application number
CN202011035413.5A
Other languages
English (en)
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011035413.5A priority Critical patent/CN114281302A/zh
Publication of CN114281302A publication Critical patent/CN114281302A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本披露公开了一种随机数生成装置、计算装置、集成电路芯片、板卡、电子设备和使用前述随机数生成装置来生成随机数的方法。其中该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。本披露的方案可以提升随机数的生成效率,增加随机数的数据吞吐量。

Description

随机数生成装置、方法及其相关产品
技术领域
本披露一般地涉及随机数领域。更具体地,本披露涉及一种随机数生成装置、计算装置、集成电路芯片、板卡、电子设备和方法。
背景技术
在类似于统计应用、试验测试等多个场景中,随机数有着广泛的应用基础。随着统计或测试的数据量增加,对随机数的数据量和生成效率也有更高的要求。由于随机数的生成算法有大量的数据迭代运算,涉及的数据量相对较大,对生成随机数的硬件架构也有越来越高的要求。现有的随机数生成方式中,通常利用中央处理器(“CPU”)等通用处理器来生成随机数。然而,这类处理器为了保证其通用性,处理器中的冗余性设计相对较多,造成的开销相对较大,从而导致随机数的生成效率相对较低。
发明内容
为了解决上述现有技术中存在的问题,本披露提供一种具有支持多级流水运算的一个或多个流水运算电路的硬件架构。通过利用该硬件架构来执行包括生成随机数的计算指令,本披露的方案可以在包括增强硬件的处理性能、减小功耗、提高计算操作的执行效率和避免计算开销等多个方面获得技术优势。
在第一方面中,本披露提供一种随机数生成装置,包括:
至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算操作,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,
其中所述更新级运算电路配置成:
根据所述更新指令从随机数的状态空间读取至少一个状态向量;
通过基于所述至少一个状态向量的更新操作来获得更新后的状态向量;以及
利用所述更新后的状态向量来更新所述状态空间,
其中所述生成级运算电路配置成:
根据生成指令从更新的状态空间读取至少一个状态向量;以及
根据从更新的状态空间读取到的至少一个状态向量来执行生成操作,以便生成所述随机数。
在第二方面中,本披露提供一种计算装置,包括:控制电路,其配置成对接收到的计算指令进行解析,以获得所述随机数指令;以及如上所述并且将在下面多个实施例所讨论的随机数生成装置,其配置成根据所述随机数指令来生成随机数。
在第三方面中,本披露提供一种集成电路芯片,其包括如上所述并且将在下面多个实施例中描述的随机数生成装置或计算装置。
在第四方面中,本披露提供一种板卡,其包括如上所述并且将在下面多个实施例中描述的集成电路芯片。
在第五方面中,本披露提供一种电子设备,其包括如上所述并且将在下面多个实施例中描述的集成电路芯片。
在第六方面中,本披露提供一种使用随机数生成装置来生成随机数的方法,所述随机数生成装置包括至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,所述方法包括:
使用所述更新级运算电路来根据所述更新指令从随机数的状态空间读取至少一个状态向量并且通过更新操作来获得更新后的状态向量,并且利用所述更新后的状态向量来更新状态空间;以及
使用所述生成级运算电路来根据所述生成指令从更新的状态空间读取至少一个状态向量来执行生成操作,以便生成所述随机数。
通过利用本披露的随机数生成装置、计算装置、集成电路芯片、板卡、电子设备和方法,可以高效地执行流水运算,尤其是人工智能领域内的各种多级流水运算。进一步,本披露的方案可以借助于独特的硬件架构来实现高效的随机数生成操作,从而提升硬件的整体性能并减小计算开销。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本披露一个实施例的随机数生成装置的框图;
图2是示出根据本披露另一个实施例的随机数生成装置的框图;
图3是示出根据本披露又一个实施例的随机数生成装置的框图;
图4是示出根据本披露实施例的状态空间内状态向量的索引示意图;
图5是示出根据本披露实施例的计算装置的框图;
图6是示出根据本披露实施例的使用随机数生成装置来生成随机数的方法的简化流程图;
图7是示出根据本披露实施例的一种组合处理装置的结构图;以及
图8是示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
本披露的方案提供一种支持多级流水运算的硬件架构。当该硬件架构实现于随机数生成装置中时,该随机数生成装置至少包括一个或多个多级流水运算电路,其中每个多级流水运算电路可以构成本披露的一条多级运算流水线。在该多级运算流水线中,可以包括逐级布置的多个运算电路。在一个实施方式中,当接收到多个随机数指令时,前述的多级运算流水线中的每级运算电路可以配置成执行所述多个随机数指令中的对应一个随机数指令。借助于本披露的硬件架构和随机数指令,可以高效地执行并行随机数生成操作,扩展了计算的应用场景并且减小了计算开销。
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
图1是示出根据本披露一个实施例的随机数生成装置100的框图。如图1所示,本披露的随机数生成装置100包括至少一个多级流水运算电路(如图3的302所示出的,稍后详细描述)。该多级流水运算电路可以包括更新级运算电路102和生成级运算电路104。在一个或多个应用场景中,一个所述多级流水运算电路可以构成本披露上下文中的一条多级运算流水线。鉴于此,前述的更新级运算电路102和生成级运算电路104可以视为一条多级流水线中的两级运算电路。在该两级运算电路的每一级中,可以包括一个或多个相同的或不同的运算电路。在一个实施例中,所述多级运算流水线可以根据随机数指令来执行用于生成随机数的多级流水运算操作。所述随机数指令可以包括更新指令和/或生成指令。例如,在一条多级运算流水线中,所述更新级运算电路可以根据所述更新指令执行对应的更新操作,而所述生成级运算电路可以根据所述生成指令执行生成操作,以便生成所述随机数。
在一个实施例中,所述更新级运算电路可以配置成根据所述更新指令从随机数的状态空间(例如可以是一个循环利用的存储空间)读取至少一个状态向量,并且可以通过基于所述至少一个状态向量的更新操作来获得更新后的状态向量。进一步,在获得更新后的状态向量后,可以利用该更新后的状态向量更新所述状态空间。
在一个或多个应用场景中,所述更新级运算电路可以根据所述更新指令从所述状态空间读取多个状态向量(例如多个长度相同的向量数据),并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。例如,根据“用于图形处理器动态生成器的梅森旋转”(Mersenne Twister for Graphic Processor Dynamic Creator,“MTGPDC”)随机数生成算法,可以读取状态空间中一个长度为L的状态向量R0。接着,可以读取状态空间中与R0长度相同的两个状态向量R1和Rm。然后,根据更新指令并利用三个状态向量和状态参数来执行相应的更新操作,从而获得一个与R0长度相同的更新后的状态向量R0’。最后,可以将该更新后的状态向量R0’写回所述状态空间中R0的原地址中,以更新状态向量(或者说状态空间)。
在执行所述更新操作后,可以根据所述生成指令来执行随机数生成操作。在一个实施例中,所述生成级运算电路可以根据生成指令从更新的状态空间读取至少一个状态向量,并且可以根据从更新的状态空间读取到的至少一个状态向量来执行生成操作,以便生成所述随机数。
在一个应用场景中,所述生成级运算电路可以配置成根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量来执行所述随机数生成操作,以生成所述随机数。依然以前述的“MTGPDC”随机数生成算法为例,可以从状态空间中读取在前述更新操作中获得的更新后的状态向量R0’和另一个与R0’具有同样长度L的状态向量R(m-1)。然后,可以利用上述两个状态向量来执行与生成操作相关的运算,以生成随机数。
在一个实施例中,所述更新指令和/或生成指令执行对应的流水操作与所述状态空间中多个状态向量的索引方式相关联。在一个运算场景中,通过利用状态空间中的不同状态向量,执行更新操作或生成操作可以获得不同的更新后的状态向量或生成随机数。
进一步,所述更新级运算电路和所述生成级运算电路可以根据所述状态空间中多个状态向量的索引方式不同而分别更新不同数目的状态向量和/或生成不同数目的随机数。在一个应用场景中,所述多级运算流水线可以针对状态空间中的状态向量选择性地输出随机数。例如,所述多级运算流水线中的更新级运算电路执行更新操作后,可以只向状态空间输出一些内部状态(例如更新的状态向量)来更新状态空间,而此时相应的生成级运算电路可以暂时不执行生成随机数的操作,即暂时不生成随机数。替代地,生成级运算电路也可以根据更新级运算电路的更新操作,从状态空间中的某个预先选定的状态向量开始重新执行生成随机数的操作。
通过前述的多级运算流水线来实现更新级运算电路或生成级运算电路的硬件架构,可以根据更新指令或生成指令通过逐级设置的、每一级的多个相同或不同的运算器执行更新或生成操作。该硬件架构的应用可以在一定程度上提升随机数生成装置的整体性能,减少计算开销和降低功耗。
图2是示出根据本披露另一个实施例的随机数生成装置200的框图。从图2中看出,随机数生成装置200不仅包括图1中的随机数生成装置100的更新级运算电路102和生成级运算电路104,还进一步示出了多个其他电路。由于前文已经结合图1对更新级运算电路和生成级运算电路的功能进行了详细描述,下文将不再赘述。
如图2所示,本披露的前述多级流水运算电路还可以包括初始化级运算电路202。根据本披露的一些应用场景,在所述更新级运算电路执行更新操作前,还可以通过所述初始化级运算电路执行初始化操作。鉴于此,前述的随机数指令还可以包括初始化指令。在一个实施例中,所述初始化级运算电路可以根据所述初始化指令来执行初始化操作。具体地,所述初始化级运算电路根据所述初始化指令来获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的所述状态空间。在一个应用场景中,所述初始化级运算电路可以利用获取的随机数种子执行多次迭代操作(例如乘法操作和/或逻辑操作等),以生成多个状态向量来构成状态空间。附加地或可选地,所述多级流水运算电路还可以包括消除电路。与之相对应,随机数指令还可以包括消除指令。在前述的初始化级运算电路、更新级运算电路和生成级运算电路完成随机数生成操作后,所述消除电路可以根据所述消除指令消除所述多级流水运算电路执行相关操作后产生的影响。例如,整个随机数生成操作的状态空间的地址指针位置清零,以便根据新的随机数指令执行下一次的操作。
为了实现数据的存储操作,本披露的随机数生成装置200还可以包括存储器204,其可以存储前述状态空间中的多个状态向量,并且在所述随机数指令执行完毕后,对所述状态空间进行整理,以用于下一随机数指令的执行。在一个实现场景中,本披露的存储器可以包括主存储模块和/或主缓存模块,其中所述主存储模块可以配置成存储用于执行多级流水运算的状态向量和状态参数与执行对应运算后生成的随机数,并且所述主缓存模块可以配置成缓存所述多级流水运算中执行运算后的中间运算结果。另外,存储器还可以具有用于与片外存储介质进行数据传输的接口,从而可以实现片上与片外***之间的数据搬运。
上文结合图1和图2描述了本披露的随机数生成装置包括一个多级流水运算电路(即一条多级运算流水线)的架构功能。下面将结合图3对本披露的包括一个或多个多级流水运算电路的随机数生成装置的架构功能做出进一步说明。
图3是示出根据本披露又一个实施例的随机数生成装置300的框图。如图3中所示,该随机数生成装置300可以包括一个或多个多级流水运算电路,如图中所示出的第1个多级流水运算电路302、第2个多级流水运算电路304和第3个多级流水运算电路306,其中每个所述多级流水运算电路可以构成结合图1所描述的一条多级运算流水线。以构成第1条多级运算流水线的第1个多级流水运算电路302为例,其可以执行包括第1-1级流水运算、第1-2级流水运算、第1-3级流水运算……第1-N级流水运算,共计N级的流水运算。类似地,第2个和第3个多级流水运算电路也具有支持N级流水运算的结构。
假定以第1条多级运算流水线为例,所述初始化级运算电路可以视为第1-1级流水运算、所述更新级运算电路可以视为第1-2级流水运算、所述生成级运算电路可以视为第1-3级流水运算。通过这样的示例性架构,本领域技术人员可以理解本披露的多个多级流水运算电路可以构成多条多级运算流水线,并且所述多条多级运算流水线可以并行地执行各自的多条随机数指令。通过所述多条多级运算流水线的硬件架构执行更新或生成操作以生成随机数,可以形成多倍的状态空间并行地执行生成随机数的操作,从而可以提升随机数的生成效率和增加数据吞吐量。
为了执行上述的每级流水运算,可以在每级布置包括有一个或多个运算器的运算电路来执行对应的随机数指令,以实现该级处的对应操作。在一个实施例中,响应于接收到的多个随机数指令,本披露的一个或多个多级流水运算电路可以配置成执行多数据运算,例如执行单指令多数据(“SIMD”)指令。在另一个实施例中,根据多级运算流水线中逐级布置的多个运算电路所支持的功能来预先确定每级运算电路所执行的多个操作。
在本披露的方案中,每个多级流水运算电路除了执行其所构成的一条多级运算流水线中的逐级运算操作以外,还可以配置成根据多条随机数指令来进行选择性地连接,以完成相应的多条随机数指令。在一个实现场景中,本披露的所述多条多级运算流水线可以包括第一条多级运算流水线和第二条多级运算流水线,其中所述第一条多级运算流水线的一个级或多个级的运算电路的输出端配置成根据所述随机数指令连接至所述第二条多级运算流水线的一个级或多个级的运算电路的输入端。例如,图中所示出的第1条多级运算流水线中的第1-2级流水运算可以根据随机数指令将其运算结果输入至第2条多级运算流水线中的第2-3级流水运算中。类似地,图中所示出的第2条多级运算流水线中的第2-1级流水运算可以根据随机数指令将其运算结果输入至第3条多级运算流水线中的第3-3级流水运算。在一些场景中,根据随机数指令的不同,不同条流水运算线中的两级流水运算可以实现双向的运算结果传递,例如所示出的第2条多级运算流水线中的第2-2级流水运算和第3条多级运算流水线中的第3-2级流水运算之间。
由上所述可以看出,为了实现数据(例如状态向量和状态参数)在同一条运算流水线和不同条运算流水线之间的传递,本披露的多个多级运算流水线中的每级运算电路可以具有输入端和输出端,用于在该运算电路处接收输入的数据和输出该级运算电路操作的结果。在一条多级运算流水线内,一个或多个级的运算电路的输出端配置成根据随机数指令连接到另一个级或另外多个级的运算电路的输入端,以执行所述随机数指令。例如,在第1条运算流水线内,第1-1级流水运算的结果可以根据随机数指令输入至该条运算流水线内的第1-3级流水运算。
在本披露的上下文中,前述的多个随机数指令可以是在一条或多条多级运算流水线内部运行的微指令或控制信号,其可以包括(或者说指示)一个或多个需多级运算流水线执行的运算操作。根据不同的运算操作场景,运算操作可以包括但不限于加法操作、乘法操作或取模操作等算术运算、与操作、异或操作、或操作等逻辑运算、移位操作,或者前述各类运算操作的任意多种组合。
在一些应用场景中,如前所述,本披露的方案可以对运算操作中将不使用的一级或多级流水运算电路执行旁路操作,即可以根据运算操作的需要选择性地使用多级流水运算电路的一级或多级,而无需令运算操作经过所有的多级流水操作。例如,前述的多级流水运算电路可以选择性地输出一些随机数。具体地,在所述多级运算流水电路中的更新级运算电路执行更新操作后,可以只向状态空间中输出一些内部状态(例如更新的状态向量)来更新状态空间,而此时相应的生成级运算电路可以暂时不执行生成随机数的操作。相应地,对于未使用的流水运算电路,可以在流水运算操作前或操作中予以旁路。
进一步,随机数生成装置300还包括存储器204,其可以存储所述多条多级流水线的状态空间中的多个状态向量和多条多级流水线及其之间的中间运算结果。该存储器与结合图2所描述的存储器具有类似的结构和功能,因此不再赘述。
图4是示出根据本披露实施例的状态空间内状态向量的索引示意图。为了更好地理解针对随机数生成装置生成随机数的过程,下面将以“MTGPDC”随机数生成算法为例来说明本披露的更新级和生成级运算电路执行对应操作以生成随机数的过程。进一步,假定用于本例中的随机数生成装置包括一条三级运算流水线,并且前述初始化级运算电路、更新级运算电路和生成级运算电路分别为该三级运算流水线中的第1级、第2级和第3级流水运算电路。
如图4所示,所述初始化级运算电路可以根据随机数种子生成一个长度为N(或者说包括N个状态向量)的状态空间X。例如,地址指针为i、i+1和i+M的多个状态向量X(i)、X(i+1)和X(i+M)。
在执行初始化设置后,可以通过第2级流水运算电路(即更新级运算电路),根据更新指令中预先选定的地址指针,执行对应的更新操作。基于前述的“MTGPDC”随机数生成算法,可以从状态空间中分别读取3个长度为L1的状态向量X(i)、X(i+1)和X(i+M)。其中i、i+1、i+M为该状态向量到状态空间X的首地址的距离(即每个状态向量的地址指针)。通过该级流水运算电路执行相应的运算操作后,可以生成一个长度为L1的状态向量X(i+N)。假设状态空间中的最后一个地址指针加1的地址指针为N,则i与(i+N)为同一地址位。根据所述更新指令可以将X(i+N)更新至X(i)的地址以更新状态空间中的状态向量X(i)。下文以一段源代码执行前述的“MTGPDC”随机数生成算法为例,说明更新级运算电路利用3个状态向量X(i)、X(i+1)和X(i+M)获得更新后的状态向量X(i+N)所执行的运算过程:
t=X[i+1]^(x[i]|mask);
t=t^(t<<sh1);
u=t^(X[i+M]>>sh2);
X[i+N]=u^(R_table[u&0xF])。
进一步,在获得更新后的状态向量X(i+N)后,基于前述的“MTGPDC”随机数生成算法,可以从状态空间X中读取一个状态向量X[i+(m-1)]。通过第3级流水运算电路,利用前述的两个状态向量X[i+(m-1)]和X(i+N),并根据生成指令来执行生成操作的相关运算,从而生成随机数。其中,[i+(m-1)]表示该状态向量到状态空间X的首地址的距离。下面以如下一段源代码执行前述的“MTGPDC”随机数生成算法为例,说明生成级运算电路利用状态向量X[i+(m-1)]和X(i+N)生成随机数所执行的运算过程:
t=X[i+(M-1)]^(X[i+(M-1)]);
t=t^(t>>8);
O[i]=X[i+N]^T_table[t&0x4]。
上文以“MTGPDC”随机数生成算法为例,通过三级流水运算电路根据不同的随机数指令执行初始化操作、更新操作和生成操作,描述了生成随机数的运算过程。在一个实施例中,在执行多级流水运算的过程中,根据初始化指令还可以设置从状态空间的首地址开始循环执行更新操作和/或生成操作,以便更新N个状态向量和生成随机数。
如前所述,本披露的方案是通过循环使用一定范围的状态空间来实现其无限大。即可以对状态空间X中的状态向量进行循环访问。在一个实施例中,所述索引方式可以包括以所述状态空间中所有状态向量的数目N为模来对所述更新的状态向量进行取模操作,以建立针对所述状态空间的索引。在一些应用场景中,在前述的更新操作或生成操作的运算过程中,各状态向量X(j)可以认为是X[(j)%N],%表示取模操作。另外,可以通过设置不同的索引方式(即选定不同的地址指针),而对状态空间X中的不同状态向量进行循环更新。
以前述的“MTGPDC”随机数生成算法为例,本披露的更新级运算电路或生成级运算电路可以根据更新指令或生成指令(实现为例如一条或多条微指令)来选择四个状态向量X(i)、X(i+1)、X[i+(M-1)]和X(i+M),从而执行更新或生成操作的过程。鉴于前述的状态空间X支持循环访问,该四个状态向量对应的地址指针的相对位置关系也会产生相应的变化。当四个状态向量的地址指针具有不同的相对位置关系时,也会获得不同的状态向量结果。
为了简化和便于讨论的目的,可以将上述四个状态向量X[i]、X[i+1]、X[i+(M-1)]和X[i+M]简写为符号“0、1、M和M”,该四个符号的数值代表了四个地址指针距离状态空间X的首地址的距离。如前所述,状态空间X的最后一个地址指针+1的地址指针为N。在利用运算流水线循环更新N个状态向量和生成随机数的过程中,四个地址指针在状态空间X中的相对位置会出现以下第(1)~第(4)的四种不同的相对位置关系。在不同的相对位置关系处,为了能够成功地执行更新操作(例如为了防止更新的状态向量覆盖后续要使用的状态向量或者超出状态空间X的长度N)和生成操作而从状态空间X中所能读取的状态向量数目也具有相应的变化:
(1)当前述四个地址指针的相对位置关系为0<1<M<M时,执行更新操作和生成操作所能读取的状态向量的数目为:min(M–0,N–M),也即生成min(M–0,N–M)个伪随机数,min()表示取二者之间的较小者,此处(M–0)表示位于M与0两个地址指针之间的状态向量数目,而N–M表示位于状态空间X的最后地址指针N与M地址指针之间的状态向量数目;
(2)当前述四个地址指针的相对位置关系为M<0<1<M时,执行更新操作和生成操作所能读取的状态向量的数目为:(N–1)或者(M-0),也即生成(N–1)或者(M-0)个伪随机数,此时(N-1)等于(M-0),此处(N–1)表示位于最后地址指针N与1的两个地址指针之间的状态向量数目,而(M-0)表示位于M与0两个地址指针之间的状态向量数目;
(3)当前述四个地址指针的相对位置关系为M<M<0<1时,执行更新操作和生成操作所能读取的状态向量的数目为min(N–1,0–M),也即生成min(N-1,0–M)个伪随机数,此处(N-1)等于(0-M),此处(N–1)表示位于最后地址指针N与1的两个地址指针之间的状态向量数目,而(0-M)表示位于0与M两个地址指针之间的状态向量数目;
(4)当前述四个地址指针的相对位置关系为1<M<M<0时,执行更新操作和生成操作所能读取的状态向量的数目为1,也即生成一个伪随机数。
在相对位置关系为上述第(4)种位置关系时,由于“0”这个地址指针位于整个状态空间X的最后一个地址位(即N位前的一位),因此只能执行一个单位的更新和生成操作,即生成一个伪随机数。在执行该位置关系下的对应操作之后,四个地址指针的相对位置恢复到起始的0<1<M<M的位置关系,即第(1)相对位置关系。
图5是示出根据本披露实施例的计算装置500的框图。从图5中看出,计算装置500不仅包括随机数生成装置300,还进一步包括控制电路502。由于前文结合图1-图4对随机数生成装置的结构和功能进行了详细描述,下文将不再赘述。
如图5所示,所述控制电路可以配置成对接收到的计算指令进行解析,以获得所述随机数指令。根据本披露的方案,计算指令可以是一种形式的硬件指令并且包括一个或多个操作码,而每个操作码可以表示将要由初始化级运算电路、更新级运算电路和生成级运算电路执行的一个或多个具体的操作。这些操作可以根据应用场景的不同而包括不同类型的操作,例如可以包括加法操作或乘法操作等算术运算、与或、异或等逻辑运算、移位操作,或者前述各类运算操作的任意多种组合。
相应地,本披露方案的随机数指令可以是根据计算指令解析后得到的随机数生成装置内部执行的一个或多个微指令。具体地,一个随机数指令中可以包括初始化指令、更新指令或生成指令对应于计算指令中的一个操作码的一个或多个微指令,表示由所述多级流水运算电路所执行的多个操作,例如初始化操作、更新操作或生成操作中的一个或多个操作。在一个实施例中,所述随机数生成装置还可以获取所述计算指令并对其进行解析,以获得与所述多个操作相对应的所述多条运算指令,其中所述运算指令包括所述随机数指令。
图6是示出根据本披露实施例的使用随机数生成装置生成随机数的方法600的简化流程图。根据前文的描述,可以理解这里的随机数生成装置可以是结合图1-图4所描述的随机数生成装置,其具有所示出的内部连接关系并且支持附加的各类操作。
如图6所示,在步骤602处,方法600可以使用所述更新级运算电路来根据所述更新指令从随机数的状态空间读取至少一个状态向量并且通过更新操作来获得更新后的状态向量,并且利用所述更新后的状态向量来更新状态空间。在一个实施例中,可以利用所述更新级运算电路从所述状态空间读取多个状态向量,并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。
接着,在步骤604处,方法600可以使用所述生成级运算电路来根据所述生成指令从更新的状态空间读取至少一个状态向量来执行生成操作,以便生成所述随机数。在一个实施例中,可以利用所述生成级运算电路来根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量执行所述生成操作,以生成所述随机数。
在一个实施例中,所述随机数指令还包括初始化指令,所述多级流水运算电路还包括初始化级运算电路。方法600可以利用所述初始化级运算电路来根据所述初始化指令获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的状态空间。利用该状态空间中的状态向量及参数,方法600可以顺序地执行上述的步骤602和604,以生成随机数。进一步,所述随机数生成装置还包括存储器,方法600可以利用所述存储器来存储所述状态空间中的多个状态向量。在所述随机数指令执行完毕后,方法600可以利用存储器对所述状态空间进行整理,以用于下一随机数指令的执行。
图7是示出根据本披露实施例的一种组合处理装置700的结构图。如图7中所示,该组合处理装置700包括计算处理装置702、接口装置704、其他处理装置706和存储装置708。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置710,该计算装置可以配置用于执行本文结合附图1-图6所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图8中示出的芯片802)。在一种实现中,该芯片是一种***级芯片(System on Chip,SoC),并且集成有一个或多个如图7中所示的组合处理装置。该芯片可以通过对外接口装置(如图8中示出的对外接口装置806)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡或一种电子设备,其包括上述的芯片封装结构。下面将结合图8对该板卡进行详细地描述。
图8是示出根据本披露实施例的一种板卡800的结构示意图。如图8中所示,该板卡包括用于存储数据的存储器件804,其包括一个或多个存储单元810。该存储器件可以通过例如总线等方式与控制器件808和上文所述的芯片802进行连接和数据传输。进一步,该板卡还包括对外接口装置806,其配置用于芯片(或芯片封装结构中的芯片)与外部设备812(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图7和图8的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个***,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款A1、一种随机数生成装置,包括:
至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算操作,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,
其中所述更新级运算电路配置成:
根据所述更新指令从随机数的状态空间读取至少一个状态向量;
通过基于所述至少一个状态向量的更新操作来获得更新后的状态向量;以及
利用所述更新后的状态向量来更新所述状态空间,
其中所述生成级运算电路配置成:
根据生成指令从更新的状态空间读取至少一个状态向量;以及
根据从更新的状态空间读取到的至少一个状态向量来执行生成操作,以便生成所述随机数。
条款A2、根据条款A1所述的随机数生成装置,其中所述随机数指令还包括初始化指令,所述多级流水运算电路还包括初始化级运算电路,其配置成根据所述初始化指令来获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的所述状态空间。
条款A3、根据条款A1所述的随机数生成装置,其中所述更新级运算电路配置成从所述状态空间读取多个状态向量,并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。
条款A4、根据条款A3所述的随机数生成装置,其中所述生成级运算电路配置成根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量来执行所述生成操作,以生成所述随机数。
条款A5、根据条款A3所述的随机数生成装置,其中所述更新指令和/或生成指令与所述状态空间中多个状态向量的索引方式相关联。
条款A6、根据条款A5所述的随机数生成装置,其中所述更新级运算电路和所述生成级运算电路根据所述状态空间中多个状态向量的索引方式不同而分别更新不同数目的状态向量和生成不同数目的随机数。
条款A7、根据条款A6所述的随机数生成装置,其中所述索引方式包括以所述状态空间中所有状态向量的数目为模来对所述更新的状态向量进行取模操作,以建立针对所述状态空间的索引。
条款A8、根据条款A1-A7的任意一项所述的随机数生成装置,进一步包括存储器,其配置成存储所述状态空间中的多个状态向量,并且在所述随机数指令执行完毕后,对所述状态空间进行整理,以用于下一随机数指令的执行。
条款A9、根据条款A8所述的随机数生成装置,其中当包括多个多级流水运算电路时,所述多个多级流水运算电路并行地执行各自的随机数指令。
条款A10、一种计算装置,包括:
控制电路,其配置成对接收到的计算指令进行解析,以获得所述随机数指令;以及
根据条款A1-A9的任意一项所述的随机数生成装置,其配置成根据所述随机数指令来生成随机数。
条款A11、根据条款A10所述的计算装置,其中所述计算指令的操作码表示由所述多级流水运算电路所执行的多个操作,所述随机数生成装置还配置成获取所述计算指令并对其进行解析,以获得与所述多个操作相对应的所述多条运算指令,其中所述运算指令包括所述随机数指令。
条款A12、一种集成电路芯片,包括根据条款A1-A9的任意一项所述的随机数生成装置或根据条款A10或A11所述的计算装置。
条款A13、一种板卡,包括根据条款A12所述的集成电路芯片。
条款A14、一种电子设备,包括根据条款A12所述的集成电路芯片。
条款A15、一种使用随机数生成装置来生成随机数的方法,所述随机数生成装置包括至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,所述方法包括:
使用所述更新级运算电路来根据所述更新指令从随机数的状态空间读取至少一个状态向量并且通过更新操作来获得更新后的状态向量,并且利用所述更新后的状态向量来更新状态空间;以及
使用所述生成级运算电路来根据所述生成指令从更新的状态空间读取至少一个状态向量来执行生成操作,以便生成所述随机数。
条款A16、根据条款A15所述的方法,其中所述随机数指令还包括初始化指令,所述多级流水运算电路还包括初始化级运算电路,所述方法包括:
利用所述初始化级运算电路来根据所述初始化指令获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的状态空间。
条款A17、根据条款A15所述的方法,其中利用所述更新级运算电路从所述状态空间读取多个状态向量,并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。
条款A18、根据条款A17所述的方法,其中利用所述生成级运算电路来根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量执行所述生成操作,以生成所述随机数。
条款A19、根据条款A17所述的方法,其中所述更新指令和/或生成指令与所述状态空间中多个状态向量的索引方式相关联。
条款A20、根据条款A19所述的方法,其中利用所述更新级运算电路和所述生成级运算电路来根据所述状态空间中多个状态向量的索引方式不同而分别更新不同数目的状态向量和生成不同数目的随机数。
条款A21、根据条款A20所述的方法,其中所述索引方式包括以所述状态空间中所有状态向量的数目为模对所述更新的状态向量进行取模操作,以建立针对所述状态空间的索引。
条款A22、根据条款A15-A21的任意一项所述的方法,其中所述随机数生成装置进一步包括存储器,所述方法包括利用所述存储器来存储所述状态空间中的多个状态向量,并且在所述随机数指令执行完毕后,所述方法利用存储器对所述状态空间进行整理,以用于下一随机数指令的执行。
条款A23、根据条款A22所述的方法,其中当所述随机数生成装置包括多个多级流水运算电路时,所述方法利用所述多个多级流水运算电路来并行地执行各自的随机数指令。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (23)

1.一种随机数生成装置,包括:
至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算操作,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,
其中所述更新级运算电路配置成:
根据所述更新指令从随机数的状态空间读取至少一个状态向量;
通过基于所述至少一个状态向量的更新操作来获得更新后的状态向量;以及
利用所述更新后的状态向量来更新所述状态空间,
其中所述生成级运算电路配置成:
根据生成指令从更新的状态空间读取至少一个状态向量;以及
根据从更新的状态空间读取到的至少一个状态向量来执行生成操作,以便生成所述随机数。
2.根据权利要求1所述的随机数生成装置,其中所述随机数指令还包括初始化指令,所述多级流水运算电路还包括初始化级运算电路,其配置成根据所述初始化指令来获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的所述状态空间。
3.根据权利要求1所述的随机数生成装置,其中所述更新级运算电路配置成从所述状态空间读取多个状态向量,并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。
4.根据权利要求3所述的随机数生成装置,其中所述生成级运算电路配置成根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量来执行所述生成操作,以生成所述随机数。
5.根据权利要求3所述的随机数生成装置,其中所述更新指令和/或生成指令与所述状态空间中多个状态向量的索引方式相关联。
6.根据权利要求5所述的随机数生成装置,其中所述更新级运算电路和所述生成级运算电路根据所述状态空间中多个状态向量的索引方式不同而分别更新不同数目的状态向量和生成不同数目的随机数。
7.根据权利要求6所述的随机数生成装置,其中所述索引方式包括以所述状态空间中所有状态向量的数目为模来对所述更新的状态向量进行取模操作,以建立针对所述状态空间的索引。
8.根据权利要求1-7的任意一项所述的随机数生成装置,进一步包括存储器,其配置成存储所述状态空间中的多个状态向量,并且在所述随机数指令执行完毕后,对所述状态空间进行整理,以用于下一随机数指令的执行。
9.根据权利要求8所述的随机数生成装置,其中当包括多个多级流水运算电路时,所述多个多级流水运算电路并行地执行各自的随机数指令。
10.一种计算装置,包括:
控制电路,其配置成对接收到的计算指令进行解析,以获得所述随机数指令;以及
根据权利要求1-9的任意一项所述的随机数生成装置,其配置成根据所述随机数指令来生成随机数。
11.根据权利要求10所述的计算装置,其中所述计算指令的操作码表示由所述多级流水运算电路所执行的多个操作,所述随机数生成装置还包括控制电路,其配置成获取所述计算指令并对其进行解析,以获得与所述多个操作相对应的所述多条运算指令,其中所述运算指令包括所述随机数指令。
12.一种集成电路芯片,包括根据权利要求1-9的任意一项所述的随机数生成装置或根据权利要求10或11所述的计算装置。
13.一种板卡,包括根据权利要求12所述的集成电路芯片。
14.一种电子设备,包括根据权利要求12所述的集成电路芯片。
15.一种使用随机数生成装置来生成随机数的方法,所述随机数生成装置包括至少一个多级流水运算电路,其包括逐级布置的多个运算电路并且配置成根据随机数指令来执行用于生成随机数的多级流水运算,其中所述多级流水运算电路包括更新级运算电路和生成级运算电路,并且所述随机数指令包括更新指令和/或生成指令,所述方法包括:
使用所述更新级运算电路来根据所述更新指令从随机数的状态空间读取至少一个状态向量并且通过更新操作来获得更新后的状态向量,并且利用所述更新后的状态向量来更新状态空间;以及
使用所述生成级运算电路来根据所述生成指令从更新的状态空间读取至少一个状态向量来执行生成操作,以便生成所述随机数。
16.根据权利要求15所述的方法,其中所述随机数指令还包括初始化指令,所述多级流水运算电路还包括初始化级运算电路,所述方法包括:
利用所述初始化级运算电路来根据所述初始化指令获取随机数种子,并且基于所述随机数种子来生成包括多个状态向量的状态空间。
17.根据权利要求15所述的方法,其中利用所述更新级运算电路从所述状态空间读取多个状态向量,并且基于所述多个状态向量来执行更新操作,以获得一个更新后的状态向量。
18.根据权利要求17所述的方法,其中利用所述生成级运算电路来根据所述更新后的状态向量和从所述更新的状态空间所读取的一个状态向量执行所述生成操作,以生成所述随机数。
19.根据权利要求17所述的方法,其中所述更新指令和/或生成指令与所述状态空间中多个状态向量的索引方式相关联。
20.根据权利要求19所述的方法,其中利用所述更新级运算电路和所述生成级运算电路来根据所述状态空间中多个状态向量的索引方式不同而分别更新不同数目的状态向量和生成不同数目的随机数。
21.根据权利要求20所述的方法,其中所述索引方式包括以所述状态空间中所有状态向量的数目为模对所述更新的状态向量进行取模操作,以建立针对所述状态空间的索引。
22.根据权利要求15-21的任意一项所述的方法,其中所述随机数生成装置进一步包括存储器,所述方法包括利用所述存储器来存储所述状态空间中的多个状态向量,并且在所述随机数指令执行完毕后,所述方法利用存储器对所述状态空间进行整理,以用于下一随机数指令的执行。
23.根据权利要求22所述的方法,其中当所述随机数生成装置包括多个多级流水运算电路时,所述方法利用所述多个多级流水运算电路来并行地执行各自的随机数指令。
CN202011035413.5A 2020-09-27 2020-09-27 随机数生成装置、方法及其相关产品 Pending CN114281302A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011035413.5A CN114281302A (zh) 2020-09-27 2020-09-27 随机数生成装置、方法及其相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011035413.5A CN114281302A (zh) 2020-09-27 2020-09-27 随机数生成装置、方法及其相关产品

Publications (1)

Publication Number Publication Date
CN114281302A true CN114281302A (zh) 2022-04-05

Family

ID=80867752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011035413.5A Pending CN114281302A (zh) 2020-09-27 2020-09-27 随机数生成装置、方法及其相关产品

Country Status (1)

Country Link
CN (1) CN114281302A (zh)

Similar Documents

Publication Publication Date Title
US11720353B2 (en) Processing apparatus and processing method
CN111291880B (zh) 计算装置以及计算方法
CN107315574B (zh) 一种用于执行矩阵乘运算的装置和方法
CN107315715B (zh) 一种用于执行矩阵加/减运算的装置和方法
CN111651205B (zh) 一种用于执行向量内积运算的装置和方法
CN111651203B (zh) 一种用于执行向量四则运算的装置和方法
CN111651202B (zh) 一种用于执行向量逻辑运算的装置
CN111353124A (zh) 运算方法、装置、计算机设备和存储介质
US20230259737A1 (en) Integrated computing apparatus, chip, board card, device and computing method
CN114281302A (zh) 随机数生成装置、方法及其相关产品
WO2022001497A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
TWI752068B (zh) 一種運算裝置及其操作方法
CN115437603B (zh) 用于生成随机数的方法及其相关产品
CN111290788B (zh) 运算方法、装置、计算机设备和存储介质
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111338694B (zh) 运算方法、装置、计算机设备和存储介质
WO2022001455A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN111026440B (zh) 运算方法、装置、计算机设备和存储介质
CN115237370A (zh) 计算装置、数据处理方法及相关产品
CN111290789A (zh) 运算方法、装置、计算机设备和存储介质
CN111339060A (zh) 运算方法、装置、计算机设备和存储介质
CN113934678A (zh) 一种计算装置、集成电路芯片、板卡、设备和计算方法
CN115237371A (zh) 计算装置、数据处理方法及相关产品
CN115878184A (zh) 基于一个指令搬移多个数据的方法、存储介质及设备

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