当前位置: 首页 > 专利查询>北京大学专利>正文

进行矩阵向量乘法运算的系统及进行神经网络运算方法技术方案

技术编号:20389864 阅读:33 留言:0更新日期:2019-02-20 02:51
一种进行矩阵向量乘法运算的系统,包括:NOR FLASH计算阵列,阵列中每列单元的栅极接在一起,各列用于依次输入与被乘数向量的元素相对应的输入电压;阵列中每行单元的漏极连接在一起,用于输出各单元进行乘法运算后并累加(即矩阵向量乘法运算)得到的运算电流;阵列中每两行为一组,其中一行表示负数,另一行表示正数,各组按照正负关系被预先写入乘数向量的各元素;加权求和电路,对位于同一组代表不同位的运算电流进行加权求和运算;减法电路,每组设置一减法电路,用于对代表不同位加权求和后的运算结果进行减法运算;模数转换电路,用于将进行减法运算后的结果转换为二进制数字量。通过本发明专利技术的系统,实现了存储计算一体化。

【技术实现步骤摘要】
进行矩阵向量乘法运算的系统及进行神经网络运算方法
本专利技术属于半导体器件及集成电路领域,具体是一种基于NORFLASH计算阵列进行矩阵向量乘法运算的系统及方法。
技术介绍
深度学习和人工智能的发展对数据处理的能效比和硬件消耗提出了严苛的要求,传统意义上的基于冯诺依曼式的计算架构,在执行运算时,受限于中央处理单元CPU和内存间的数据传输瓶颈,数据处理速度受到极大限制,同时能量和硬件资源消耗剧增。深度学习中存在大量的矩阵向量乘法运算,基于NORFLASH设计的存储计算一体化阵列能够并行执行矩阵向量乘法运算,能够在硬件层面对运算进行加速,同时极大地降低能量和硬件资源消耗,对于未来人工智能的硬件化实现和应用具有重要意义。
技术实现思路
为至少部分解决上述问题,本专利技术提出了一种基于NORFLASH计算阵列加速深度学习的方法和系统。根据本专利技术的一方面,提供一种基于NORFLASH计算阵列进行矩阵向量乘法运算的系统,包括:NORFLASH计算阵列,阵列中每列单元的栅极接在一起,各列用于依次输入与被乘数向量的元素相对应的输入电压;阵列中每列单元的源极接在一起,用于接入驱动电压;阵列中每行单元的漏极连接在一起,用于输出各单元进行乘法运算后并累加得到的运算电流;按照乘法对应关系,阵列中每两行为一组,其中一行表示负数,另一行表示正数,各组按照正负关系被预先写入乘数向量的各元素;加权求和电路,用于对位于同一组代表不同位的所述运算电流进行加权求和运算;减法电路,每组设置一减法电路,用于对代表不同比特(位)加权求和后的运算结果进行减法运算;模数转换电路,用于将进行减法运算后的结果转换为二进制数字量。在进一步的实施方案中,所述加权求和电路为电流镜,用于将处于不同位的电流值加权求和,权值为2k-1,其中k为不同电流值对应的位数。在进一步的实施方案中,所述NORFLASH计算阵列为多个,分别对应乘数向量中各元素的不同位。在进一步的实施方案中,所述矩阵向量乘法运算为神经网络全连接层的运算,所述被乘数向量为1×M的输入向量X,所述乘数向量为M×N的权值矩阵K,其中M,N分别为正整数。在进一步的实施方案中,所述矩阵向量乘法运算为神经网络卷积层的运算,输入矩阵X(M×N)的各部分分别与卷积核K(k×k)进行矩阵向量乘法运算,完成卷积操作并得到输出矩阵Y(m×n),数学表达如下:Yi,j=Xi,j·Kk,k+Xi,j+1·Kk,k-1+Xi+1,j·Kk-1,k+…+Xi+k-1,j+k-1·K1,1其中l≤i≤M-k+1(m),l≤j≤N-k+1(n)。在进一步的实施方案中,所述矩阵向量乘法运算为神经网络平均池化运算,平均池化对应于卷积核均为1/n,步长为n的卷积运算。根据本专利技术的另一方面,提供一种应用上述系统进行卷积层运算的方法,包括:按照卷积运算对应关系,在NORFLASH计算阵列各组中预先写入卷积核中数据;在NORFLASH计算阵列中,各列依次输入与输入矩阵的元素相对应的输入电压;通过模数转换电路获得卷积后的矩阵。根据本专利技术的另一方面,提供一种应用上述系统进行全连接层运算的方法,包括:按照全连接层运算对应关系,在NORFLASH计算阵列各组中预先写入权值矩阵数据;在NORFLASH计算阵列中,各列依次输与入输入向量的元素相对应的输入电压;通过模数转换电路获得全连接运算后的向量。根据本专利技术的另一方面,提供一种应用上述系统进行平均池化运算的方法,包括:按照平均池化运算对应关系,在NORFLASH计算阵列各组中预先写入与n×n的卷积核相对应的数据,卷积核中各元素均为1/n;在NORFLASH计算阵列中,各列依次输入与输入向量的元素相对应的输入电压;通过模数转换电路获得平均池化运算后的矩阵。根据本专利技术的另一方面,提供一种应用上述系统进行矩阵向量乘法运算的方法,包括:按照矩阵向量乘法运算对应关系,在NORFLASH计算阵列各组中预先写入乘数向量数据;在NORFLASH计算阵列中,各列依次输入与输入向量的元素相对应的输入电压;通过模数转换电路获得进行乘法运算后的运算结果。本专利技术提出了一种基于NORFLASH计算阵列加速深度学习的方法,主要解决了以下技术问题:(1)通过本专利技术的系统,实现了存储计算一体化;(2)本专利技术的向量乘法运算基于NORFLASH计算阵列的处理单元实现,提高了运算速度;(3)本专利技术的系统可以应用于深度学习,提高深度神经网络的运算速度。附图说明图1A和图1B分别为本专利技术实施例的深度学习中全连接和卷积操作的示意图。图2A为本专利技术实施例的深度学习流程示意图,以及图2B和图2C为利用预编程后的NORFLASH计算阵列实现全连接和卷积操作示意图。图3为本专利技术实施例的基于NORFLASH计算阵列进行矩阵向量乘法运算的系统实现示意图。图4A为全连接运算示意图,图4B为基于图3的系统实现全连接操作示意图。图5A为卷积运算示意图,图5B为基于图3的系统实现卷积操作示例图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术作进一步的详细说明。根据本专利技术的基本构思,深度学习网络包含卷积、池化和全连接层,从本质上而言,矩阵向量乘法运算在各层中占据极大比重。NORFLASH存储计算一体化阵列能够高效地执行矩阵向量乘法运算,加速深度学习。具体而言:NORFLASH单元的阈值电压可以通过编程/擦除进行调节,当对NORFLASH单元编程时,热电子注入,器件阈值电压升高,存储状态视为“0”;当对NORFLASH单元擦除时,电子隧穿,器件阈值电压降低,存储状态视为“1”。因此,当对不同状态的NORFLASH单元施加相同的偏置时,不同单元的漏极电流反映了NORFLASH单元的存储状态。经过预编程的NORFLASH阵列可以应用于矩阵向量乘法运算并实现全连接、卷积和池化操作:在运算开始前,将二进制输入矩阵的各个元素排成一行形成输入向量,输入向量中不同元素的值(0或1)决定NORFLASH阵列中字线WL上的栅极输入电压(0或Vg)。漏极的输出电流反映了输入数据与NORFLASH单元内所存数据相乘后的结果。当栅极输入电压为Vg(等效为“1”)时,漏极输出电流与参考电流Iref的比值1即为输入数据1与NORFLASH单元存储数据的乘积;当栅极输入电压为0(等效为“0”)时,漏极输出电流与参考电流的比值0即为输入数据0与NORFLASH单元存储数据的乘积。在此基础上,将多个NORFLASH单元的漏极连接在一起输出,“和电流”反映了输入矩阵和NORFLASH阵列中所存矩阵相乘后的结果,实现矩阵向量乘法运算。基于上述的NORFLASH计算存储一体化阵列,本专利技术提出了基于NORFLASH计算阵列加速深度学习的系统。NORFLASH计算阵列运算得到的结果经外围电路各模块处理后,得到输出矩阵,该输出矩阵可以作为深度学习网络中下一级的输入参与运算。因此,多个NORFLASH计算阵列可以协同工作,并行处理矩阵向量乘法,对深度学习进行加速。基于NORFLASH计算阵列的存储计算一体化系统能够有效提高深度学习中的能效比,显著减少硬件开销。图1为本专利技术实施例中深度学习中全连接、卷积操作的示意图,从图中可知,全连接操作与一般意义上的矩阵向量乘法运本文档来自技高网...

