CN107590533A - 一种用于深度神经网络的压缩装置 - Google Patents
一种用于深度神经网络的压缩装置 Download PDFInfo
- Publication number
- CN107590533A CN107590533A CN201710753293.4A CN201710753293A CN107590533A CN 107590533 A CN107590533 A CN 107590533A CN 201710753293 A CN201710753293 A CN 201710753293A CN 107590533 A CN107590533 A CN 107590533A
- Authority
- CN
- China
- Prior art keywords
- input
- matrix
- data
- buffer
- deep neural
- 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
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种用于深度神经网络的加速系统,包括:3D内存、与所述3D内存的拱顶的逻辑层上的内存控制器连接的深度神经网络计算单元、与所述内存控制器连接的路由器、以及压缩器和解压缩器;其中,各个拱顶的内存控制器经由与其连接的路由器通过片上网络进行数据传输;以及其中,所述压缩器用于对需要在片上网络中传输的用于深度神经网络的待压缩数据进行压缩,所述解压缩器用于对来自片上网络的用于深度神经网络的待解压缩数据进行解压缩。
Description
技术领域
本发明涉及对深度神经网络的加速,尤其涉及对深度神经网络的数据处理。
背景技术
随着人工智能技术的发展,涉及深度神经网络、尤其是卷积神经网络的技术在近几年得到了飞速的发展,在图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域均取得了广泛的应用。所述深度神经网络可以被理解为一种运算模型,其中包含大量数据节点,每个数据节点与其他数据节点相连,各个节点间的连接关系用权重表示。随着深度神经网络的不断发展,其复杂程度也在不断地提高。由于采用深度神经网络进行计算往往需要对大量的数据进行循环运算,因此需要频繁地对内存进行访存,并且需要相对较高的内存带宽以保障计算速度。
为了对深度神经网络进行加速,有一些现有技术提出可以对内存本身进行改进,以将改进后的内存应用到深度神经网络中。例如,在Duckhwan Kim等人于2016年发表于ISCA上的文章“Neurocube:A Programmable Digital Neuromorphic Architecture withHigh-Density 3D Memory”中提出一种基于混合内存立方体(Hybrid Memory Cube,HMC)的卷积神经网络加速系统。其中,所述HMC是一种新型的3D内存结构,其具有存储容量大、片上访存延迟小等特点,因而被Duckhwan Kim等人认为是一种潜在的适用于卷积神经网络的存储计算载体。
图1示出了HMC的三维结构的示意图。可以看到,HMC采用了与传统2D内存完全不同的多层电路堆叠结构,通过硅通孔技术(TSV)将平行堆叠的芯片垂直链接起来。在HMC中包括用于存储数据的多个内存层、以及用于对各个内存层进行排序、刷新、数据路由、纠错的一个电路逻辑层。在垂直方向上堆叠的单位面积(即图1上的小方格)上的各层芯片的集合被称作为一个拱顶(vault),每个拱顶在对应的电路逻辑层的位置处均具有一个内存控制器,所述内存控制器用于对所述拱顶中的内存操作进行管理,例如控制各个拱顶之间的数据传输,这样的结构使得每个拱顶均可以独立地提供相对较高的带宽。为了方便描述,这里将在3D内存的各个拱顶之间传输数据的系统抽象地称作为片上网络(Network on Chip,NoC)。
在Duckhwan Kim等人的文章中提出可以利用所述拱顶的高带宽、低访问延迟的特点,将神经网络的计算加速单元集成到HMC的拱顶中。然而,在具体实现上述技术的过程中,还存在许多需要解决和克服的问题。可以理解,在传统的2D内存中并不存在拱顶的概念也不具备逻辑层,换句话说,在2D内存中并不存在可用于计算的单元,因而如何将HMC具体地布置于深度神经网络中,以及如何将神经网络的计算加速单元设置在HMC中,以更好地利用3D内存来为深度神经网络进行服务,是需要考虑的问题。
另一方面,由于3D内存内部能够支持很高的数据通量,而同时电路逻辑层中的神经网络计算单元能够提供很高的计算性能,这使得用于连接拱顶和神经网络计算单元的片上网络必需具备很高的数据通量能力,以应对深度神经网络需要频繁地从内存中访存数据以进行计算的需求。然而,庞大的数据传输需求会给片上网络带来巨大的负担,以致片上网络的传输延时大幅上升,进而影响系统性能。因此,在具体部署诸如将神经网络的计算加速单元集成到HMC的拱顶中的方案时,还需要考虑如何缓解为片上网络所带来的负载压力。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于深度神经网络的加速系统,包括:3D内存、与所述3D内存的拱顶的逻辑层上的内存控制器连接的深度神经网络计算单元、与所述内存控制器连接的路由器、以及压缩器和解压缩器;
其中,各个拱顶的内存控制器经由与其连接的路由器通过片上网络进行数据传输;以及
其中,所述压缩器用于对需要在片上网络中传输的用于深度神经网络的待压缩数据进行压缩,所述解压缩器用于对来自片上网络的用于深度神经网络的待解压缩数据进行解压缩。
优选地,根据所述系统,其中,所述压缩器设置在所述路由器内或所述片上网络的网络接口处或所述内存控制器处,所述解压缩器设置在所述路由器内或所述片上网络的网络接口处或所述深度神经网络计算单元中。
优选地,根据所述系统,其中所述压缩器设置在所述路由器与所述3D内存连接的输入端处,所述解压缩器设置在所述路由器与所述深度神经网络计算单元连接的输出端处。
优选地,根据所述系统,其中所述压缩器设置在所述内存控制器与所述路由器之间,所述解压缩器设置在所述路由器与所述深度神经网络计算单元之间。
一种用于深度神经网络的压缩器,包括:
输入缓存(11),用于缓存所述深度神经网络中待压缩的矩阵数据;
比较器(12),用于从所述输入缓存(11)中读取元素并判断所述元素是否为0;
计数器(14),用于记录从所述输入缓存(11)中读取的元素的个数;
开关(15),以所述计数器(14)的输出作为输入并且以所述比较器(12)的输出作为控制信号,用于在所述比较器(12)判断为是时提供所述计数器(14)的输出;
第一输出缓存(13),用于在所述比较器(12)判断为否时存储所述输入缓存(11)中的元素,以获得针对所述矩阵的数据值;
第二输出缓存(16),用于存储由所述开关(15)所提供的所述计数器(14)的输出,以获得针对所述矩阵的列数值。
优选地,根据所述压缩器,其中,还包括:
行偏移计算装置,用于针对数据矩阵中的每一行,计算所述第一输出缓存(13)中第一个非0元素在所述第一输出缓存(13)的全部输出中的位置,以获得针对所述矩阵的行偏移值;以及,
第三输出缓存,用于存储所述行偏移值。
优选地,根据所述压缩器,其中,所述输入缓存(11)的长度、所述第一输出缓存(13)的长度、所述第二输出缓存(16)的长度大于或等于所述矩阵的行数,所述输入缓存(11)中的各个单元并行地针对所述矩阵中的每一行进行缓存,所述输入缓存(11)中的一个单元与所述第一输出缓存(13)中的一个单元以及所述第二输出缓存(16)中的一个单元相对应;
并且,所述第三输出缓存的长度小于或等于所述矩阵的行数。
一种用于深度神经网络的解压缩器,包括:
第一输入缓存(23),用于缓存所述深度神经网络中待解压缩的矩阵的数据值;
第二输入缓存(22),用于缓存所述深度神经网络中待解压缩的矩阵的列数值;
第三输入缓存(21),用于缓存所述深度神经网络中待解压缩的矩阵的行偏移值;
计数器(25),用于记录从所述第三输入缓存(21)中读取的元素的个数;
比较器(24),用于比较从所述第三输入缓存(21)中读取的元素与所述计数器(25)的计数是否相等;
写入控制器(26),用于存储来自所述第一输入缓存(23)和所述第二输入缓存(22)的元素;
输出缓存(27),用于针对所述计数器(25)的每一个计数,在所述比较器(24)判断为是时,根据所述写入控制器(26)中存储的元素,确定经过解压缩的所述矩阵中的一行。
优选地,根据所述解压缩器,其中,所述第一输入缓存(23)的长度、所述第二输入缓存(22)的长度小于或等于所述矩阵中元素的总数,所述第三输入缓存(21)的长度小于或等于所述矩阵的行数。
优选地,根据所述解压缩器,其中,所述输出缓存(27)还用于针对所述计数器(25)的每一个计数,根据所述写入控制器(26)中存储的数据值的元素、对应的列数值的元素、以及所述矩阵的列数,计算经过解压缩的所述矩阵中的一行的各个元素。
与现有技术相比,本发明的优点在于:
提供了一种用于深度神经网络的加速系统,其通过在所述系统中增加压缩器和解压缩器的方式,降低需要在片上网络中传输和/或存储的数据量,来缓解采用3D内存与深度神经网络计算单元相结合时为片上网络带来的负载压力,由此降低了数据传输的延迟。并且,在本发明中,还提供了专门针对深度神经网络中采用矩阵形式进行计算的数据的压缩器和解压缩器,基于神经网络的数据矩阵的稀疏性,可以自动地对数据矩阵进行压缩和解压缩。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是现有技术中混合内存立方体内存(HMC)的多层结构的示意图;
图2是现有技术中将HMC与深度神经网络计算单元相结合的方案的结构示意图;
图3是根据本发明的一个实施例将压缩器和解压缩器布置在图2的路由器中的结构示意图;
图4(a)是根据本发明的一个实施例将压缩器布置在图2所示出的内存控制器与路由器之间的结构示意图;
图4(b)是根据本发明的一个实施例将解压缩器布置在图2所示出的路由器与计算单元之间的结构示意图;
图5是深度神经网络中对数据矩阵(即图像)与卷积核矩阵执行卷积运算的过程的示意图;
图6是适用于针对稀疏矩阵进行压缩的CSR编码方法的原理图;
图7是根据本发明的一个实施例的用于深度神经网络中采用矩阵形式的数据的压缩器的结构示意图;
图8是根据本发明的一个实施例的用于深度神经网络中采用矩阵形式的数据的解压缩器的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
图2示出了现有技术中基于3D内存的深度神经网络加速系统的结构示意图。如图2所示,在3D内存的逻辑层上集成了深度神经网络计算单元,所述深度神经网络计算单元通过内存控制器与包含该内存控制器的本地拱顶相连。不同拱顶的内存控制器则通过共同的片上网络进行数据传输,由本地拱顶的内存控制器通过片上网络的路由器与远处拱顶实现数据的路由。
参考图2,当深度神经网络计算单元开始进行神经网络计算时,需要将数据请求发送到对应相连的本地拱顶内存控制器中,如若数据所在位置不在本地拱顶中,则将数据请求注入到相连的片上网络的路由器中,然后通过片上网络传输到目的地处的远处拱顶对应的路由器中。所述目的地处的路由器将数据请求提供至与其对应的远处拱顶的内存控制器中。通过所述远处拱顶的内存控制器,从HMC中访问所需的数据,并将所述数据注入到片上网络的路由器中,经由整个片上网络传输至发出所述数据请求的路由器中,以提供至对应的深度神经网络计算单元中进行计算。
发明人意识到,3D内存中每个拱顶的内存控制器是相互独立的,数据需要通过片上系统在不同的拱顶之间进行传输,因此可以利用3D内存中拱顶本身的特点来设置相应的处理装置,例如设置用于对数据进行压缩的压缩器和相应的解压缩器,以缓解庞大的数据传输对片上网络带来的负载压力。
下面将通过两个具体的实例来介绍根据本发明的用于深度神经网络的压缩器和解压缩器的布置方式。
图3示出了将压缩器和解压缩器设置在片上网络的路由器内的一种实施方式,这里为了简化仅绘制了与路由器中的一个交叉开关对应的部件。可以看到在图3中,压缩器与以本地内存为输入的多路选择器相连,以将压缩后的数据通过路由器内部的交叉开关输出到片上网络中(即北向);与此相对地,解压缩器被设置在以来自所述路由器外部的数据为输入的多路选择器处,以对接收到的数据进行解压缩,并将解压缩后的数据输出到深度神经网络计算单元中进行计算。这里可以使用任意恰当的压缩器和解压缩器,优选地,所述压缩器和解压缩器为适用于针对稀疏性的矩阵数据进行压缩的压缩器和解压缩器。
当3D内存中本地拱顶的内存层中的数据被读入到与该本地拱顶对应的路由器中时(即输入来自内存),首先数据包通过多路选择器进入到对应的虚通道中,若所述数据包的标签位指示该数据包尚未执行过压缩或者需要执行压缩,则通过多路选择器将该数据包转入压缩器中进行压缩并将其标签位修改为已执行过压缩或者无需执行压缩;当所述数据包再次通过虚通道时,多路选择器根据其标签位的指示将其输入到交叉开关中以从所述路由器中输出到片上网络中。
当片上网络将来自与远处拱顶对于的路由器的数据输入到所述路由器中时(即输入来自北向),首先数据包通过多路选择器、虚通道、交叉开关进入到另一侧的多路选择器处,该多路选择器根据所述数据包的标签位的指示判断该数据包是否已执行过压缩或是否需要执行解压缩,以确定是否需要将该数据包转入解压缩器中;对于转入所述解压缩器中的数据包,由解压缩器对其进行解压并对该数据包的标签位进行修改;在所述数据包再次通过多路选择器时,多路选择器根据其标签位将其从所述路由器中输出到深度神经网络计算单元。
图4示出了针对压缩器和解压缩器的另一种实施方式,图4(a)为在拱顶的内存控制器处(即该内存控制器与路由器之间)设置压缩器,图4(b)为在拱顶的路由器与深度神经网络计算单元之间设置解压器。可以理解,在图4所提供的实施方式中,压缩器用于对从内存中读取出的数据进行压缩并通过路由器及片上网络传输至远处拱顶,相较之下,解压缩器则是用于对由路由器接收到的来自片上网络的数据进行解压缩处理,以还原出用于深度神经网络计算单元进行计算的数据矩阵。
参考图4(a),当内存控制器从与其对应的拱顶中的内存层中读取出数据包后,通过多路选择器根据所述数据包的标签位将其中需要进行压缩的数据包传输至压缩器中进行压缩,对经过压缩的数据包的标签位进行修改,并将所获得的数据包交至路由器以传输至远处拱顶。
参考图4(b),当路由器接收到来自片上网络的数据包后,通过多路选择器根据所述数据包的标签位将其中需要进行解压缩的数据包传输至解压缩器中进行解压,对经过解压缩的数据包的标签位进行修改,并将所获得的数据包交至深度神经网络计算单元进行计算。
这里应当理解图3和图4所示出的仅为本发明的两种实施例,在本发明中,还可以根据需要将压缩器和解压器设置在如图2所示出的深度神经网络加速系统中的相应位置处。
根据本发明的一个实施例,可以将压缩器设置在片上网络的路由器内。这里可以利用路由器中当前的网络传输情况和/或数据包的稀疏度(即其中取值为“0”的数据占全部数据的比例),自适应地选择执行压缩或者不执行压缩。例如,针对网络传输的流畅度以及数据的稀疏度分别设置阈值,若当前的网络传输的流畅度超过设置的阈值并且数据的稀疏度大于设置的阈值,则对所述路由器中需要执行路由的数据包执行压缩。
根据本发明的又一个实施例,可以将压缩器设置在片上网络的网络接口处。可以在将数据内容打包为数据包时对数据进行压缩,或者在完成数据包的打包之后并且在将数据包注入片上网络的路由器之前对数据进行压缩以封装成新的数据包,在执行完压缩之后将所获得的数据包(数据内容经过压缩的数据包或者压缩后新生成的数据包)注入片上网络的路由器中等待被传输。通过此种方式,可以减少需要传输的数据包的大小或数量,从而避免增加片上网络路由器的负担。
根据本发明的又一个实施例,可以将压缩器设置在3D内存的内存控制器处。由此可以对从内存读取出来的数据直接进行压缩,例如直接对数据矩阵进行压缩,并随后将压缩后的数据内容封装为数据包进行路由。此种方式可以节省从内存控制器传输到网络接口的时间,然而这种方式很难通过制作流水线来掩盖延迟。
在本发明中,与压缩器相类似,可以将解压缩器设置在片上网络的路由器内、片上网络的网络接口处、以及深度神经网络计算单元中。优选地,根据压缩器所压缩的数据类型来确定需要将解压缩器设置在何处。例如,对于将压缩器设置在片上网络的路由器内的方案,可以将解压缩器也设置在片上网络的路由器内。
在本发明的其他实施例中还提供了针对所述压缩器和解压缩器的具体实现方式。如前文中所述,深度神经网络中所用于计算的数据有其特有的格式,其用于计算的数据通常会采用矩阵的形式以方便运算。并且,深度神经网络的数据往往具有较高的稀疏性,即所述矩阵中包括大量的取值为“0”的元素。由此,发明人认为可以根据上述规律而设置专用于深度神经网络的压缩器和解压器。
发明人通过研究发现,在通常的深度神经网络中,计算单元最主要的运算过程在于对数据的矩阵以及卷积核的矩阵进行卷积运算。图5示出了一个简化后的卷积计算过程的示例,其中数据的矩阵尺寸为5×5,卷积核的矩阵尺寸为3×3。参考图5(a),在计算时,首先需要从数据的矩阵中找出第1-3行及1-3列中的元素以作为与卷积核尺寸相当的数据子矩阵,并将所述子矩阵中的每个元素与卷积核中对应位置的元素相乘获得累加的结果(即“4”)以作为卷积结合中第1行第1列的元素;随后,参考图5(b),从数据的矩阵中找出第1-3行及2-4列中的元素以作为另一个数据子矩阵,重复上述步骤,以此类推,直至完成针对全部子矩阵的计算,并最终获得尺寸为3×3的卷积结果的矩阵。
在诸如图5所示出的深度神经网络的计算数据矩阵中,由于其本身需要采用激活函数(例如sigmod)的原因,在计算过程中会产生许多取值为“0”的数据,同时在计算过程中的剪枝操作(pruning)进一步地增加了所产生的取值为“0”的数据。这里,我们将这种多“0”的情况称作为深度神经网络中矩阵数据的“稀疏性”。关于深度神经网络中矩阵数据具备稀疏性的特点已在一些现有技术中得到了论证,例如Jorge Albericio等人于2016年发表于ISCA上的“Cnvlutin:Ineffectual-Neuron-Free Deep Neural Network Computing”,以及S Han等人于2015年发表于ICLR上的“Deep Compreesion:Compressing Deep NeuralNetworks with Pruning,Trained Quantization and Huffman Coding”。
发明人认为,若是能够通过编码的方式去除其中的“0”来进行存储和/或传输,并相应地在需要使用原始矩阵中的数据时通过解码的方式进行还原,则应当可以大幅降低数据的规模,减少内存存储的数据量和/或片上网络的负载压力。例如,可以采用诸如CSR、CSC的编解码方式,以及其他能够用于对稀疏矩阵数据进行压缩的编解码方式,从而对深度神经网络进行加速。
图6示出了CSR编码方式的原理示意图。可以看到,假使需要压缩的矩阵为如图所示出的尺寸为5×8的矩阵,那么则可以将该矩阵中非0的所有元素逐个地列入数据值中。例如,从第一行直至最后一行依照先左后右的方式排列,以获得1、5、2、4、3、6、7、8、9的数据值。并且,提取上述数据值中的每一个元素在所述矩阵中所处的列数。例如,元素1处于第1列,则将其列数确定为1,元素5处于第3列,则将其列数确定为3,以此类推,获得了1、3、3、5、1、6、3、8、4的列数值。可以看到,在所述矩阵中,每一行中从左数第一个非0的元素分别为1、2、3、7、9,这里可以获取这些元素在数据值中的位置以作为行偏移。例如,其中元素1处于数据值中的第1个位置,则将其行偏移确定为1,元素2为数据值中的第3个元素,则将其行偏移确定为3,以此类推,获得与所述矩阵尺寸对应的5个行偏移元素,分别为1、3、5、7、9。
可以看到,在尺寸为5×8的原始矩阵中,共有40个元素。而经过CSR编码后,只需23个元素即可表示出所述矩阵中的内容(9个数据值+9个列数值+5个行偏移值)。这样的编码方式尤其适合于针对稀疏的矩阵进行压缩。
基于上述CSR编码的计算过程,以及深度神经网络中将数据采用矩阵方式进行计算的规则,本发明提供了一种具体的压缩器的结构。所述压缩器可以与现有的针对深度神经网络中数据采用矩阵进行计算的方式衔接,并且同时实现采用CSR的方式对数据进行压缩。
图7示出了根据本发明的一个实施例的压缩器,包括:输入缓存11、比较器12、计数器14、开关15、左侧的输出缓存13、右侧的输出缓存16。参考图7,输入缓存11与比较器12相连,以通过比较器12将输入缓存中非0的元素存入左侧的输出缓存13中,所述比较器12根据输入缓存中为0的元素产生用于开关15的控制信号,以将控制信号指示所述开关15需要进行存储时计数器14的计数存入右侧的输出缓存16中,所述计数器在每将一个元素读入到比较器12后进行一次计数。应当理解这里的计数器14除与输入缓存11相连之外,还可以连接至比较器12,只要所述计数器14可以记录从输入缓冲11中读取的元素的个数即可。
其中,输入缓存11是多位的寄存器,用于缓存需要进行压缩的神经网络计算数据矩阵或者矩阵中的部分数据,这里输入缓存11和/或左侧的输出缓存13以及右侧的输出缓存16的长度可以根据矩阵的数据规模来确定。例如,可以针对a行b列的矩阵设置a个输入缓存11,每个输入缓存11的长度小于等于b,并且设置a个长度小于等于b的左侧的输出缓存13,以及a个长度小于等于b的右侧的输出缓存16。
以图7为例,假设其针对如图6所示出的尺寸为5×8的数据矩阵设置了5个并行的输入缓存11,每个输入缓存11分别针对数据矩阵中的每一行,每个输入缓存11对应于一个左侧的输出缓存13以及一个右侧的输出缓存16。这里可以假设各个输入缓存11读取数据的速度相同,计数器14用于计数从输入缓存11中读取的元素的数量。当计数器14的计数为1时,第1-8个输入缓存11分别读取元素1、0、3、0、0,当计数器14的计数为2时,第1-8个输入缓存11分别读取元素0、0、0、0、0,以此类推。
现在以第1个输入缓存11为例,具体地介绍对如图6所示出的5×8的数据矩阵执行所述压缩的过程。在计数器14的计数为1时,该输入缓存11读取元素1,与该输入缓存11相连的比较器12判断出该元素1不为0,并将该元素1存入与该输入缓存11对应的左侧的输出缓存13中。在计数器14的计数为2时,该输入缓存11读取元素0,与该输入缓存11相连的比较器12判断出该元素等于0,则向对应的开关15发出控制信号,使得该开关15将计数器14中的计数2写入右侧的输出缓存16。类似地,在计数器14的计数为3时,该输入缓存11读取元素5,以此类推。
在针对数据矩阵中的每一行的每一个元素执行了上述步骤后,可以将并行的各个左侧的输出缓存13中所存储的内容合起来作为该数据矩阵的数据值,将并行的各个右侧的输出缓存16中所存储的内容合起来作为该数据矩阵的列数值,并且由于可以根据缓存队列的位置来确定每个左侧的输出缓存13和每个右侧的输出缓存16分别对应于数据矩阵中的第几行,因此,针对数据矩阵中的每一行,通过比较左侧的输出缓存13中第一个非0元素在所述数据值中的位置便可确定行偏移的内容(用于执行所述比较的行偏移计算装置未在图7中示出,这里还可以增设第三类输出缓存以缓存获得的行偏移值,该第三类输出缓存的最大长度取决于数据矩阵的列数)。由此,可以利用所述压缩器对数据矩阵的内容执行CSR的压缩过程以获得针对该数据矩阵的数据值、列数值、和行偏移值。
图8示出了根据本发明的一个实施例用于对采用CSR方式压缩的数据执行解压的解压缩器,包括:用于行偏移值的输入缓存21、用于列数值的输入缓存22、用于数据值的输入缓存23、比较器24、计数器25、写入控制器26、输出缓存27。参考图8,用于行偏移值的输入缓存21向计数器25提供输入进行计数并且向比较器24提供所缓存的数据内容,计数器25根据对行偏移值的计数向用于列数值的输入缓存22和用于数据值的输入缓存23提供控制信号,使得它们逐行地将数据缓存到写入控制器26,以等待计数器25与用于行偏移值的输入缓存21通过比较器24所获得的控制信号指示输出缓存27从写入控制器26逐行地获取数据。
其中,用于行偏移值、列数值、以及数据值的输入缓存21、22、23用于对从片上网络获取的待解压数据中的行偏移值、列数值、以及数据值进行缓存以等待执行解压的过程。计数器25用于对从用于行偏移值的输入缓存21中读取的数据内容的个数进行计数,以根据所述计数向用于列数值的输入缓存22和用于数据值的输入缓存23提供控制信号,并且其还用于向比较器24提供所述计数;这里,由于每一个行偏移值对应于原始数据矩阵中的一行,因此计数器25每从用于行偏移值的输入缓存21中读取一个值,则对应于针对原始数据矩阵中的一行进行解压,在所解压的行未发生改变的情况下,由计数器25产生相应的控制信号以告知用于列数值、以及数据值的输入缓存22、23向写入控制器26中提供列数值以及数据值。写入控制器26用于暂时地存储来自用于列数值的输入缓存22和用于数据值的输入缓存23的列数值和数据值,以在输出缓存27执行读入时将所存储的列数值和数据值写入输出缓存27。比较器24用于对用于行偏移值的输入缓存21中的数据内容与计数器25中的计数进行比较,若这两者相等,则产生相应的控制信号以控制输出缓存27从写入控制器26读取数据。这里应当理解,所述计数器25中的每一个计数对应于针对所述数据矩阵中的一行进行解压缩,因此除将所述计数器25连接至所述于列数值和用于数据值的输入缓存22、23之外,还可以采用其他连接方式,只要所述输出缓存27能够根据其计数区分出所述数据矩阵中的各行即可。
与压缩器相类似地,在根据本发明的上述实施例的解压缩器中的各个缓存的长度可以根据深度神经网络中的数据矩阵的尺寸和/或卷积核的尺寸决定。例如,对于数据矩阵的尺寸为5×8,卷积核的尺寸为4×4的情况,可以将用于列数值、以及数据值的输入缓存22、23的长度均设置为40个数据长度(即最多需要缓存等于数据矩阵中元素数量的元素),将用于行偏移的输入缓存21的长度设置为5个数据长度(即数据矩阵的行数),将输出缓存27的长度设置为8个数据长度(假设每次针对解压后的一行数据进行输出)或者设置为40个数据长度(每次针对解压后的完整数据矩阵进行输出)。
以图8为例,假设解压缩器需要对如图6所示出的数据值、列数值、行偏移进行解压以还原出原始的尺寸为5×8的矩阵。在解压缩器中,按照1、3、5、7、9的顺序从用于行偏移的输入缓存21中输出行偏移值。首先,由计数器25和比较器24读取第一个行偏移值1,计数器25此时的计数为1,表示此时针对原始数据矩阵中的第1行进行解压,在计数变更为2之前,向用于列数值、以及数据值的输入缓存22、23提供执行写入的控制信号,以指示他们向写入控制器26写入“1、3”和“1、5”。与此同时,比较器24将当前的行偏移值1与计数器25的计数1进行比较,这两者大小一致,因而比较器24向输出缓存27提供执行写入的控制信号,以指示输出缓冲27根据写入控制器26中的数据值“1、5”以及列数值“1、3”以及所述矩阵的列数,将数据矩阵中第一行恢复为“1、0、5、0、0、0、0、0”,并输出所获得的解压后的第一行数据内容。随后,由计数器25和比较器24读取第二个行偏移值3,计数器25将其计数修改为2,开始针对数据矩阵中的第二行进行解压。重复地执行前述步骤,以此类推,直至完成针对原始数据矩阵中的全部五行数据的解压。
这里可以看出,由本发明中图7和图8所提供的压缩器和解压缩器尤其适合于对深度神经网络中的数据矩阵进行压缩,这是由于深度神经网络中的数据矩阵通常具备较大稀疏性,即其中取值为0的元素占了相当大的比例。可以理解,本发明所提供的压缩器和解压器不仅适用于针对将深度神经网络计算单元与3D内存相结合的方案,还适用于其它深度神经网络中的数据矩阵。
通过上述实施例可以看出,本发明提供了一种针对深度神经网络中的数据内容进行压缩和解压缩的方案,以降低需要在网络中传输和/或存储的数据量。对于在深度神经网络中采用3D内存的方案而言,提供了针对压缩器和解压缩器的具体部署方案,缓解了片上网络的负载压力,由此降低了数据传输的延迟。并且,在本发明中,还提供了专门针对深度神经网络中采用矩阵形式进行计算的数据的压缩器和解压缩器,基于神经网络的数据矩阵的稀疏性,可以自动地对数据矩阵进行压缩和解压缩。
需要说明的是,上述实施例中介绍的各个步骤并非都是必须的,本领域技术人员可以根据实际需要进行适当的取舍、替换、修改等。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。例如,在本发明中并不限制所采用的3D内存的类型,除本发明具体实施例中提出的HMC之外,还可以是高带宽内存(High Bandwidth Memory,HBM)
尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种用于深度神经网络的加速系统,包括:3D内存、与所述3D内存的拱顶的逻辑层上的内存控制器连接的深度神经网络计算单元、与所述内存控制器连接的路由器、以及压缩器和解压缩器;
其中,各个拱顶的内存控制器经由与其连接的路由器通过片上网络进行数据传输;以及
其中,所述压缩器用于对需要在片上网络中传输的用于深度神经网络的待压缩数据进行压缩,所述解压缩器用于对来自片上网络的用于深度神经网络的待解压缩数据进行解压缩。
2.根据权利要求1所述的系统,其中,所述压缩器设置在所述路由器内或所述片上网络的网络接口处或所述内存控制器处,所述解压缩器设置在所述路由器内或所述片上网络的网络接口处或所述深度神经网络计算单元中。
3.根据权利要求2所述的系统,其中所述压缩器设置在所述路由器与所述3D内存连接的输入端处,所述解压缩器设置在所述路由器与所述深度神经网络计算单元连接的输出端处。
4.根据权利要求2所述的系统,其中所述压缩器设置在所述内存控制器与所述路由器之间,所述解压缩器设置在所述路由器与所述深度神经网络计算单元之间。
5.一种用于深度神经网络的压缩器,包括:
输入缓存(11),用于缓存所述深度神经网络中待压缩的矩阵数据;
比较器(12),用于从所述输入缓存(11)中读取元素并判断所述元素是否为0;
计数器(14),用于记录从所述输入缓存(11)中读取的元素的个数;
开关(15),以所述计数器(14)的输出作为输入并且以所述比较器(12)的输出作为控制信号,用于在所述比较器(12)判断为是时提供所述计数器(14)的输出;
第一输出缓存(13),用于在所述比较器(12)判断为否时存储所述输入缓存(11)中的元素,以获得针对所述矩阵的数据值;
第二输出缓存(16),用于存储由所述开关(15)所提供的所述计数器(14)的输出,以获得针对所述矩阵的列数值。
6.根据权利要求5所述的压缩器,其中,还包括:
行偏移计算装置,用于针对数据矩阵中的每一行,计算所述第一输出缓存(13)中第一个非0元素在所述第一输出缓存(13)的全部输出中的位置,以获得针对所述矩阵的行偏移值;以及,
第三输出缓存,用于存储所述行偏移值。
7.根据权利要求6所述的压缩器,其中,所述输入缓存(11)的长度、所述第一输出缓存(13)的长度、所述第二输出缓存(16)的长度大于或等于所述矩阵的行数,所述输入缓存(11)中的各个单元并行地针对所述矩阵中的每一行进行缓存,所述输入缓存(11)中的一个单元与所述第一输出缓存(13)中的一个单元以及所述第二输出缓存(16)中的一个单元相对应;
并且,所述第三输出缓存的长度小于或等于所述矩阵的行数。
8.一种用于深度神经网络的解压缩器,包括:
第一输入缓存(23),用于缓存所述深度神经网络中待解压缩的矩阵的数据值;
第二输入缓存(22),用于缓存所述深度神经网络中待解压缩的矩阵的列数值;
第三输入缓存(21),用于缓存所述深度神经网络中待解压缩的矩阵的行偏移值;
计数器(25),用于记录从所述第三输入缓存(21)中读取的元素的个数;
比较器(24),用于比较从所述第三输入缓存(21)中读取的元素与所述计数器(25)的计数是否相等;
写入控制器(26),用于存储来自所述第一输入缓存(23)和所述第二输入缓存(22)的元素;
输出缓存(27),用于针对所述计数器(25)的每一个计数,在所述比较器(24)判断为是时,根据所述写入控制器(26)中存储的元素,确定经过解压缩的所述矩阵中的一行。
9.根据权利要求8所述的解压缩器,其中,所述第一输入缓存(23)的长度、所述第二输入缓存(22)的长度小于或等于所述矩阵中元素的总数,所述第三输入缓存(21)的长度小于或等于所述矩阵的行数。
10.根据权利要求9所述的解压缩器,其中,所述输出缓存(27)还用于针对所述计数器(25)的每一个计数,根据所述写入控制器(26)中存储的数据值的元素、对应的列数值的元素、以及所述矩阵的列数,计算经过解压缩的所述矩阵中的一行的各个元素。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710753293.4A CN107590533B (zh) | 2017-08-29 | 2017-08-29 | 一种用于深度神经网络的压缩装置 |
PCT/CN2018/083880 WO2019041833A1 (zh) | 2017-08-29 | 2018-04-20 | 一种用于深度神经网络的压缩装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710753293.4A CN107590533B (zh) | 2017-08-29 | 2017-08-29 | 一种用于深度神经网络的压缩装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590533A true CN107590533A (zh) | 2018-01-16 |
CN107590533B CN107590533B (zh) | 2020-07-31 |
Family
ID=61050227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710753293.4A Active CN107590533B (zh) | 2017-08-29 | 2017-08-29 | 一种用于深度神经网络的压缩装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107590533B (zh) |
WO (1) | WO2019041833A1 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470009A (zh) * | 2018-03-19 | 2018-08-31 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
CN108629410A (zh) * | 2018-04-28 | 2018-10-09 | 中国科学院计算技术研究所 | 基于主成分分析降维和/或升维的神经网络处理方法 |
CN108629409A (zh) * | 2018-04-28 | 2018-10-09 | 中国科学院计算技术研究所 | 一种基于主成分分析减少io开销的神经网络处理系统 |
CN108665062A (zh) * | 2018-04-28 | 2018-10-16 | 中国科学院计算技术研究所 | 一种基于小波变换减少io开销的神经网络处理系统 |
CN109104197A (zh) * | 2018-11-12 | 2018-12-28 | 合肥工业大学 | 应用于卷积神经网络的非还原稀疏数据的编译码电路及其编译码方法 |
CN109240605A (zh) * | 2018-08-17 | 2019-01-18 | 华中科技大学 | 一种基于3d堆叠内存的快速重复数据块识别方法 |
CN109298884A (zh) * | 2018-08-29 | 2019-02-01 | 北京中科睿芯科技有限公司 | 一种通用字符操作加速处理硬件装置及控制方法 |
CN109325590A (zh) * | 2018-09-14 | 2019-02-12 | 中国科学院计算技术研究所 | 用于实现计算精度可变的神经网络处理器的装置 |
WO2019041833A1 (zh) * | 2017-08-29 | 2019-03-07 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN109785905A (zh) * | 2018-12-18 | 2019-05-21 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
CN110084364A (zh) * | 2018-01-25 | 2019-08-02 | 北京深鉴智能科技有限公司 | 一种深度神经网络压缩方法和装置 |
CN110738310A (zh) * | 2019-10-08 | 2020-01-31 | 清华大学 | 一种稀疏神经网络加速器及其实现方法 |
CN110889259A (zh) * | 2019-11-06 | 2020-03-17 | 北京中科胜芯科技有限公司 | 针对排列的块对角权重矩阵的稀疏矩阵向量乘法计算单元 |
CN110943744A (zh) * | 2019-12-03 | 2020-03-31 | 杭州嘉楠耘智信息科技有限公司 | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 |
WO2020062312A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 信号处理装置和信号处理方法 |
CN110958177A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种片上网络路由优化方法、装置、设备及可读存储介质 |
CN111240743A (zh) * | 2020-01-03 | 2020-06-05 | 上海兆芯集成电路有限公司 | 人工智能集成电路 |
WO2020134550A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 数据压缩方法及相关装置 |
CN111431539A (zh) * | 2020-03-04 | 2020-07-17 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
CN113128658A (zh) * | 2019-12-31 | 2021-07-16 | Tcl集团股份有限公司 | 一种神经网络处理方法、加速器及存储介质 |
WO2021220069A3 (en) * | 2020-04-29 | 2022-02-24 | International Business Machines Corporation | Crossbar arrays for computations in memory-augmented neural networks |
CN116661707A (zh) * | 2023-07-28 | 2023-08-29 | 北京算能科技有限公司 | 数据处理方法、装置及电子设备 |
US12008475B2 (en) | 2018-11-14 | 2024-06-11 | Nvidia Corporation | Transposed sparse matrix multiply by dense matrix for neural network training |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
US20170056529A1 (en) * | 2012-02-15 | 2017-03-02 | Curevac Ag | Nucleic acid comprising or coding for a histone stem-loop and a poly(a) sequence or a polyadenylation signal for increasing the expression of an encoded therapeutic protein |
CN107092961A (zh) * | 2017-03-23 | 2017-08-25 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8847798B2 (en) * | 2012-12-17 | 2014-09-30 | Maxeler Technologies, Ltd. | Systems and methods for data compression and parallel, pipelined decompression |
CN105184362B (zh) * | 2015-08-21 | 2018-02-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN106557812A (zh) * | 2016-11-21 | 2017-04-05 | 北京大学 | 基于dct变换的深度卷积神经网络压缩与加速方案 |
CN107590533B (zh) * | 2017-08-29 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
-
2017
- 2017-08-29 CN CN201710753293.4A patent/CN107590533B/zh active Active
-
2018
- 2018-04-20 WO PCT/CN2018/083880 patent/WO2019041833A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170056529A1 (en) * | 2012-02-15 | 2017-03-02 | Curevac Ag | Nucleic acid comprising or coding for a histone stem-loop and a poly(a) sequence or a polyadenylation signal for increasing the expression of an encoded therapeutic protein |
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
CN107092961A (zh) * | 2017-03-23 | 2017-08-25 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
Non-Patent Citations (3)
Title |
---|
DUCKHWAN KIM等: "Neurocube: A Programmable Digital Neuromorphic Architecture with High-Density 3D Memory", 《2016 ACM/IEEE 43RD ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 * |
张庆君等: "《空间数据系统》", 31 August 2016, 科学普及出版社 * |
苏仕华等: "《数据结构实用教程》", 30 November 2015, 中国科学技术大学出版社 * |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019041833A1 (zh) * | 2017-08-29 | 2019-03-07 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN110084364B (zh) * | 2018-01-25 | 2021-08-27 | 赛灵思电子科技(北京)有限公司 | 一种深度神经网络压缩方法和装置 |
CN110084364A (zh) * | 2018-01-25 | 2019-08-02 | 北京深鉴智能科技有限公司 | 一种深度神经网络压缩方法和装置 |
CN108470009A (zh) * | 2018-03-19 | 2018-08-31 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
CN108470009B (zh) * | 2018-03-19 | 2020-05-29 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
CN108665062B (zh) * | 2018-04-28 | 2020-03-10 | 中国科学院计算技术研究所 | 一种基于小波变换减少io开销的神经网络处理系统 |
CN108629410A (zh) * | 2018-04-28 | 2018-10-09 | 中国科学院计算技术研究所 | 基于主成分分析降维和/或升维的神经网络处理方法 |
CN108629409A (zh) * | 2018-04-28 | 2018-10-09 | 中国科学院计算技术研究所 | 一种基于主成分分析减少io开销的神经网络处理系统 |
CN108665062A (zh) * | 2018-04-28 | 2018-10-16 | 中国科学院计算技术研究所 | 一种基于小波变换减少io开销的神经网络处理系统 |
CN108629410B (zh) * | 2018-04-28 | 2021-01-22 | 中国科学院计算技术研究所 | 基于主成分分析降维和/或升维的神经网络处理方法 |
CN108629409B (zh) * | 2018-04-28 | 2020-04-10 | 中国科学院计算技术研究所 | 一种基于主成分分析减少io开销的神经网络处理系统 |
CN109240605A (zh) * | 2018-08-17 | 2019-01-18 | 华中科技大学 | 一种基于3d堆叠内存的快速重复数据块识别方法 |
CN109298884A (zh) * | 2018-08-29 | 2019-02-01 | 北京中科睿芯科技有限公司 | 一种通用字符操作加速处理硬件装置及控制方法 |
CN109298884B (zh) * | 2018-08-29 | 2021-05-25 | 北京中科睿芯科技集团有限公司 | 一种通用字符操作加速处理硬件装置及控制方法 |
CN109325590A (zh) * | 2018-09-14 | 2019-02-12 | 中国科学院计算技术研究所 | 用于实现计算精度可变的神经网络处理器的装置 |
CN109325590B (zh) * | 2018-09-14 | 2020-11-03 | 中国科学院计算技术研究所 | 用于实现计算精度可变的神经网络处理器的装置 |
WO2020062312A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 信号处理装置和信号处理方法 |
CN109104197B (zh) * | 2018-11-12 | 2022-02-11 | 合肥工业大学 | 应用于卷积神经网络的非还原稀疏数据的编译码电路及其编译码方法 |
CN109104197A (zh) * | 2018-11-12 | 2018-12-28 | 合肥工业大学 | 应用于卷积神经网络的非还原稀疏数据的编译码电路及其编译码方法 |
US12008475B2 (en) | 2018-11-14 | 2024-06-11 | Nvidia Corporation | Transposed sparse matrix multiply by dense matrix for neural network training |
CN109785905A (zh) * | 2018-12-18 | 2019-05-21 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
CN109785905B (zh) * | 2018-12-18 | 2021-07-23 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
WO2020134550A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 数据压缩方法及相关装置 |
CN110738310A (zh) * | 2019-10-08 | 2020-01-31 | 清华大学 | 一种稀疏神经网络加速器及其实现方法 |
CN110738310B (zh) * | 2019-10-08 | 2022-02-01 | 清华大学 | 一种稀疏神经网络加速器及其实现方法 |
CN110889259A (zh) * | 2019-11-06 | 2020-03-17 | 北京中科胜芯科技有限公司 | 针对排列的块对角权重矩阵的稀疏矩阵向量乘法计算单元 |
CN110889259B (zh) * | 2019-11-06 | 2021-07-09 | 北京中科胜芯科技有限公司 | 针对排列的块对角权重矩阵的稀疏矩阵向量乘法计算单元 |
CN110958177B (zh) * | 2019-11-07 | 2022-02-18 | 浪潮电子信息产业股份有限公司 | 一种片上网络路由优化方法、装置、设备及可读存储介质 |
CN110958177A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种片上网络路由优化方法、装置、设备及可读存储介质 |
WO2021109696A1 (zh) * | 2019-12-03 | 2021-06-10 | 嘉楠明芯(北京)科技有限公司 | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 |
CN110943744A (zh) * | 2019-12-03 | 2020-03-31 | 杭州嘉楠耘智信息科技有限公司 | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 |
CN113128658A (zh) * | 2019-12-31 | 2021-07-16 | Tcl集团股份有限公司 | 一种神经网络处理方法、加速器及存储介质 |
CN111240743B (zh) * | 2020-01-03 | 2022-06-03 | 格兰菲智能科技有限公司 | 人工智能集成电路 |
CN111240743A (zh) * | 2020-01-03 | 2020-06-05 | 上海兆芯集成电路有限公司 | 人工智能集成电路 |
CN111431539A (zh) * | 2020-03-04 | 2020-07-17 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
CN111431539B (zh) * | 2020-03-04 | 2023-12-08 | 嘉楠明芯(北京)科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
WO2021220069A3 (en) * | 2020-04-29 | 2022-02-24 | International Business Machines Corporation | Crossbar arrays for computations in memory-augmented neural networks |
GB2609881A (en) * | 2020-04-29 | 2023-02-15 | Ibm | Crossbar arrays for computations in memory-augmented neural networks |
US11604976B2 (en) | 2020-04-29 | 2023-03-14 | International Business Machines Corporation | Crossbar arrays for computations in memory-augmented neural networks |
CN116661707A (zh) * | 2023-07-28 | 2023-08-29 | 北京算能科技有限公司 | 数据处理方法、装置及电子设备 |
CN116661707B (zh) * | 2023-07-28 | 2023-10-31 | 北京算能科技有限公司 | 数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2019041833A1 (zh) | 2019-03-07 |
CN107590533B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590533A (zh) | 一种用于深度神经网络的压缩装置 | |
CN106447034B (zh) | 一种基于数据压缩的神经网络处理器、设计方法、芯片 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN110059811A (zh) | 权重缓冲器 | |
US20180157969A1 (en) | Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network | |
CN110383267A (zh) | 矩阵传输加速器系统和方法 | |
CN107689948A (zh) | 应用于神经网络硬件加速系统的高效数据访存管理装置 | |
EP3754563A1 (en) | Technologies for performing in-memory training data augmentation for artificial intelligence | |
CN107256424B (zh) | 三值权重卷积网络处理系统及方法 | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
CN107092961B (zh) | 一种基于模式频率统计编码的神经网络处理器及设计方法 | |
US20190235780A1 (en) | Computational processor-in-memory with enhanced strided memory access | |
US11791838B2 (en) | Near-storage acceleration of dictionary decoding | |
CN110929854B (zh) | 一种数据处理方法、装置及硬件加速器 | |
CN110943744A (zh) | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 | |
US20210224191A1 (en) | Compression and decompression module in a cache controller for reducing off-chip data traffic | |
CN105874774B (zh) | 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法 | |
CN114970810B (zh) | 适用于稀疏神经网络计算阵列的数据处理方法和加速器 | |
CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及系统 | |
CN109635937B (zh) | 一种面向低位宽卷积神经网络的低功耗系统 | |
CN112290953A (zh) | 多道数据流的阵列编码装置和方法、阵列解码装置和方法 | |
US11886719B2 (en) | Memory circuit for storing parsimonious data | |
CN113392963B (zh) | 基于fpga的cnn硬件加速系统设计方法 | |
CN115600647A (zh) | 一种面向稀疏神经网络加速的bit级计算的模型架构系统 | |
CN112308762B (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 |