用于卷积神经网络的混合立方体存储系统及加速计算方法技术方案

技术编号:16471848 阅读:98 留言:0更新日期:2017-10-28 23:43
本发明专利技术提供一种混合内存立方体存储系统,包括混合立方体和设置在所述混合立方体的电路逻辑层上的计算控制器、乘加加速器及缓存。其中计算控制器响应于接收的要进行乘加计算的指令,通过所述混合立方体的内存控制器读取要进行计算的数据存入至缓存中,并指示乘加加速器进行计算;该乘加加速器用于响应于来自所述计算控制器的指令,读取缓存中的数据来并行地进行多路乘加计算并将计算结果写入至缓存。这样,在卷积神经网络计算时大量的并行计算及其涉及的频繁访存操作都可以该混合内存立方体内部完成,充分利用了混合内存立方体内部极高的内存带宽和低访问延迟,加快了计算速度,使得卷积神经网络整体的计算效率得到了提升。

A hybrid cubic storage system for convolutional neural networks and its accelerated computation method

The invention provides a hybrid memory cube storage system, comprising a mixing cube and a computing controller, a multiplier, an accelerator and a cache, which are arranged on the circuit logic layer of the mixed cube. The calculated controller in response to receiving to multiply computing instructions through the hybrid memory controller to calculate the cube to read data into to cache, and instructs the multiply add accelerator calculation; the multiplier accelerator in response to calculate from the controller's instructions, read the data in the cache. Parallel multiplex multiply computing results are written to the cache. So, in the calculation of convolution neural network when a large number of parallel computing and the frequent access to the interior of the hybrid memory cube, make full use of the hybrid memory cube internal high memory bandwidth and low latency, speed up the calculation, the convolutional neural network to improve the overall computational efficiency.