【技术保护点】
1.一种基于NOR FLASH计算阵列进行矩阵向量乘法运算的系统,其特征在于,包括:NOR FLASH计算阵列,阵列中每列单元的栅极接在一起,各列用于依次输入与被乘数向量的元素相对应的输入电压;阵列中每列单元的源极接在一起,用于接入驱动电压;阵列中每行单元的漏极连接在一起,用于输出各单元进行乘法运算后并累加得到的运算电流;按照乘法对应关系,阵列中每两行为一组,其中一行表示负数,另一行表示正数,各组按照正负关系被预先写入乘数向量的各元素;加权求和电路,用于对位于同一组代表不同位的所述运算电流进行加权求和运算;减法电路,每组设置一减法电路,用于对代表不同位加权求和后的运算结果进行减法运算;模数转换电路,用于将进行减法运算后的结果转换为二进制数字量。

【技术特征摘要】
1.一种基于NORFLASH计算阵列进行矩阵向量乘法运算的系统,其特征在于,包括:NORFLASH计算阵列,阵列中每列单元的栅极接在一起,各列用于依次输入与被乘数向量的元素相对应的输入电压;阵列中每列单元的源极接在一起,用于接入驱动电压;阵列中每行单元的漏极连接在一起,用于输出各单元进行乘法运算后并累加得到的运算电流;按照乘法对应关系,阵列中每两行为一组,其中一行表示负数,另一行表示正数,各组按照正负关系被预先写入乘数向量的各元素;加权求和电路,用于对位于同一组代表不同位的所述运算电流进行加权求和运算;减法电路,每组设置一减法电路,用于对代表不同位加权求和后的运算结果进行减法运算;模数转换电路,用于将进行减法运算后的结果转换为二进制数字量。2.根据权利要求1所述的系统,其特征在于,所述加权求和电路为电流镜,用于将处于不同位的电流值加权求和,权值为2k-1,其中k为不同电流值对应的位数。3.根据权利要求1所述的系统,其特征在于,所述NORFLASH计算阵列为多个,分别对应乘数向量中各元素的不同位。4.根据权利要求1所述的系统,其特征在于,所述矩阵向量乘法运算为神经网络全连接层的运算,所述被乘数向量为1×M的输入向量X,所述乘数向量为M×N的权值矩阵K,其中M,N分别为正整数。5.根据权利要求1所述的系统,其特征在于,所述矩阵向量乘法运算为神经网络卷积层的运算,规模为M×N的输入矩阵X的各部分分别与规为k×k的卷积核K进行矩阵向量乘法运算,完成卷积操作并得到规模为m×n的输出矩阵Y,数学表达如下:Yi,j=Xi,j·Kk,...

【专利技术属性】
技术研发人员:康晋锋项亚臣黄鹏韩润泽刘晓彦
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1