一种用于生成服从一定分布的随机向量装置和方法制造方法及图纸

技术编号:16499495 阅读:19 留言:0更新日期:2017-11-04 11:07
本发明专利技术公开了一种用于生成随机向量的装置和方法。该装置包括:存储单元,用于存储随机向量生成指令相关的向量数据;寄存器单元,用于存储随机向量生成指令相关的标量数据;控制单元,用于对随机向量生成指令进行译码,并控制随机向量生成指令的执行过程;随机向量生成单元,用于根据译码后的随机向量生成指令,生成服从指定分布的随机向量;其中,所述随机向量生成单元为定制的硬件电路。本发明专利技术提供的随机向量生成装置及方法,通过定制的硬件电路实现了精简随机向量生成指令的完整过程,即通过一条精简的随机向量生成指令即可实现随机向量生成运算。

A method for generating random vector device and method of distribution

The invention discloses a device and a method for generating random vector. The apparatus includes a storage unit for storing random vector generation instruction related to vector data; register unit for generating random vector scalar data storage instructions; the control unit is used to decode the instruction generating random vector, execution and control command generating random vector generation unit; random vector, according to random vector generation after the instruction decoding, generating random vector distribution obeys the specified; among them, the random vector generation unit for custom hardware circuit. Random vector generation device and method provided by the invention, the customized hardware circuit to achieve a complete process of streamlining command generating random vector, by means of a simple random vector generation instruction to generate random vector operation.

【技术实现步骤摘要】
一种用于生成服从一定分布的随机向量装置和方法
本专利技术涉及计算机
,尤其涉及一种用于生成服从一定分布的随机向量的装置和方法,可以根据指令生出任意长度的服从一定分布的随机向量,随机分布的方式有多种,包括但不限于均匀分布和高斯分布。
技术介绍
随机向量,即向量中的每一个数值都是服从某一随机分布生成的结果。在人工神经网络的受限玻尔兹曼机中,即存在这样的步骤,要求对一组神经元组成的向量进行采样,即将向量中每一个神经元与一个随机数进行比较,神经元的值大于该向量就取1反之取0,这要求生成一组与神经元向量同等大小的由服从某一分布的随机数组成的随机向量。又比如将一组32位单精度浮点数转换值16位的半精度浮点数,如果选择随机进位的方法,则需要将截断部分与满足某分布的随机数进行比较,大于该随机数选择进1,这同样要求有一组满足某一分布的随机数,即随机向量。在现有技术中,一种最常用的实现生成随机向量的方法是在通用处理器上逐个生成满足某一分布的随机数。但是,这种方法每次只能生成一个随机数,在要求的数量较大时效率较低。同时在生成随机数时需要多条指令配合才能够完成该过程。
技术实现思路
有鉴于此,本专利技术提供了一种用于生成服从一定分布的随机向量装置和方法,用于能够生成满足某一分布的任意长度的随机向量,根据指令,可以选择多种分布和任意长度。根据本专利技术第一方面,提供了一种用于生成随机向量装置,该装置包括:存储单元,用于存储随机向量生成指令相关的向量数据;寄存器单元,用于存储随机向量生成指令相关的标量数据;控制单元,用于对随机向量生成指令进行译码,并控制随机向量生成指令的执行过程;随机向量生成单元,用于根据译码后的随机向量生成指令,生成服从指定分布的随机向量;其中,所述随机向量生成单元为定制的硬件电路。优选地,所述寄存器单元所存储的标量数据包括随机向量生成指令相关的随机向量存储地址、随机向量长度以及分布参数;其中,所述随机向量存储地址为所述存储单元中的地址。优选地,所述控制单元包括:指令队列模块,用于对译码后的随机向量生成指令进行顺序存储,并获取随机向量生成指令相关的标量数据。优选地,所述控制单元包括:依赖关系处理单元,用于在随机向量生成单元获取当前随机向量生成指令前,判断当前随机向量生成指令与之前未执行完的运算指令是否存在依赖关系。优选地,所述控制单元包括:存储队列模块,用于在当前随机向量生成指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前随机向量生成指令,并且在该依赖关系消除时,将暂存的随机向量生成指令送往随机向量生成单元。优选地,所述装置还包括:指令缓存单元,用于存储待执行的随机向量生成指令;输入输出单元,用于将随机向量生成指令相关的向量数据存储于存储单元,或者,从存储单元中获取随机向量生成指令相关的向量数据。优选地,所述随机向量生成指令包括操作码和操作域;所述操作码用于指示执行指定分布的随机向量生成操作;所述操作域包括立即数和/或寄存器号,指示随机向量生成相关的标量数据,其中寄存器号指向所述寄存器单元地址。优选地,所述存储单元为高速暂存存储器。根据本专利技术第二方面,提供了一种用于生成随机向量的装置,其该装置包括:取指模块,用于从指令序列中取出下一条要执行的随机向量生成指令,并将该随机向量生成指令传给译码模块;译码模块,用于对该随机向量生成指令进行译码,并将译码后的随机向量生成指令传送给指令队列模块;指令队列模块,用于暂存译码后的随机向量生成指令,并从随机向量生成指令或标量寄存器获得随机向量生成指令相关的标量数据;获得所述标量数据后,将所述随机向量生成指令送至依赖关系处理单元;标量寄存器堆,包括多个标量寄存器,用于存储随机向量生成指令相关的标量数据;依赖关系处理单元,用于判断所述随机向量生成指令与之前未执行完的运算指令之间是否存在依赖关系;如果存在依赖关系,则将所述随机向量生成指令送至存储队列模块,如果不存在依赖关系,则将所述随机向量生成指令送至随机向量生成单元;存储队列模块,用于存储与之前运算指令存在依赖关系的随机向量生成指令,并且在所述依赖关系解除后,将所述随机向量生成指令送至随机向量生成单元;随机向量生成单元,用于根据接收到随机向量生成指令生成服从指定分布的随机向量;高速暂存存储器,用于存储生成的随机向量;输入输出存取模块,用于直接访问所述高速暂存存储器,负责向所述高速暂存存储器中写入生成的随机向量。优选地,所述随机向量生成单元为定制的硬件电路。根据本专利技术第三方面,提供了一种用于生成随机向量的方法,该方法包括:取值模块从指令序列中取出下一条要执行的随机向量生成指令,并将该随机向量生成指令传给译码模块;译码模块对该随机向量生成指令进行译码,并将译码后的随机向量生成指令传送给指令队列模块;指令队列模块暂存译码后的随机向量生成指令,并从随机向量生成指令或标量寄存器获得随机向量生成指令运算相关的标量数据;获得所述标量数据后,将所述随机向量生成指令送至依赖关系处理单元;依赖关系处理单元判断所述随机向量生成指令与之前未执行完的运算指令之间是否存在依赖关系;如果存在依赖关系,则将所述随机向量生成指令送至存储队列模块,如果不存在依赖关系,则将所述随机向量生成指令送至随机向量生成单元;存储队列模块存储与之前运算指令存在依赖关系的随机向量生成指令,并且在所述依赖关系解除后,将所述随机向量生成指令送至随机向量生成单元;随机向量生成单元根据接收到的随机向量生成指令,生成服从指定分布的随机向量,并通过输入输出存取模块将生成的随机向量写入高速暂存存储器。本专利技术提供的随机向量生成装置及方法,通过定制的硬件电路实现了精简随机向量生成指令的完整过程,即通过一条精简的随机向量生成指令即可实现随机向量生成运算。本专利技术通过将参与计算的向量数据暂存在高速暂存存储器上(ScratchpadMemory),使得可以更加灵活有效地支持不同宽度的向量数据,同时定制的随机数生成单元能够更加高效地生成服从各种分布的随机数据,提升需要大量随机向量的算法的执行性能,本专利技术采用的指令更加精简,一条指令即可实现生成一组随机向量。本专利技术可以应用于以下场景中(包括但不限于):数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。附图说明图1是本专利技术提供的随机向量生成装置的结构示意图。图2是本专利技术提供的随机向量生成指令的格式示意图。图3是本专利技术实施例提供的随机向量生成装置的结构示意图。图4是本专利技术实施例提供的随机向量生成方法的流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术作进一步的详细说明。本专利技术提供一种用于生成随机向量的装置,包括存储单元、寄存器单元、控制单元和随机向量生成单元,存储单元用于存储向量,寄存器单元用于存储向量存储地址和其他标量参数,控制单元用于执行译码操作,根据指令控制各个模块,随机向量生成单元根据随本文档来自技高网...
一种用于生成服从一定分布的随机向量装置和方法

