内存中待处理数据的激活方法、装置、电子设备及介质制造方法及图纸

技术编号:35748422 阅读:26 留言:0更新日期:2022-11-26 18:53
本申请提供一种内存中待处理数据的激活方法、装置、电子设备及介质,包括通过执行加载指令,分别加载包括第一数量个待处理数据的第一向量数据和包括第一数量个系数的第二向量数据,并将第一向量数据中的正数保留,负数赋为零的第一中间向量数据,以及,将第一向量数据中的负数保留,正数赋为零的第二中间向量数据,再通过执行乘加指令,将第二向量数据与第二中间向量数据相乘,并将相乘的结果与第一中间向量数据相加,得到激活函数的处理结果。本方案能够提高CPU对激活函数的计算速度,使神经网络算法能够快速地对大量数据进行响应,满足了人脸识别、语音识别等相关场景的实时需求。求。求。

【技术实现步骤摘要】
内存中待处理数据的激活方法、装置、电子设备及介质


[0001]本申请涉及数据处理
,尤其涉及一种内存中待处理数据的激活方法、装置、电子设备及介质。

技术介绍

[0002]激活函数是神经网络算法中的重要函数,用于将神经元输出的线性单元转化为非线性单元,以弥补线性单元表达能力不足的缺陷。实际应用中,线性单元中包括待处理数据,CPU执行对应的指令,并基于激活函数,对存储在内存中的待处理数据进行激活,以实现线性单元向非线性单元的转化。
[0003]而CPU对上述待处理数据的激活速度至关重要,例如,一些在线的人脸识别、语音识别的应用中,对输入人脸图像信息或语音信息基于神经网络进行特征提取,提取后获得待处理数据,再通过激活函数对待处理数据进行激活,以获得最终的激活结果,并依据最终的激活结果进行识别。因而待处理数据的激活速度直接影响着识别速度,尤其对一些待处理数据较大的场景中,激活速度过慢,使得神经网络算法能不能够快速地对大量数据进行响应,进而不能满足了人脸识别、语音识别等相关场景的实时需求。
[0004]因而,有必要提供一种内存中待处理数据的激活方法,以提高CPU对待处理数据的激活速度。

技术实现思路