【技术实现步骤摘要】
用于卷积神经网络的混合立方体存储系统及加速计算方法
本专利技术涉及神经网络及硬件加速技术,尤其涉及支持神经网络计算的加速方法及存储结构。
技术介绍
卷积神经网络具有良好的容错能力、并行处理能力和自学习能力,被广泛应用在深度学习中作为基准神经网络架构。卷积神经网络的计算通常会涉及频繁的访存,降低访存延迟和提高访存带宽对于提高卷积神经网络的计算效率、降低计算功耗都有极大的好处。传统基于DRAM或SRAM的方式存储权重和中间计算结果的方法,并不能得到很好的效果。对于DRAM,其访存速度相较于SRAM要慢,访存带宽也相较于SRAM要小,对于神经网络的计算效率有很大的限制作用。而对于SRAM,虽然在访存速度和访存带宽上要略胜一筹,但是因为其高昂的价格,并不能提供很大的内存容量,也不适合具有大量计算数据的卷积神经网络计算。HMC(HybridMemoryCube,混合内存立方体)是一种新型的3D内存结构,由于其具有存储容量大、片上访存延迟小等特点,可能是一种合适应用于卷积神经网络计算中的存储计算载体,但如何利用这种新型内存结构更好地支持卷积神经网络计算,仍是亟需解决的问题。
技术实现思路
因此,本专利技术的目的是提供一种能较好地支持卷积神经网络计算的混合内存立方体结构及加速卷积神经网络计算的方法。本专利技术的目的是通过以下技术方案实现的:一方面,本专利技术提供了一种混合内存立方体存储系统,包括混合立方体和设置在所述混合立方体的电路逻辑层上的计算控制器、乘加加速器及缓存,其中所述计算控制器用于响应于接收的指令指示所述混合立方体的内存控制器对所述混合立方体中的数据进行存取,读写缓存以及指示乘加加速器进行计算;所述乘加加速器用于响应于来自所述计算控制器的指令,读取缓存中的数据来并行地进行多路乘加计算并将计算结果写入至缓存。在上述系统中,所述乘加加速器可包括并行乘加器、寄存器和状态机,其中状态机响应于来自计算控制器的指令控制并行乘加器进行运算;并行乘加器响应于状态机的控制,基于从寄存器读取的数据并行地进行多路乘加计算并将计算结果写入到寄存器;寄存器用于存储从缓存读取的数据和来自并行乘加器的计算结果。在上述系统中,所述并行乘加器可以由多个并联的乘加器构成。在上述系统中,所述寄存器大小可取决于并行乘加器一次计算所需的数据的最大容量。在上述系统中,所述计算控制器可以为轻量级处理器。在上述系统中,所述计算控制器可响应于收到要进行存取数据的指令时,通过内存控制器从混合立方体中存取相关数据,并返回对所述指令的响应。在上述系统中,所述计算控制器可响应于收到要进行乘加运算的指令时,通过内存控制器从混合立方体中读取要进行计算的数据并将其保存至缓存中,指示乘加加速器从缓存中读取相应数据进行运算,以及从缓存中读取来自乘加加速器的运算结果并通过内存控制器将其写入混合立方体中,同时返回对所述指令的响应。又一方面,本专利技术提供了一种采用上述的存储系统进行加速计算的方法,包括:步骤S1,由计算控制器响应于确定收到的指令指示要进行乘加运算,从该指令中提取需要计算的数据在混合立方体中的物理地址;步骤S2,由计算控制器指示混合立方体的内存控制器通过所提取的物理地址取出数据并保存到缓存中;步骤S3,由计算控制器指示乘加加速器从缓存中读取数据进行相关的乘加计算并将得到的计算结果保存至缓存;步骤S4,由计算控制器从缓存中读取计算结果,指示内存控制器将该计算结果写入到所收到的指令中指定的需要写入计算结果的物理地址。在上述方法中,还可包括由计算控制器响应于确定收到的指令指示要进行数据存/取,从该指令中提取需要进行存/取的物理地址;由计算控制器指示混合立方体的内存控制器在该物理地址处存/取数据并返回对指令的响应。与现有技术相比,本专利技术的优点在于:将卷积神经网络中大量的并发乘加计算放在HMC的电路逻辑层中进行,充分利用了HMC结构内部的高内存带宽和低访存延迟的特点,减少了主处理器的负担,提高了神经网络整体的计算效率,并降低了功耗开销。附图说明以下参照附图对本专利技术实施例作进一步说明,其中:图1为现有的混合立方体的结构示意图;图2为对于现有混合立方体的访存示意图;图3为根据本专利技术实施例的混合立方体存储系统结构示意图;图4为根据本专利技术实施例的乘加加速器的结构示意图;图5为根据本专利技术实施例的并行乘加器的结构示意图;图6为根据本专利技术实施例的乘加加速器中状态机的状态转换示意图;图7为基于本专利技术实施例的存储系统加速卷积神经网络计算的方法流程示意图。具体实施方式为了使本专利技术的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。图1给出了现有的混合立方体(HMC)的结构示例示意图。如图1所示,HMC包括多个内存层和一个电路逻辑层。HMC采用了3D封装技术,将多层DRAM以及电路逻辑层堆叠,其中电路逻辑层对各层进行排序,刷新,数据路由,纠错等。平行堆叠的多个内存芯片通过TSV(硅通孔)技术互相垂直链接,以使得每个芯片传输数据的输入输出端口大幅度增加从而大大提升了内存带宽并降低了传输延迟。其中每一个拱顶(vault)都在对应的电路逻辑层中存在一个内存控制器,用来对这个vault中的内存操作行为进行管理。专利技术人研究发现,在卷积神经网络中直接采用这种HMC结构对于整体计算效率的改善并不大。如图2所示,主处理器通过系统总线访问HMC内存。在卷积神经网络计算中包括大量的并发乘加计算(例如,并发性卷积计算),当进行这些并发乘加计算时,处理器需要密集地存取HMC中保存的数据,尽管HMC内部的内存带宽和访问延迟有所改善,但对于主处理器与HMC之间的大量的数据传输及延迟并没有改善,而且这些并发性乘加计算会占用主处理器的大量计算时间,因而卷积神经网络整体计算效率并没有太多的改善。虽然可以通过采用包括多个内核的处理器或专用图形处理器来优化计算能力,但这无疑会增加系统成本。并且现有的处理器本身在进行并发性乘加计算时的效率也不是很理想。在本专利技术一个实施例中,提供了一种面向卷积神经网络的混合立方体存储系统,以更好地改善卷积神经网络整体的计算效率。该存储系统包括HMC和位于HMC的电路逻辑层的计算控制器、乘加加速器和缓存。该存储系统通过系统总线与外部的主处理器相连接。如图3所示,计算控制器响应于来自外部处理器的指令来执行相应的任务并将结果返回给外部处理器。更具体地,当计算控制器收到读取和写入指令时,可以通过HMC的内存控制器来对HMC进行数据的读取和写入。当计算控制器收到要进行乘加计算的指令时,通过内存控制器从HMC中读取要进行运算的数据并将其传输至缓存中,以及指示乘加加速器从缓存中读取相应数据进行运算。在运算完成之后,乘加加速器将运算结果写入缓存中。计算控制器从缓存中读出运算结果并通过内存控制器将其写入HMC内存芯片中,同时也可以向外部的主处理器返回运算结果和/或运算结果的存储地址。这里的计算控制器可以是实现上述功能任一逻辑控制电路、FPGA或ASIC芯片等。优选地,该计算控制器可以为轻量级处理核,例如ARM处理核或类似于ARM处理器的轻量级处理器,还可以适当地为主处理器承担部分非并发性乘加的计算和接受来自主处理器的相关指令本文档来自技高网...
用于卷积神经网络的混合立方体存储系统及加速计算方法

【技术保护点】
一种混合内存立方体存储系统,包括混合立方体和设置在所述混合立方体的电路逻辑层上的计算控制器、乘加加速器及缓存,其中所述计算控制器用于响应于接收的指令指示所述混合立方体的内存控制器对所述混合立方体中的数据进行存取,读写缓存以及指示乘加加速器进行计算;所述乘加加速器用于响应于来自所述计算控制器的指令,读取缓存中的数据来并行地进行多路乘加计算并将计算结果写入至缓存。

【技术特征摘要】
1.一种混合内存立方体存储系统,包括混合立方体和设置在所述混合立方体的电路逻辑层上的计算控制器、乘加加速器及缓存,其中所述计算控制器用于响应于接收的指令指示所述混合立方体的内存控制器对所述混合立方体中的数据进行存取,读写缓存以及指示乘加加速器进行计算;所述乘加加速器用于响应于来自所述计算控制器的指令,读取缓存中的数据来并行地进行多路乘加计算并将计算结果写入至缓存。2.根据权利要求1所述的系统,其中所述乘加加速器包括并行乘加器、寄存器和状态机,其中状态机响应于来自计算控制器的指令控制并行乘加器进行运算;并行乘加器响应于状态机的控制,基于从寄存器读取的数据并行地进行多路乘加计算并将计算结果写入到寄存器;寄存器用于存储从缓存读取的数据和来自并行乘加器的计算结果。3.根据权利要求2所述的系统,其中所述并行乘加器由多个并联的乘加器构成。4.根据权利要求2所述的系统,其中所述寄存器大小取决于并行乘加器一次计算所需的数据的最大容量。5.根据权利要求1所述的系统,其中所述计算控制器为轻量级处理器。6.根据权利要求1所述的系统,其中所述计算控制器响应于收到要进行存取数据的指令时,通过内存控制器从混合立方体中存取相关数据,并返回对所...

【专利技术属性】
技术研发人员:韩银和翁凯衡
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1