【技术保护点】
一种用于生成随机向量的装置,其特征在于,该装置包括:存储单元,用于存储随机向量生成指令相关的向量数据;寄存器单元,用于存储随机向量生成指令相关的标量数据;控制单元,用于对随机向量生成指令进行译码,并控制随机向量生成指令的执行过程;随机向量生成单元,用于根据译码后的随机向量生成指令,生成服从指定分布的随机向量;其中,所述随机向量生成单元为定制的硬件电路。

【技术特征摘要】
1.一种用于生成随机向量的装置,其特征在于,该装置包括:存储单元,用于存储随机向量生成指令相关的向量数据;寄存器单元,用于存储随机向量生成指令相关的标量数据;控制单元,用于对随机向量生成指令进行译码,并控制随机向量生成指令的执行过程;随机向量生成单元,用于根据译码后的随机向量生成指令,生成服从指定分布的随机向量;其中,所述随机向量生成单元为定制的硬件电路。2.如权利要求1所述的装置,其特征在于,所述寄存器单元所存储的标量数据包括随机向量生成指令相关的随机向量存储地址、随机向量长度以及分布参数;其中,所述随机向量存储地址为所述存储单元中的地址。3.如权利要求1所述的装置,其特征在于,所述控制单元包括:指令队列模块,用于对译码后的随机向量生成指令进行顺序存储,并获取随机向量生成指令相关的标量数据。4.如权利要求1所述的装置,其特征在于,所述控制单元包括:依赖关系处理单元,用于在随机向量生成单元获取当前随机向量生成指令前,判断当前随机向量生成指令与之前未执行完的运算指令是否存在依赖关系。5.如权利要求1所述的装置,其特征在于,所述控制单元包括:存储队列模块,用于在当前随机向量生成指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前随机向量生成指令,并且在该依赖关系消除时,将暂存的随机向量生成指令送往随机向量生成单元。6.如权利要求1-5任一项所述的装置,其特征在于,所述装置还包括:指令缓存单元,用于存储待执行的随机向量生成指令;输入输出单元,用于将随机向量生成指令相关的向量数据存储于存储单元,或者,从存储单元中获取随机向量生成指令相关的向量数据。7.如权利要求1所述的装置,其特征在于,所述随机向量生成指令包括操作码和操作域;所述操作码用于指示执行指定分布的随机向量生成操作;所述操作域包括立即数和/或寄存器号,指示随机向量生成相关的标量数据,其中寄存器号指向所述寄存器单元地址。8.如权利要求1-5、7任一项所述的装置,其特征在于,所述存储单元为高速暂存存储器。9.一种用于生成随机向量的装置,其特征在于,包括:取指模块,用于从指令序列中取出下一条要执行的随机向量生成指令,并将该随机向量生成指令传给译码模块;译码模块,用于对该随机向量...

【专利技术属性】
技术研发人员:刘道福张潇刘少礼陈天石陈云霁
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1