[0005]本申请提供的内存中待处理数据的激活方法、装置、电子设备及介质,旨在提高CPU对待处理数据的激活速度。
[0006]第一方面,本申请提供一种内存中待处理数据的激活方法,包括:对接收的激活函数进行解析,得到所述待处理数据对应的加载指令;执行所述加载指令,分别从内存中加载第一向量数据和第二向量数据至向量寄存器;所述第一向量数据包括第一数量个待处理数据,所述第二向量数据包括第一数量个系数;将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据;通过执行乘加指令,将所述第二向量数据中的各系数分别与所述第二中间向量数据进行相乘,并将相乘的结果与所述第一中间向量数据进行相加,得到所述激活函数的处理结果进行缓存,以实现对待处理数据的激活。
[0007]可选的,所述加载指令中包括第三向量数据,所述第三向量数据包括第一数量个零;所述将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据,包括:将所述第一向量数据中的每个元素分别与所述第三向量数据中的对应元素进行比较,并基于较大的数据构成所述第一中间向量数据;将所述第一向量数据中的每个元素分别与所述第三向量数据中的对应元素进行比较,并基于较小的数据构成所述第二中间向量数据。
[0008]可选的,所述将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量
数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据,包括:针对所述第一向量数据中的每一待处理数据,执行第一掩码生成指令,得到与所述待处理数据对应的第一掩码向量;以及,执行第二掩码生成指令,得到与所述待处理数据对应的第二掩码向量;对所述第一向量数据和所述第一掩码向量进行与运算,得到所述第一中间向量数据;以及,对所述第一向量数据和所述第二掩码向量进行与运算,得到所述第二中间向量数据。
[0009]可选的,所述第一掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第一掩码向量中对应的各个位均为一,各位数为负数的在所述第一掩码向量中对应的各个位均为零;所述第二掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第二掩码向量中对应的各个位均为零,为负数的在所述第二掩码向量中对应的各个位均为一。
[0010]可选的,所述第一数量为所述加载指令的对应宽度除以所述待处理数据对应数据类型的长度的计算结果。
[0011]可选的,所述加载指令以及所述乘加指令的类型为单指令多数据流指令。
[0012]第二方面,本申请提供一种内存中待处理数据的激活装置,包括:加载模块,用于执行所述加载指令,分别从内存中加载第一向量数据和第二向量数据至向量寄存器中;所述第一向量数据包括第一数量个待处理数据,所述第二向量数据包括第一数量个系数;处理模块,用于将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据;所述处理模块,还用于通过执行乘加指令,将所述第二向量数据中的各系数分别与所述第二中间向量数据进行相乘,并将相乘的结果与所述第一中间向量数据进行相加,得到所述激活函数的处理结果进行缓存,以实现对待处理数据的激活。
[0013]可选的,所述加载指令中包括第三向量数据,所述第三向量数据包括第一数量个零;所述处理模块,具体用于执行取最大值指令,将所述第一向量数据中的每个数据分别与所述第三向量数据中的对应数据进行比较,并基于较大的数据构成所述第一中间向量数据;所述处理模块,具体还用于执行取最小值指令,将所述第一向量数据中的每个数据分别与所述第三向量数据中的对应数据进行比较,并基于较小的数据构成所述第二中间向量数据。
[0014]可选的,所述处理模块,具体用于针对所述第一向量数据中的每一待处理数据,执行第一掩码生成指令,分别得到与所述待处理数据对应的第一掩码向量;以及,执行第二掩码生成指令,分别得到与所述待处理数据对应的第二掩码向量;所述处理模块,具体还用于对所述第一向量数据和所述第一掩码向量进行与运算,得到所述第一中间向量数据;以及,对所述第一向量数据和所述第二掩码向量进行与运算,得到所述第二中间向量数据。
[0015]可选的,所述第一掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第一掩码向量中对应的各个位均为一,各位数为负数的在所述第一掩码向量中对应的各个位均为零;所述第二掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第二掩码向量中对应的各个位均为零,为负数的在所述第二掩码向量中对应的各个位均为一。
[0016]可选的,所述第一数量为所述加载指令的对应宽度除以所述待处理数据对应数据
类型的长度的计算结果。
[0017]可选的,所述加载指令以及所述乘加指令的类型为单指令多数据流指令。
[0018]第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如前所述的方法。
[0019]第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如前所述的方法。
[0020]本申请提供的内存中待处理数据的激活方法、装置、电子设备及介质中,通过执行加载指令,分别加载包括第一数量个待处理数据的第一向量数据和包括第一数量个系数的第二向量数据,并将第一向量数据中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存中待处理数据的激活方法,其特征在于,包括:对接收的激活函数进行解析,得到所述待处理数据对应的加载指令;执行所述加载指令,分别从内存中加载第一向量数据和第二向量数据至向量寄存器;所述第一向量数据包括第一数量个待处理数据,所述第二向量数据包括第一数量个系数;将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据;通过执行乘加指令,将所述第二向量数据中的各系数分别与所述第二中间向量数据进行相乘,并将相乘的结果与所述第一中间向量数据进行相加,得到所述激活函数的处理结果进行缓存,以实现对待处理数据的激活。2.根据权利要求1所述的方法,其特征在于,所述加载指令中包括第三向量数据,所述第三向量数据包括第一数量个零;所述将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据,包括:将所述第一向量数据中的每个元素分别与所述第三向量数据中的对应元素进行比较,并基于较大的数据构成所述第一中间向量数据;将所述第一向量数据中的每个元素分别与所述第三向量数据中的对应元素进行比较,并基于较小的数据构成所述第二中间向量数据。3.根据权利要求1所述的方法,其特征在于,所述将所述第一向量数据中的正数保留,负数赋为零,得到第一中间向量数据;以及,将所述第一向量数据中的负数保留,正数赋为零,得到第二中间向量数据,包括:针对所述第一向量数据中的每一待处理数据,执行第一掩码生成指令,得到与所述待处理数据对应的第一掩码向量;以及,执行第二掩码生成指令,得到与所述待处理数据对应的第二掩码向量;对所述第一向量数据和所述第一掩码向量进行与运算,得到所述第一中间向量数据;以及,对所述第一向量数据和所述第二掩码向量进行与运算,得到所述第二中间向量数据。4.根据权利要求3所述的方法,其特征在于,所述第一掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第一掩码向量中对应的各个位均为一,各位数为负数的在所述第一掩码向量中对应的各个位均为零;所述第二掩码向量的各个位与所述待处理数据的各个位一一对应,且所述待处理数据中各位数为正数的在所述第二掩码向量中对应的各个位均为零,为负数的在所述第二掩码向量中对应的各个位均为一。5.根据权利要求1

4任一项所述的方法,其特征在于,所述第一数量为所述加载指令的对应宽度除以所述待处理数据对应数据类型的长度的计算结果。6.根据权利要求1

4任一项所述的方法,其特征在于,所述加载指令以及所述乘加指令的类型为单指令多数据流指令。7.一种内存中待处理数据的激活装置,其特征在于,包括:接收模块,用于对接收的激活函数进行解析,得到所述待处理数据对应的加载指令;加载模块,用于执行所述加载指令,分...

【专利技术属性】
技术研发人员:盛文学彭飞
申请(专利权)人:龙芯中科合肥技术有限公司
类型:发明
国别省市:

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

1