运算方法、装置及相关产品转让专利
申请号 : CN201811333948.3
文献号 : CN111178373B
文献日 : 2021-07-09
发明人 : 不公告发明人
申请人 : 中科寒武纪科技股份有限公司
摘要 :
权利要求 :
1.一种数据处理装置,其特征在于,所述装置包括:数据切分模块,用于对接收到的待处理数据进行切分,获得多个切分数据,为所述多个切分数据分别设置对应的索引字符,得到索引字符组,其中,所述索引字符是预先设置的,用于对任意一个待处理数据的切分数据进行索引字符设置;
索引洗牌模块,用于对索引字符组进行洗牌处理,获得洗牌后的索引字符组;
数据生成模块,根据所述洗牌后的索引字符组对所述多个切分数据进行重排,得到输入数据,并为所述输入数据添加标签,所述标签用于描述所述输入数据与所述输入数据输入神经网络模型后得到的输出之间的对应关系,其中,所述数据生成模块,包括:标签添加子模块,将所述洗牌后的索引字符组确定为所述输入数据的标签,带有标签的输入数据用于作为所述神经网络模型的训练样本数据。
2.根据权利要求1所述的装置,其特征在于,所述索引洗牌模块,包括:洗牌子模块,用于根据洗牌算法对所述索引字符组进行洗牌,获得洗牌后的索引字符组。
3.根据权利要求2所述的装置,其特征在于,所述洗牌算法包括等概率随机排列数组算法Fisher‑Yates Shuffle、经典洗牌算法Knuth‑Durstenfeld Shuffle和内外洗牌算法Inside‑Out Algorithm中的任一种。
4.根据权利要求1所述的装置,其特征在于,所述数据切分模块,还用于获取数据切分尺寸,并根据所述数据切分尺寸对所述待处理数据进行切分,获得所述多个切分数据,其中,所述数据切分尺寸包括切分长度和切分宽度。
5.根据权利要求1所述的装置,所述装置还包括:控制模块,用于获取所述输入数据和计算指令;
处理模块,用于根据所述计算指令,对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,所述机器学习计算包括人工神经网络计算,其中,所述装置还包括:存储模块和直接内存访问模块,所述存储模块包括:寄存器、缓存中一种或多种;
所述缓存,用于存储所述输入数据;
所述寄存器,用于存储所述输入数据中标量数据;
所述缓存包括高速暂存缓存。
6.根据权利要求5所述的装置,所述处理模块,包括:主处理子模块和多个从处理子模块,
所述控制模块,还用于解析所述计算指令得到多个运算指令,将所述多个运算指令以及所述输入数据发送给所述主处理子模块;
所述主处理子模块,用于对所述输入数据执行前序处理,以及与所述从处理子模块之间传输数据和运算指令;
所述从处理子模块,用于依据所述主处理子模块传输的数据及运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理子模块;
所述主处理子模块,还用于对所述多个中间结果执行后续处理得到所述计算指令的指令结果。
7.根据权利要求5所述的装置,其特征在于,所述控制模块包括:指令存储子模块、指令处理子模块和存储队列子模块;
所述指令存储子模块,用于存储与人工神经网络运算关联的计算指令;
所述指令处理子模块,用于对所述计算指令解析得到多个运算指令;
所述存储队列子模块,用于存储指令队列,所述指令队列包括:按所述指令队列的前后顺序待执行的多个运算指令,
其中,所述控制模块还包括:
依赖关系处理子模块,用于在确定所述多个运算指令中的第一运算指令与所述第一运算指令之前的第零运算指令存在关联关系时,将所述第一运算指令缓存在所述指令存储子模块内,并在确定所述第零运算指令执行完毕后,从所述指令存储子模块提取所述第一运算指令传输至所述处理模块,
其中,所述多个运算指令中的第一运算指令与第一运算指令之前的第零运算指令存在关联关系,包括:
存储所述第一运算指令所需数据的第一存储地址区间与存储所述第零运算指令所需数据的第零存储地址区间具有重叠的区域。
8.一种机器学习运算装置,其特征在于,所述装置包括:一个或多个如权利要求1‑7任一项所述的数据处理装置,用于从其他处理装置中获取待处理数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
9.一种机器学习芯片,其特征在于,所述机器学习芯片包括:如权利要求8所述的机器学习运算装置或组合处理装置,其中,所述组合处理装置包括:如权利要求8 所述的机器学习运算装置、通用互联接口和其他处理装置,所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作,
其中,所述组合处理装置还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据;
其中,所述机器学习芯片应用于电子设备、板卡中的至少一项,其中,所述板卡还包括:存储器件、接口装置和控制器件,所述机器学习芯片与所述存储器件、所述控制器件以及所述接口装置分别连接,所述存储器件,用于存储数据;
所述接口装置,用于实现所述机器学习芯片与外部设备之间的数据传输;
所述控制器件,用于对所述机器学习芯片的状态进行监控。
10.一种数据处理方法,其特征在于,应用于数据处理装置,所述方法包括:对接收到的待处理数据进行切分,获得多个切分数据,为所述多个切分数据分别设置对应的索引字符,得到索引字符组,其中,所述索引字符是预先设置的,用于对任意一个待处理数据的切分数据进行索引字符设置;
对索引字符组进行洗牌处理,获得洗牌后的索引字符组;
根据所述洗牌后的索引字符组对所述多个切分数据进行重排,得到输入数据,并为所述输入数据添加标签,所述标签用于描述所述输入数据与所述输入数据输入需要训练的模型后得到的输出之间的对应关系,其中,为所述输入数据添加标签,包括:将所述洗牌后的索引字符组确定为所述输入数据的标签,带有标签的输入数据用于作为所述模型的训练样本数据。
11.根据权利要求10所述的方法,其特征在于,对索引字符组进行洗牌处理,获得洗牌后的索引字符组,包括:
根据洗牌算法对所述索引字符组进行洗牌,获得洗牌后的索引字符组。
12.根据权利要求11所述的方法,其特征在于,所述洗牌算法包括等概率随机排列数组算法Fisher‑Yates Shuffle、经典洗牌算法Knuth‑Durstenfeld Shuffle和内外洗牌算法Inside‑Out Algorithm中的任一种。
13.根据权利要求10所述的方法,其特征在于,对接收到的待处理数据进行切分,获得多个切分数据,包括:
获取数据切分尺寸,并根据所述数据切分尺寸对所述待处理数据进行切分,获得所述多个切分数据,
其中,所述数据切分尺寸包括切分长度和切分宽度。
14.根据权利要求10所述的方法,其特征在于,所述方法还包括:获取所述输入数据和计算指令;
根据所述计算指令,对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,所述机器学习计算包括人工神经网络计算,其中,所述方法还包括:存储所述输入数据,其中,利用寄存器、缓存中的任意一种或多种存储所述输入数据,所述缓存用于存储所述输入数据,所述寄存器用于存储所述输入数据中的标量数据,所述缓存包括高速暂存缓存。
15.根据权利要求14所述的方法,其特征在于,获取所述输入数据和计算指令,包括:解析所述计算指令得到多个运算指令;
其中,根据所述计算指令,对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,包括:
对所述输入数据执行前序处理,以及传输数据和运算指令;
依据传输的数据及运算指令并行执行中间运算得到多个中间结果;
对所述多个中间结果执行后续处理得到所述计算指令的指令结果。
16.根据权利要求14所述的方法,其特征在于,获取所述输入数据和计算指令,包括:存储与人工神经网络运算关联的计算指令;
对所述计算指令解析得到多个运算指令;
存储指令队列,所述指令队列包括:按所述指令队列的前后顺序待执行的多个运算指令,
其中,获取所述输入数据和计算指令,还包括:在确定所述多个运算指令中的第一运算指令与所述第一运算指令之前的第零运算指令存在关联关系时,缓存所述第一运算指令,并在确定所述第零运算指令执行完毕后,控制进行所述第一运算指令的执行,其中,所述多个运算指令中的第一运算指令与第一运算指令之前的第零运算指令存在关联关系,包括:
存储所述第一运算指令所需数据的第一存储地址区间与存储所述第零运算指令所需数据的第零存储地址区间具有重叠的区域。
说明书 :
运算方法、装置及相关产品
技术领域
背景技术
据进行训练得到神经网络模型。再利用神经网络模型将所有的输入数据映射为对应的输
出,对输出进行判断从而实现对输入数据进行分类的目的。为了保证上述过程,需要对监督
学习中所用的训练样本数据添加标签,以描述输入数据与输出之间的对应关系。但相关技
术中,训练样本数据的标签均需要人工进行标记,所需人力成本巨大,耗时严重。
发明内容
装置;
拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数
据处理装置的互联方式是任意互联拓扑。
相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗
设备。
核磁共振仪、B超仪和/或心电图仪。
应的索引字符,得到索引字符组;索引洗牌模块,用于对索引字符组进行洗牌处理,获得洗
牌后的索引字符组;数据生成模块,根据洗牌后的索引字符组对多个切分数据进行重排,得
到输入数据,并为输入数据添加标签。本公开实施例所提供的数据处理方法、装置及相关产
品,能够自动为数据添加标签,提高了数据处理的效率少。
附图说明
具体实施方式
非特别指出,不必按比例绘制附图。
本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在唯一对应的关系。索引字符可以是数字、字母或者其他符号中的一种或多种,本公开对此
不作限制。
分数据分别设置对应的索引字符,得到索引字符组。索引洗牌模块用于对索引字符组进行
洗牌处理,获得洗牌后的索引字符组。数据生成模块根据洗牌后的索引字符组对多个切分
数据进行重排,得到输入数据,并为输入数据添加标签。本公开实施例所提供的数据处理装
置,能够自动为数据添加标签,提高了数据处理的效率。且通过装置自动为数据添加标签的
速度、效率、准确程度相比于人工标记会得到显著提高,添加标签所耗费的时间也能够大幅
度减少。
Knuth‑Durstenfeld Shuffle和内外洗牌算法Inside‑Out Algorithm中的任一种。
Durstenfeld Shuffle的基本思想是每次从未处理的索引字符中随机取出一个字符,然后
把该字符放在索引字符组的尾部,得到洗牌后的索引字符组。Inside‑Out Algorithm的基
本思想是从前向后扫描索引字符,把位置i的索引字符随机插入到前i个(包括第i个)位置
中(假设为k),这个操作是在新索引字符组中进行,然后把原始索引字符组中位置k的字符
替换新索引字符组位置i的字符。
长度和切分宽度。
数据的长度、切分宽度小于或等于待处理数据宽度。可以根据用户设置确定切分长度和切
分宽度。还可以设置默认切分长度和默认切分宽度,在未查询到用户设置的切分长度和切
分宽度时,数据切分模块可以根据默认切分长度和默认切分宽度对待处理数据进行切分。
据进行机器学习计算,得到计算指令的计算结果。其中,机器学习计算可以包括人工神经网
络计算。
算术运算的指令,例如,向量逻辑计算指令、标量计算指令、卷积指令等;还可以包括对数据
进行搬运的指令,例如,写指令、读指令等;亦可以包括进行控制指令流进行跳转的指令,例
如,跳转指令等。本领域技术人员可以根据实际需要对计算指令进行设置,本公开对此不作
限制。
以是“H”型架构、阵列型架构、树型架构等,本公开对此不作限制。
处理子模块153用于转发主处理子模块151和从处理子模块152之间的数据和/或运算指令。
其中,主处理子模块151与一个或多个分支处理子模块153连接。这样,处理模块中的主处理
子模块、分支处理子模块和从处理子模块之间采用“H”型架构连接,通过分支处理子模块转
发数据和/或运算指令,节省了对主处理子模块的资源占用,进而提高指令的处理速度。
处理子模块152、第m行的n个从处理子模块152以及第1列的m个从处理子模块152。
块中直接与主处理子模块连接的从处理子模块。其中,k个从处理子模块,用于在主处理子
模块以及多个从处理子模块之间的数据以及指令的转发。这样,多个从处理子模块呈阵列
分布,可以提高主处理子模块向从处理子模块发送数据和/或运算指令速度,进而提高指令
的处理速度。
根端口401和多个支端口402。根端口401与主处理子模块151连接,多个支端口402与多个从
处理子模块152分别连接。其中,树型子模块154具有收发功能,用于转发主处理子模块151
和从处理子模块152之间的数据和/或运算指令。这样,通过树型子模块的作用使得处理模
块呈树型架构连接,并利用树型子模块的转发功能,可以提高主处理子模块向从处理子模
块发送数据和/或运算指令速度,进而提高指令的处理速度。
从处理子模块连接,以转发主处理子模块151和从处理子模块152之间的数据和/或运算指
令。特殊地,如树型子模块具有零层节点,该装置则无需树型子模块。
理子模块152连接,以转发主处理子模块151和从处理子模块152之间的数据和/或运算指
令。
本公开对此不作限制。
入数据;寄存器,用于存储输入数据中标量数据;缓存包括高速暂存缓存。直接内存访问模
块17用于从存储模块16中读取或者存储数据。
内,并在确定第零运算指令执行完毕后,从指令存储子模块141提取第一运算指令传输至处
理模块15。
需数据的第零存储地址区间具有重叠的区域。反之,第一运算指令与第一运算指令之前的
第零运算指令没有关联关系可以是第一存储地址区间与第零存储地址区间没有重叠区域。
神经网络处理器(Neural‑network Processing Unit,简称NPU)的一种或多种之中。
场景灵活设定各模块,只要符合本公开的技术方案即可。
应用示例仅仅是出于便于理解本公开实施例的目的,不应视为对本公开实施例的限制。
度为W、宽度为H,共有W*H个像素。
对对W*H图像数据进行切分,获得多个切分数据,例如,获得第一切分数据Q1、第二切分数据
Q2、…、第九切分数据Q9共9个切分数据。数据切分模块11为每个切分数据设置对应的索引
字符(例如,数字),得到索引字符组。例如,将1、2、…、9分别设置为对第一切分数据Q1、第二
切分数据Q2、…、第九切分数据Q9的索引字符,则索引字符组为(1,2,3,4,5,6,7,8,9)。
洗牌后的索引字符组(2,5,4,3,1,8,9,6,7)。
符组(2,5,4,3,1,8,9,6,7)确定为该输入数据的标签。
显著提高,添加标签所耗费的时间也能够大幅度减少。
习运算。该机器学习运算装置可以从其他机器学习运算装置或非机器学习运算装置中获得
计算指令,并将执行结果通过I/O接口传递给外围设备(也可称其他处理装置)。外围设备譬
如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据处理装置时,
数据处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联
并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制系统,也可以有
各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式
可以是任意互联拓扑。
他处理装置进行交互,共同完成用户指定的操作。
他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机
器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作
共同完成运算任务。
片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控
制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
和所述其他处理装置连接。存储装置用于保存在机器学习运算装置和所述其他处理装置的
数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中
无法全部保存的数据。
装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,
网卡,wifi接口。
学习芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、
接口装置391和控制器件392。
元393与机器学习芯片389通过总线连接。可以理解,每一组存储单元393可以是DDR SDRAM
(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当
每一组存储单元393中采用DDR4‑3200颗粒时,数据传输的理论带宽可达到25600MB/s。
控制器,用于对每个存储单元393的数据传输与数据存储的控制。
间的数据传输。例如在一个实施例中,接口装置391可以为标准PCIE接口。比如,待处理的数
据由服务器通过标准PCIE接口传递至机器学习芯片289,实现数据转移。优选的,当采用
PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,接口装置391还
可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,接口装置能够实现
转接功能即可。另外,机器学习芯片的计算结果仍由接口装置传送回外部设备(例如服务
器)。
件392可以包括单片机(Micro Controller Unit,MCU)。如机器学习芯片389可以包括多个
处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,机器学习芯片389可以处
于多负载和轻负载等不同的工作状态。通过控制器件可以实现对机器学习芯片中多个处理
芯片、多个处理和/或多个处理电路的工作状态的调控。
仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
和/或心电图仪。
Shuffle、经典洗牌算法Knuth‑Durstenfeld Shuffle和内外洗牌算法Inside‑Out
Algorithm中的任一种。
数据。其中,数据切分尺寸包括切分长度和切分宽度。
指令的执行,
活设定步骤,只要符合本公开的技术方案即可。
行洗牌处理,获得洗牌后的索引字符组。根据洗牌后的索引字符组对多个切分数据进行重
排,得到输入数据,并为输入数据添加标签。本公开实施例所提供的数据处理方法,能够自
动为待处理数据添加标签,得到带有标签的输入数据,提高了数据处理的效率。且通过装置
自动为数据添加标签的速度、效率、准确程度相比于人工标记会得到显著提高,添加标签所
耗费的时间也能够大幅度减少。
依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开
所必须的。
能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一
个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接
耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或
其它的形式。
单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出
来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为
个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。
而前述的存储器包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,
Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可以包括:闪存盘、只读存储器(英文:Read‑Only Memory,简称:ROM)、随机存取器(英文:
Random Access Memory,简称:RAM)、磁盘或光盘等。
同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会
有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。