CN112596684A - 一种用于语音深度神经网络运算的数据存储方法 - Google Patents
一种用于语音深度神经网络运算的数据存储方法 Download PDFInfo
- Publication number
- CN112596684A CN112596684A CN202110249408.2A CN202110249408A CN112596684A CN 112596684 A CN112596684 A CN 112596684A CN 202110249408 A CN202110249408 A CN 202110249408A CN 112596684 A CN112596684 A CN 112596684A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- characteristic
- feature
- peripheral
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于语音深度神经网络运算的数据存储方法,包括以下步骤:步骤1.用户确定配置参数;步骤2.配置外围存储访问接口;步骤3.配置特征存储阵列多发射接口;步骤4.CPU向外围存储设备的特征存储空间起始地址与特征存储空间终止地址之间的存储空间存放待计算的数据;步骤5.CPU开启外围存储访问接口使能,将数据搬运到特征存储器阵列中;步骤6.CPU开启特征存储阵列多发射接口使能,特征存储阵列多发射接口按配置要求开始并行搬运数据;步骤7.CPU判断数据是否已存放完毕。本发明保证了特征数据的连续性,又兼顾了外围存储设备与深度神经网络数据的格式需求,相较于传统方法降低了数据的传输时间,同时降低了外围数据存储有效时长的需求区间。
Description
技术领域
本发明属于语音神经网络技术领域,涉及一种语音神经网络的数据存储管理技术,具体涉及一种用于语音深度神经网络运算的数据存储方法。
背景技术
语音相关的深度神经网络运算特征存储需求在于其数据的连续性,即语音特征按照帧的形式进行数据打包,每帧数据包含连续等量的数据个数,这样要求数据按照帧的方式进行存储。
语音相关的深度神经网络运算特征存储需求在于其数据的时效性,即语音特征存储单元所存储的特征数据需要在有限的时间内完成数据存储到运算单元的吞吐,通常在深度神经网络运算中为矩阵运算。
语音相关的深度神经网络运算特征存储需求在于其数据的可选择性,即语音特征存储单元所存储的特征数据在存储到运算单元过程开始时刻可以指定对应的起始帧数。
在现有技术中,一种最常用的实现办法为通过外围存储设备介质进行数据存储,通过通用CPU进行数据的读取,这种方法效率较低,无法满足上述需求的连续性,时效性以及可选择性问题;具体来说需要通过额外的计算程序去处理帧的起始位置,连续性以及可选择性无法保证;串行形式读取形式在带宽方面形成瓶颈,导致运算时间较长。
另一种现有技术为采用图形处理器(GPU) 或者DSP处理,该方法通过寄存器堆以及执行通用SIMD形式进行运算,但内部有限存储导致GPU频繁访问外围存储设备,时效性上依然不能达到要求;由于其依然是通用形式的处理单元,连续性以及可选择性依然由程序去频繁介入计算,其连续性及可选择性无法保证。
综上所述,无论通用CPU、DSP或者GPU都不能很好在数据的连续性、时效性以及可选择性上对深度神经网络存储上进行良好匹配。
发明内容
为克服现有技术存在的缺陷,提高数据存储速度,本发明公开了一种用于语音深度神经网络运算的数据存储方法。
本发明所述用于语音深度神经网络运算的数据存储方法,包括以下步骤:
步骤1.用户确定配置参数,具体为:
确定待计算的特征数据的总帧数、跳帧数、输出通道数和单通道输出帧数、深度神经网络运算所需要的单位帧的数据个数、特征存储阵列的单位存储器数据深度、存储单位帧数据的存储器数量;
所述特征存储阵列的单位存储器数据深度表示单位存储器的数据存储数量上限;
并满足下式:特征存储装置中的特征存储阵列的单位存储器数据深度 ≥ 深度神经网络运算所需要的单位帧的数据个数;
确定外围存储设备中用来进行本次计算的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址,满足:存储单位帧数据的存储器数量 * 单位存储器数据深度 ≥ 特征存储空间起始地址与特征存储空间终止地址之间的数据个数;以及:特征存储空间终止地址 ≥ 特征存储起始地址 ≥ 特征存储空间起始地址;
步骤2.配置外围存储访问接口;
根据步骤1,CPU向外围存储访问接口配置待计算的特征数据的总帧数以及深度神经网络运算所需要的单位帧的数据个数,和外围存储设备的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址;
步骤3.配置特征存储阵列多发射接口;
根据步骤1,CPU向特征存储阵列多发射接口配置跳帧数,输出通道数和单通道输出帧数;
特征存储阵列多发射接口每个通道的起始帧编号遵循以下公式进行配置;
各个通道的起始帧编号 = 1 + (通道号 - 1)* (跳帧数 + 1)
步骤4.CPU向外围存储设备的特征存储空间起始地址与特征存储空间终止地址之间的存储空间存放待计算的数据;
步骤5.存放后,CPU检查外围存储访问接口和特征存储阵列多发射接口的状态,如果都是初始状态,则进行步骤51:开启外围存储访问接口使能,外围存储访问接口使能后首先从外围存储设备中确定的特征存储起始地址开始,将外围存储设备中的特征存储空间起始地址以及特征存储空间终止地址之间的数据搬运到特征存储器阵列中,并发送外围存储访问接口搬运完成信号给CPU;
步骤52:如果不都是初始状态,则等待至外围存储访问接口和特征存储阵列多发射接口都回复到初始状态, 再进行步骤51;
步骤6.CPU接收到外围存储访问接口搬运完成信号时,开启特征存储阵列多发射接口使能,特征存储阵列多发射接口按配置要求开始并行搬运数据;
并行搬运数据的方法为: 特征存储阵列多发射接口的各个通道同时接收单帧数据,每一通道的接收起始帧为步骤3确定的起始帧编号,直到特征存储阵列中的全部帧数据搬运完成,同时特征存储阵列多发射接口发送特征存储阵列多发射接口搬运完成信号给CPU;
CPU接收到外围存储访问接口搬运完成信号时,并行向外围存储设备的特征存储空间起始地址以及特征存储空间终止地址之间的存储空间存放新的待计算的数据,以用于下一次计算;
步骤7.CPU接收到特征存储阵列多发射接口搬运完成信号时,判断此时新的待计算数据是否已存放完毕,如果已存放完毕,则开启外围存储访问接口使能,并重复步骤6;如果未存放完毕,则等待至计算数据存放完毕后,开启外围存储访问接口使能,并重复步骤6。
优选的,所述步骤5的搬运过程中,搬运顺序为依次进行顺序1、顺序2、顺序3进行数据搬运,其中顺序1从特征存储起始地址直至特征存储空间起始地址,顺序2从特征存储空间起始地址指向特征存储空间终止地址,顺序3从特征存储空间终止地址开始直至搬运完成。
本发明相对现有技术,具备如下优越性:
一.外围存储设备的参数配置保证数据在规定的外围地址区域按照规定帧格式被搬运至特征存储器阵列内部,保证了特征数据的连续性。特征存储器阵列和特征存储器阵列多发射访问接口配合,由特征存储器阵列多发射访问接口判断各个输出通道的起始帧编号,并行从特征存储器阵列内部存储的顺序帧数据中找到对应的起始帧发出,区别于传统串行方式为保障处理的实时性需要将每个通道的帧都要按顺序保存在存储器中的方式,通过该方法大幅减少了存储器的数量。
二.外围存储设备访问接口配置管理方法中包含该神经网络的特征存储装置与外部设备的通讯办法,在参数配置完毕后,开启接口使能,特征数据开始由外围存储设备,途经外围存储访问接口,最终到达特征存储器阵列完成搬运,直至搬运完成后通过完成信号通知外部设备搬运完成。截至搬运完成时刻,新的外部存储数据可以并行进行填充;单次配置集中搬运的管理办法既兼顾了外围存储设备与深度神经网络数据格式需求,相较于传统方法降低了数据的传输时间,同时又降低了外围数据存储有效时长的需求区间,特征数据的有效性及时效性得到保证。
三.特征存储器阵列多发射访问接口配置管理保证特征存储器阵列多发射访问接口在统一时间完成多个深度神经网络运算的特征数据传输,缩短了规定数据的深度神经网络运算的时间,数据的时效性得到保证;特征数据按照帧的序列排布保护了数据的连续性;每个神经网络运算的起始帧的序号按照跳帧的规律进行编排,满足了神经网络运算的数据选择性。
四.特征存储器阵列多发射访问接口配置管理方法中包含该神经网络的特征存储装置与外部运算设备的通讯办法,根据深度神经网络运算特性,特征存储器阵列多发射接口可在根据配置在此发出相同的数据序列,也可以根据实际需求关闭接口,通过外围存储设备访问专用接口更新数据,应用非常灵活方便。
附图说明
图1是本发明所述数据存储方法的一个具体实施方式数据走向示意图,
图2是现有技术中利用CPU处理深度神经网络运算时,数据的读入表现形式的一个具体方式示意图;
图3是现有技术中利用DSP或GPU处理深度神经网络运算时,数据的读入表现形式的一个具体方式示意图;
图4是本发明采用并行通道数据处理后数据的读入表现形式的一个具体方式示意图;
图2、3、4中横坐标表示时间,纵坐标表示事件;CA表示计算数据地址所需时间,F表示取数据时间,EX表示执行运算时间,DRT()表示对括号内的数据进行数据释放的时间,F1、F2...FN表示不同的特征帧数;X1、X2、 ... X8表示不同的向量;
图5是本发明所述数据存储方法的一个具体流程示意图;
图6是本发明中外围存储设备访问专用接口管理结构的一个具体方式示意图;
图7是未跳帧情况下本发明中特征存储阵列多发射接口管理结构的一个具体实施方式示意图;
图8是跳帧情况下本发明中特征存储阵列多发射接口管理结构的一个具体实施方式示意图。
具体实施方式
下面对本发明的具体实施方式作进一步的详细说明。
本发明所述用于语音深度神经网络运算芯片的存储管理方法,包括如下步骤:
步骤1.用户确定配置参数,具体为:
确定待计算的特征数据的总帧数、跳帧数、输出通道数和单通道输出帧数,由用户根据本次计算的要求自行定义;
确定深度神经网络运算所需要的单位帧的数据个数,由用户根据本次计算的要求自行定义;但要使其满足下式:特征存储装置中的特征存储阵列的单位存储器数据深度 ≥深度神经网络运算所需要的单位帧的数据个数;
确定外围存储设备中用来进行本次计算的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址,使其满足:存储单位帧数据的存储器数量 * 单位存储器数据深度 ≥ 特征存储空间起始地址以及特征存储空间终止地址之间的数据个数;以及:特征存储空间终止地址 ≥ 特征存储起始地址 ≥ 特征存储空间起始地址;
步骤2.配置外围存储访问接口;
CPU向外围存储访问接口配置待计算的特征数据的总帧数以及深度神经网络运算所需要的单位帧的数据个数,如图6所示,当待计算的特征数据总帧数设定为M帧时,外围存储访问接口按照外围存储设备的数据存储特性,顺序将M帧搬运至特征存储器阵列内部。其中存储特征存储阵列能够容纳的总的数据帧数P需要大于等于目标搬运特征数据帧数M。
单位帧数据个数决定了数据存储在特征存储阵列的格式,具体如图7所示:当每一帧的数据个数为N个数据时,外围存储访问接口会根据该配置信息将N个数据存储至对应帧编号的特征帧存储器内部,完成该帧的存储动作后,后续N个数据会存储到对应的下一编号帧的特征存储器内部,直至预定的特征全部搬运完成;特征存储器阵列中的存储器深度Q需要满足大于或等于单位帧数据个数N。
CPU向外围存储访问接口配置外围存储设备的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址, 外围存储设备指的是本发明所述特征存储阵列及其接口之外的存储设备如SRAM等;如图7所示,由于数据分布在存储器的不同地址中,存储顺序为从特征存储起始地址开始按顺序1,即从特征存储起始地址指向特征存储空间起始地址,存储直至特征存储空间起始地址,然后按照顺序2,即从特征存储空间起始地址指向特征存储空间终止地址开始存储,再按照顺序3,即特征存储空间终止地址开始存储,直至数据存储完成。
相应的,在数据搬运的过程中,也是按照上述顺序,依次进行顺序1、顺序2、顺序3进行数据搬运。
按照上述顺序进行数据搬运,兼顾了应用程序处理的灵活性,即在特征存储空间内部设定了一个起始地址,当应用程序根据实际场景需求,当外围存储设备存放的数据不是按时间排列的连续帧,或是按时间排列的联系帧,但计算要从中间的帧开始时,也可以设定起始地址搬运对应的数据用于计算,便于满足各类复杂的语音数据计算要求。
外围存储设备搬运过程由外围存储访问接口发起操作,提供越界保护操作,具体的如图7所示,当数据搬运至第四帧时刻,外围存储访问接口探测到特征存储空间起始地址时,其搬运指针将自动跳转至特征存储空间终止地址,不需要外围设备额外干预;对应的特征存储起始地址应该大于等于特征存储空间起始地址且小于特征存储空间终止地址;即满足
特征存储空间终止地址 ≥ 特征存储起始地址 ≥ 特征存储空间起始地址。
步骤3.配置特征存储阵列多发射接口;
CPU向特征存储阵列多发射接口配置跳帧数,输出通道数和单通道输出帧数;
特征存储阵列多发射接口每个通道起始帧编号遵循以下公式进行配置:
各个通道的起始帧编号 = 1 + (通道号 - 1)* (跳帧数 + 1)
按照这个公式配置起始帧,可以实现由特征存储阵列多发射接口按照跳帧的要求,并行按照每个通道输出起始帧的编号,从顺序排列的特征存储阵列中抓取对应的帧输出,相对传统CPU和DSP要保障处理的实时性,需要将每个通道的数据串行存储在存储阵列中,大幅降低了存储器的数量要求。
如图7所示,在没有跳帧的情况下,第一个通道起始帧编号为1, 其余各个通道的起始帧编号按照上一通道的起始帧编号依次加1的规则进行排列;如图8所示,在跳1帧的情况下,第一个通道起始帧编号为1,其余各个通道的起始帧编号按照上一通道的起始帧编号依次加2的规则进行排列;
配置特征存储阵列多发射接口中的输出通道数和单通道输出帧数如图7和图8所示,单通道输出帧数控制每个通道连续传输的帧的个数,如图7单通道输出帧数配置为4,图8单通道配置帧数为5;输出通道数即特征数据从特征存储阵列并行传输的通道个数;单通道输出帧数、输出通道数以及跳帧数决定了存储单位帧数据的存储器数量;存储单位帧数据的存储器数量应该小于存储器阵列存储器总数量。
存储单位帧数据的存储器数量、跳帧数、通道开启数、单通道输出帧数应符合下式:
存储单位帧数据的存储器数量 = (跳帧数 + 1)*(通道开启数-1)+ 单通道输出帧数
存储器阵列存储器总数量 ≥ 存储单位帧数据的存储器数量
步骤4.CPU向外围存储设备的特征存储空间起始地址以及特征存储空间终止地址之间的存储空间存放待计算的数据;
步骤5.存放后,CPU检查外围存储访问接口和特征存储阵列多发射接口的状态,如果都是初始状态,则进行步骤51:开启外围存储访问接口使能,外围存储访问接口使能后首先从外围存储设备中确定的特征存储起始地址开始,将外围存储设备中的特征存储空间起始地址以及特征存储空间终止地址之间的数据搬运到特征存储器阵列中,并发送外围存储访问接口搬运完成信号给CPU;
步骤52:如果不都是初始状态,则等待至外围存储访问接口和特征存储阵列多发射接口都回复到初始状态, 再进行步骤51;
步骤6.CPU接收到外围存储访问接口搬运完成信号时,开启特征存储阵列多发射接口使能,特征存储阵列多发射接口按配置要求开始并行搬运数据,并行搬运数据的方法为: 特征存储阵列多发射接口的各个通道同时接收单帧数据,每一通道的接收起始帧为步骤3确定的起始帧编号,直到特征存储阵列中的全部帧数据搬运完成,特征存储阵列多发射接口发送特征存储阵列多发射接口搬运完成信号给CPU;同时,CPU接收到外围存储访问接口搬运完成信号时,并行向外围存储设备的特征存储空间起始地址以及特征存储空间终止地址之间的存储空间存放新的待计算的数据,以用于下一次计算;
步骤7.CPU接收到特征存储阵列多发射接口搬运完成信号时,判断此时新的待计算数据是否已存放完毕,如果已存放完毕,则开启外围存储访问接口使能,并重复步骤6。如果未存放完毕,则等待待计算数据存放完毕后,开启外围存储访问接口使能,并重复步骤6。
上述方法中,如仅利用CPU处理深度神经网络运算时,如图2所示,数据的读入表现形式为单个数据,例如,读取特征向量F1时刻,CPU使用人员需要关注特征向量F1中第1至第M纬度的数据排布(地址计算阶段,耗费的地址计算时间为CA)及其与被乘向量的配合,大量的特征数据地址计算在使用过程中会造成数据读取连续性维护带来不便,使用人员需要按照单个数据粒度来进行维护;同时,利用CPU处理深度神经计算时,由于以单个数据粒度来进行运算,使用人员需要额外的手段,例如计数的形式得到目标特征输出是否输出完成。
由于CPU的特性,数据只可能为顺序一个一个读进设备内部进行处理,所以每处理一个数据即单位维数都要经历运算取数据地址计算时间,从外围取数据时间,以及数据读入后处理的将数据输出给其他设备的时间; 其中时间以若干个时钟周期计数,实际情况下,CPU的所消耗时间为GPU以及本发明的数倍,此处为了便于说明,我们假设CPU、GPU及本发明在所有环节上如地址计算时间、取数据时间、数据输出时间等均相等。
对于CPU设深度神经网络单位特征向量处理时间为T,特征帧数为FN,单位帧数据个数为N,地址计算时间为CA,取数据时间为F,数据输出时间为EX,对应的,设外围存储设备单数数据释放时间TDRT,跳帧数为SN,得出:
T = FN * N * (CA+F+EX)
TDRT = N * (SN+1) / T
即:单位特征向量处理时间 = 特征帧数×单位帧维数×(地址计算时间 + 取数据时间 + 数据输出时间);外围存储设备数据释放时间 = 单位帧数据 × (跳帧个数+1)/ T。
相较于CPU处理深度神经网络运算,DSP以及图形处理器(GPU)相对较好,如图4所示,DSP或GPU以可以按照帧的形式对数据进行处理,例如,一次读入向量X1的所有帧的数据F1、F2、F3、F4,单次数据读入的连续性能够保障;其存在的问题在于DSP以及GPU的使用人员还是需要按照帧的粒度计算地址,维护数据的连续性;同时,利用DSP以及图形处理器进行深度神经网络运算时刻,使用人员依然需要额外手段,例如计数的形式得到目标特征输出是否输出完成,相较于CPU处理形式只是需要计算的频率降低;需要注意的是,DSP以及GPU内部并非专用深度神经网络处理单元,内部每一个暂存单元存储空间有限,在深度神经网络特征涉及帧数较多时刻,途中有关向量的处理需要按照CPU处理形式进行进一步拆解,导致数据的连续性问题向CPU处理深度神经网络运算方向恶化。
相比CPU来说,上述GPU处理方式可以以向量为单位读取数据,那么处理一个向量所需要的时间则为,
TDRT = N * (SN+1) / T
即外围存储设备数据释放时间 = 单位帧数据 × (跳帧个数+1) / T
T = CA + FN * N * F+EX;
即单位特征向量处理时间 =地址计算时间 + 特征帧数×单位帧维数×取数据时间 + 数据输出时间
按照图4所示,假设一个向量由4帧构成,一帧有M维,那么单位向量的处理时间:
T = 地址计算时间 + 4帧 × M维 ×取数据时间 + 数据输出时间
由于此方法还是以单向量处理为顺序,所以当处理完成向量X1后才能处理X2,那么每处理完成一个向量后也只能释放X1与X2不交叠的存储器部分:
相比CPU处理方式,优势在于节省了每次地址计算时间,以及输出时间;即一个按照数据维度为处理单位,一个以单位向量作为处理单位。
本发明提供的可配置方法解决了深度神经网络运算中的特征数据连续性问题,如图5所示,发明方法按照深度神经网络运算的特点以及并行运算度来进行数据连续性管理。该方法只需读入所有需要处理的所有深度神经网络运算特征数据帧即可,具体表现为配置参数中的特征存储起始地址、特征存储空间起始地址、特征存储空间终止地址、搬运特征数据帧数、单位帧的数据个数等参数,保证该装置外围存储设备接口的特征数据读取,采用前述步骤1至7,即可进行特征数据读取。
本发明提供的可配置方法改善了数据时效性的问题,提升了数据的吞吐量,缩短了数据读取及输出的效率,如图5所示,本发明装置按照特征数据块进行搬运,所以按照上述分析办法,设并行处理向量数为CHN,深度神经网络单位特征响应处理时间为:
T = {CA + FN * N * EX + [(SN+1)*(CHN-1)+ FN] * N} / CHN
根据上述处理时间公式可以分析得到,本发明装置将地址运算时间,即配置信息分摊到并行处理向量数上,数据输出时间也分摊到并行处理向量数上,特征数据读取时间在分摊到并行处理向量数上的基础上,略微增加跳帧部分开销,由于深度神经网络对于数据连续性要求较高,跳帧数SN值一般不会很大,在并行度较高的情况下,跳帧部分可以控制到接受范围之内,甚至可以忽略,对比CPU以及GPU相关的深度神经网络运算处理缩短了并行通道数倍。
对应的如图5,外围空间释放时间优化为:TDRT = FN * N / T,特征帧数FN远远大于跳帧数SN,且需求相应时间成倍数缩小,外围空间释放时间缩短,数据时效性效率显著提高。
本发明由于采取了并行数据输出形式,对比传统CPU,DSP及GPU处理方式,本发明装置通过跳帧控制特征向量起始帧数结合多通道并行输出,可通过通道使能控制特征存储寄存器阵列是否传输对应的特征向量,避免传统方式的数据重新传输问题,提高了数据传输速度,同时避免了相应的数据地址计算,提高数据管理效率。
本发明由于采取了特征存储阵列多发射接口发送特征存储阵列中的数据,可以实现由特征存储阵列多发射接口按照跳帧的要求,并行按照每个通道输出起始帧的编号,从顺序排列的特征存储阵列中抓取对应的帧输出,相对传统CPU和DSP要保障处理的实时性,需要将每个通道的数据串行存储在存储阵列中,大幅降低了存储器的数量要求。
如总处理帧数为10帧,不跳帧,输出通道数为4,采用传统CPU处理,需要按照第1、2、3、4,2、3、4、5,3、4、5、6,4、5、6、7,5、6、7、8,6、7、8、9,7、8、9、10帧的数据分组进行顺序存储,共需要28个存储器单元。
而采用本方法处理上述情况时,只需要特征存储阵列的10个存储器单元,每个存储器单元存储1帧,按第1、2、3、4、5、6、7、8、9、10帧的顺序进行存储,工作时由特征存储阵列多发射接口自行抓取对应的帧输出,如通道0从第1个存储单元开始依次输出第1、2、3、4帧,通道1并行从第2个存储单元开始依次输出第2、3、4、5帧,通道2并行从第3个存储单元开始依次输出第3、4、5、6帧,通道3并行从第4个存储单元开始依次输出第4、5、6、7帧,通道0输出第1、2、3、4帧完毕后再接着通道3的输出帧之后输出第5、6、7、8帧,通道1输出第2、3、4、5帧完毕后再接着通道0的输出帧之后输出第6、7、8、9帧,以此类推直到完成全部帧数据的输出。通过本专利描述的并行多发射方法,相对传统的顺序存储的方法可大幅降低存储器的数量要求。
前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (2)
1.一种用于语音深度神经网络运算的数据存储方法,其特征在于,包括以下步骤:
步骤1.用户确定配置参数,具体为:
确定待计算的特征数据的总帧数、跳帧数、输出通道数和单通道输出帧数、深度神经网络运算所需要的单位帧的数据个数、特征存储阵列的单位存储器数据深度、存储单位帧数据的存储器数量;
所述特征存储阵列的单位存储器数据深度表示单位存储器的数据存储数量上限;
并满足下式:特征存储装置中的特征存储阵列的单位存储器数据深度 ≥ 深度神经网络运算所需要的单位帧的数据个数;
确定外围存储设备中用来进行本次计算的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址,满足:存储单位帧数据的存储器数量 * 单位存储器数据深度≥ 特征存储空间起始地址与特征存储空间终止地址之间的数据个数;以及:特征存储空间终止地址 ≥ 特征存储起始地址 ≥ 特征存储空间起始地址;
步骤2.配置外围存储访问接口;
根据步骤1,CPU向外围存储访问接口配置待计算的特征数据的总帧数以及深度神经网络运算所需要的单位帧的数据个数,和外围存储设备的特征存储起始地址、特征存储空间起始地址以及特征存储空间终止地址;
步骤3.配置特征存储阵列多发射接口;
根据步骤1,CPU向特征存储阵列多发射接口配置跳帧数,输出通道数和单通道输出帧数;
特征存储阵列多发射接口每个通道的起始帧编号遵循以下公式进行配置:
各个通道的起始帧编号 = 1 + (通道号 - 1)* (跳帧数 + 1)
步骤4.CPU向外围存储设备的特征存储空间起始地址与特征存储空间终止地址之间的存储空间存放待计算的数据;
步骤5.存放后,CPU检查外围存储访问接口和特征存储阵列多发射接口的状态,如果都是初始状态,则进行步骤51:开启外围存储访问接口使能,外围存储访问接口使能后首先从外围存储设备中确定的特征存储起始地址开始,将外围存储设备中的特征存储空间起始地址以及特征存储空间终止地址之间的数据搬运到特征存储器阵列中,并发送外围存储访问接口搬运完成信号给CPU;
步骤52:如果不都是初始状态,则等待至外围存储访问接口和特征存储阵列多发射接口都回复到初始状态, 再进行步骤51;
步骤6.CPU接收到外围存储访问接口搬运完成信号时,开启特征存储阵列多发射接口使能,特征存储阵列多发射接口按配置要求开始并行搬运数据;
并行搬运数据的方法为: 特征存储阵列多发射接口的各个通道同时接收单帧数据,每一通道的接收起始帧为步骤3确定的起始帧编号,直到特征存储阵列中的全部帧数据搬运完成,同时特征存储阵列多发射接口发送特征存储阵列多发射接口搬运完成信号给CPU;
CPU接收到外围存储访问接口搬运完成信号时,并行向外围存储设备的特征存储空间起始地址以及特征存储空间终止地址之间的存储空间存放新的待计算的数据,以用于下一次计算;
步骤7.CPU接收到特征存储阵列多发射接口搬运完成信号时,判断此时新的待计算数据是否已存放完毕,如果已存放完毕,则开启外围存储访问接口使能,并重复步骤6;如果未存放完毕,则等待至计算数据存放完毕后,开启外围存储访问接口使能,并重复步骤6。
2.根据权利要求1所述的用于语音深度神经网络运算的数据存储方法,其特征在于:所述步骤5的搬运过程中,搬运顺序为依次进行顺序1、顺序2、顺序3进行数据搬运,其中顺序1从特征存储起始地址直至特征存储空间起始地址,顺序2从特征存储空间起始地址指向特征存储空间终止地址,顺序3从特征存储空间终止地址开始直至搬运完成。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110249408.2A CN112596684B (zh) | 2021-03-08 | 2021-03-08 | 一种用于语音深度神经网络运算的数据存储方法 |
US17/547,857 US11734551B2 (en) | 2021-03-08 | 2021-12-10 | Data storage method for speech-related DNN operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110249408.2A CN112596684B (zh) | 2021-03-08 | 2021-03-08 | 一种用于语音深度神经网络运算的数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112596684A true CN112596684A (zh) | 2021-04-02 |
CN112596684B CN112596684B (zh) | 2021-06-22 |
Family
ID=75210289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110249408.2A Active CN112596684B (zh) | 2021-03-08 | 2021-03-08 | 一种用于语音深度神经网络运算的数据存储方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11734551B2 (zh) |
CN (1) | CN112596684B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013192791A (ja) * | 2012-03-21 | 2013-09-30 | Sophia Co Ltd | 遊技機 |
US20140089574A1 (en) * | 2012-09-24 | 2014-03-27 | Samsung Electronics Co., Ltd. | Semiconductor memory device storing memory characteristic information, memory module and memory system having the same, and operating method of the same |
CN109087677A (zh) * | 2017-06-13 | 2018-12-25 | 华邦电子股份有限公司 | 存储器装置及其数据读取方法 |
CN110012346A (zh) * | 2019-03-26 | 2019-07-12 | 合肥杰发科技有限公司 | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 |
CN110147880A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种神经网络数据处理结构、方法、系统及相关装置 |
US20190318237A1 (en) * | 2018-04-13 | 2019-10-17 | Microsoft Technology Licensing, Llc | Systems, methods, and computer-readable media for improved real-time audio processing |
US20200126539A1 (en) * | 2016-09-06 | 2020-04-23 | Deepmind Technologies Limited | Speech recognition using convolutional neural networks |
CN111061997A (zh) * | 2019-12-19 | 2020-04-24 | 中国人民解放军国防科技大学 | 面向稀疏矩阵向量乘的数据传输方法及dma传输装置 |
CN111341306A (zh) * | 2020-02-14 | 2020-06-26 | 东南大学 | 基于语音特征复用的关键词唤醒cnn的存储和计算压缩方法 |
CN112328172A (zh) * | 2020-10-27 | 2021-02-05 | 北京百度网讯科技有限公司 | 数据存储方法、装置及数据读取方法、装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477925B2 (en) * | 2012-11-20 | 2016-10-25 | Microsoft Technology Licensing, Llc | Deep neural networks training for speech and pattern recognition |
US9177550B2 (en) * | 2013-03-06 | 2015-11-03 | Microsoft Technology Licensing, Llc | Conservatively adapting a deep neural network in a recognition system |
US9454958B2 (en) * | 2013-03-07 | 2016-09-27 | Microsoft Technology Licensing, Llc | Exploiting heterogeneous data in deep neural network-based speech recognition systems |
CN109086877B (zh) | 2016-04-29 | 2020-05-08 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
US10074380B2 (en) * | 2016-08-03 | 2018-09-11 | Apple Inc. | System and method for performing speech enhancement using a deep neural network-based signal |
CA3038967A1 (en) | 2016-10-04 | 2018-04-12 | Magic Leap, Inc. | Efficient data layouts for convolutional neural networks |
US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
US10354733B1 (en) | 2017-10-17 | 2019-07-16 | Xilinx, Inc. | Software-defined memory bandwidth reduction by hierarchical stream buffering for general matrix multiplication in a programmable IC |
US10678479B1 (en) | 2018-11-29 | 2020-06-09 | Amazon Technologies, Inc. | Registers for restricted memory |
-
2021
- 2021-03-08 CN CN202110249408.2A patent/CN112596684B/zh active Active
- 2021-12-10 US US17/547,857 patent/US11734551B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013192791A (ja) * | 2012-03-21 | 2013-09-30 | Sophia Co Ltd | 遊技機 |
US20140089574A1 (en) * | 2012-09-24 | 2014-03-27 | Samsung Electronics Co., Ltd. | Semiconductor memory device storing memory characteristic information, memory module and memory system having the same, and operating method of the same |
US20200126539A1 (en) * | 2016-09-06 | 2020-04-23 | Deepmind Technologies Limited | Speech recognition using convolutional neural networks |
CN109087677A (zh) * | 2017-06-13 | 2018-12-25 | 华邦电子股份有限公司 | 存储器装置及其数据读取方法 |
US20190318237A1 (en) * | 2018-04-13 | 2019-10-17 | Microsoft Technology Licensing, Llc | Systems, methods, and computer-readable media for improved real-time audio processing |
CN110012346A (zh) * | 2019-03-26 | 2019-07-12 | 合肥杰发科技有限公司 | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 |
CN110147880A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种神经网络数据处理结构、方法、系统及相关装置 |
CN111061997A (zh) * | 2019-12-19 | 2020-04-24 | 中国人民解放军国防科技大学 | 面向稀疏矩阵向量乘的数据传输方法及dma传输装置 |
CN111341306A (zh) * | 2020-02-14 | 2020-06-26 | 东南大学 | 基于语音特征复用的关键词唤醒cnn的存储和计算压缩方法 |
CN112328172A (zh) * | 2020-10-27 | 2021-02-05 | 北京百度网讯科技有限公司 | 数据存储方法、装置及数据读取方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
US11734551B2 (en) | 2023-08-22 |
CN112596684B (zh) | 2021-06-22 |
US20220284276A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110007961B (zh) | 一种基于risc-v的边缘计算硬件架构 | |
KR101354346B1 (ko) | 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들 | |
KR101705926B1 (ko) | 메모리 디바이스의 내부 프로세서의 조건부 연산 | |
JP2021111315A (ja) | ニューラルネットワークデータ処理装置、方法および電子機器 | |
US11600340B2 (en) | Semiconductor memory device employing processing in memory (PIM) and operation method of the semiconductor memory device | |
JP2019036298A (ja) | 知能型高帯域幅メモリシステム及びそのための論理ダイ | |
JP2011505037A (ja) | 読出しデータバッファリングのシステム及び方法 | |
CN104102542A (zh) | 一种网络数据包处理方法和装置 | |
CN112667289B (zh) | 一种cnn推理加速系统、加速方法及介质 | |
CN107247629A (zh) | 云计算系统及用于控制服务器的云计算方法和装置 | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
CN113051199A (zh) | 数据传输方法及装置 | |
CN110147347A (zh) | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 | |
TW202134861A (zh) | 交錯記憶體請求以加速記憶體存取 | |
CN113220606A (zh) | 神经网络权值存储方法、读取方法及相关设备 | |
KR20230152645A (ko) | 메모리의 지연시간을 최소화하는 인공신경망 메모리 컨트롤러 | |
CN112596684B (zh) | 一种用于语音深度神经网络运算的数据存储方法 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN108388943B (zh) | 一种适用于神经网络的池化装置及方法 | |
WO2022028224A1 (zh) | 数据存储方法、装置、设备和存储介质 | |
US8909823B2 (en) | Data processing device, chain and method, and corresponding recording medium for dividing a main buffer memory into used space and free space | |
CN112631757B (zh) | 一种ddr4多用户访问的调度方法和设备 | |
WO2022027172A1 (zh) | 数据处理装置、方法和系统以及神经网络加速器 | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
CN113128673B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |