用于神经网络卷积层的运算装置、芯片及方法制造方法及图纸

技术编号:21479325 阅读:18 留言:0更新日期:2019-06-29 05:11
本公开公开了用于神经网络卷积层的运算装置、芯片及方法,在第一个时钟周期内,只有第一个流水步骤开始工作;在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。

【技术实现步骤摘要】
用于神经网络卷积层的运算装置、芯片及方法
本公开属于芯片电路设计领域,尤其涉及用于神经网络卷积层的运算装置、芯片及方法。
技术介绍
本部分的陈述仅仅是提到了与本公开相关的
技术介绍
,并不必然构成现有技术。针对图像特征提取的应用需要,目前的传统DSP芯片以及基于RISC架构的芯片没有考虑CNN等卷积神经网络的卷积运算(矩阵之间)以及频繁存储器访问(像素数据以及权重系数)的时间开销。专利技术人认为现有技术中存在一定的问题,主要体现在:人工智能AI应用的矩阵卷积计算量可能更大,需要的进行的像素数据与系数的存储访问有可能更大,并且传统的CPU,DSP硬件架构没有考虑新的图像AI应用场景,不满足快速,低延迟,吞吐量很大的实际要求,同时满足效率情况下,也要进行功耗开销优化,目前存在的传统CPU、DSP处理器不适合进行图像的神经网络网络参数训练与实际测试。中国专利技术专利申请,申请公布号为“CN108701015A”,申请公布日为2018年10月23日的深圳市大疆创新科技有限公司的“用于神经网络的运算装置、芯片、设备及相关方法”,它可以进行神经网络卷积处理,但其也存在一定的不足,不具备流水处理与吞吐自适应的特点。
技术实现思路
为了解决现有技术的不足,本公开提供了用于神经网络卷积层的运算装置、芯片及方法,其提供了一种针对图像AI任务处理的卷积层的卷积运算的硬件加速器,该加速器以纯硬件电路实现,以流水化方法进行处理,单个周期完成每个阶段任务,每个时钟吞吐量即为一个像素矩阵与一个系数矩阵的卷积结果。如果想降低单位时间的吞吐率,则可以降低最大时钟频率。并且很多硬件资源最大化的复用,提高资源利用效率,降低硬件资源开销,降低芯片面积。第一个方面,本实施例提供了用于神经网络卷积层的运算装置;用于神经网络卷积层的运算装置,包括:控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M2列的形式存储到像素缓冲器中;所述控制器从系数矩阵存储器中调取M行乘以M列的单个系数矩阵块;将调取的单个系数矩阵按照M2行乘以1列的形式存储到系数缓冲器中;第三个流水步骤:所述控制器每次从像素缓冲器中读取第i个像素点,从系数缓冲器中读取第i个系数,控制器控制乘累加器将第i个像素点与对应第i个系数进行乘法运算,第i个像素属于被乘数,第i个系数属于乘数,被乘数与乘数的每一位逐次进行乘法,产生多个部分积,再把部分积进行累加;一共进行M2次单个像素点数据与对应卷积核系数的乘法运算;第四个流水步骤:把生成的M2个乘法运算结果,进行加法操作,得到像素映射特征数值;其中,i是正整数;i的取值范围是1到M2;M2表示像素矩阵块中像素的个数;第五个流水步骤:将得到像素映射特征数值回写到像素映射特征矩阵存储器中;在第一个时钟周期内,只有第一个流水步骤开始工作;在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。有益效果,可以让所有的流水步骤均保持工作的状态,避免现有技术中仅仅一个步骤工作,其余四个步骤等待的状态,提升工作效率,节省工作时间。作为一种实施例,所述控制器设置流水线时钟周期,流水充满后,每个时钟周期,当所有乘积均进行完累加运算后,单个时钟周期才吞吐一次乘累加结果。该流水结构单个时钟周期完成每个步骤具体任务,可以通过改变时钟频率达到吞吐量自适应;流水处理的结果,延长了数据路径的总时间长度,但是通过提高时钟周期频率,保证每个运算步骤都在工作,保证输出实时性、提高输出效率。运算处理流水化处理后,通过提高数据运算的时钟频率,以提高吞吐能力;通过降低频率,在满足吞吐的前提下,降低能耗。系数缓冲器数据共享,仅仅更新像素缓冲器的数值,系数缓冲器的数据不进行更新。所述像素映射特征数值为每个像素矩阵与系数矩阵卷积运算后的单个中心像素。所述控制器将乘累加器的求和运算结果进行数据缓存,以及回写,回写到卷积后的特征映射像素矩阵存储器中。保留原来输入像素矩阵,而不会对原来像素矩阵进行数据更新。第二方面,本公开提供了用于神经网络卷积层的芯片;用于神经网络卷积层的芯片,包括所述运算装置,还包括通信接口,所述通信接口用于获取待所述运算装置处理的输入数据,还用于输出所述运算装置的运算结果。第三方面,本公开提供了用于神经网络卷积层的方法;用于神经网络卷积层的方法,运用于运算装置中,所述运算装置,包括:控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;所述方法包括:在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M2列的形式存储到像素缓冲器中;所述控制器从系数矩阵存储器中调取M行乘以M列的单个系数矩阵块;将调取的单个系数矩阵按照M2行乘以1列的形式存储到系数缓冲器中;第三个流水步骤:所述控制器每次从像素缓冲器中读取第i个像素点,从系数缓冲器中读取第i个系数,控制器控制乘累加器将第i个像素点与对应第i个系数进行乘法运算,第i个像素属于被乘数,第i个系数属于乘数,被乘数与乘数的每一位逐次进行乘法,产生多个部分积,再把部分积进行累加;一共进行M2次单个像素点数据与对应卷积核系数的乘法运算;第四个流水步骤:把生成的M2个乘法运算结果,进行加法操作,得到像素映射特征数值;其中,i是正整数;i的取值范围是1到M2;M2表示像素矩阵块中像素的个数;第五个流水步骤:将得到像素映射特征数值回写到像素映射特征矩阵存储器中;在第一个时钟周期内,只有第一个流水步骤开始工作;在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。与现有技术相比,本公开的有益效果是:把整个任务划分为5个流水步骤,本文档来自技高网...

【技术保护点】
1.用于神经网络卷积层的运算装置,其特征是,包括:控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M

【技术特征摘要】
1.用于神经网络卷积层的运算装置,其特征是,包括:控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M2列的形式存储到像素缓冲器中;所述控制器从系数矩阵存储器中调取M行乘以M列的单个系数矩阵块;将调取的单个系数矩阵按照M2行乘以1列的形式存储到系数缓冲器中;第三个流水步骤:所述控制器每次从像素缓冲器中读取第i个像素点,从系数缓冲器中读取第i个系数,控制器控制乘累加器将第i个像素点与对应第i个系数进行乘法运算,第i个像素属于被乘数,第i个系数属于乘数,被乘数与乘数的每一位逐次进行乘法,产生多个部分积,再把部分积进行累加;一共进行M2次单个像素点数据与对应卷积核系数的乘法运算;第四个流水步骤:把生成的M2个乘法运算结果,进行加法操作,得到像素映射特征数值;其中,i是正整数;i的取值范围是1到M2;M2表示像素矩阵块中像素的个数;第五个流水步骤:将得到像素映射特征数值回写到像素映射特征矩阵存储器中;在第一个时钟周期内,只有第一个流水步骤开始工作;在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。2.如权利要求1所述的装置,其特征是,所述控制器设置流水线时钟周期,流水充满后,每个时钟周期,当所有乘积均进行完累加运算后,单个时钟周期才吞吐一次乘累加结果。3.用于神经网络卷积...

【专利技术属性】
技术研发人员:孙建辉李登旺
申请(专利权)人:山东师范大学
类型:发明
国别省市:山东,37

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

1