CN111626399B - 卷积神经网络计算装置、数据计算方法 - Google Patents
卷积神经网络计算装置、数据计算方法 Download PDFInfo
- Publication number
- CN111626399B CN111626399B CN201910149064.0A CN201910149064A CN111626399B CN 111626399 B CN111626399 B CN 111626399B CN 201910149064 A CN201910149064 A CN 201910149064A CN 111626399 B CN111626399 B CN 111626399B
- Authority
- CN
- China
- Prior art keywords
- convolution
- module
- local storage
- input
- storage area
- 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.)
- Active
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
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
Abstract
一种卷积神经网络计算装置,应用于计算机技术领域,包括:分布式局部存储模块,卷积计算模块,有效信号控制模块,地址管理模块以及缓冲输出模块,分布式局部存储模块,用于存储输入激活值和权重值,卷积计算模块,用于对输入激活值和权重值进行卷积运算,得到中间结果,有效信号控制模块,用于控制卷积计算模块进行卷积运算,地址管理模块,用于对分布式局部存储模块进行读写管理,缓冲输出模块,用于处理中间结果,得到最终结果,并输出最终结果。本发明还公开了一种数据计算方法,增强卷积网络的计算效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种卷积神经网络计算装置、数据 计算方法。
背景技术
在大数据时代,深度学习是从海量数据中获取信息的有效手段。作为深度 学习的一种典型算法,卷积神经网络(Convolutional Neural Network,CNN) 可以在复杂环境下提取高维特征信息,利用这些高维特征实现图像分类、目标 检测等任务。这一技术被广泛用于自动驾驶、安防系统、机器人等领域。
随着任务准确度要求的不断提高,网络逐渐深化,算法面临计算密集和数 据密集两大挑战。采用集成电路技术设计硬件加速器可以低功耗、高并行度实 现这类复杂计算。然而,目前多数卷积神经网络加速器存在总线数据频繁访问 的问题,一方面数据通信时间长严重影响了计算速度,另一方面全局缓存的频 繁访问造成了功耗浪费。
发明内容
本发明的主要目的在于提供一种卷积神经网络计算装置和数据计算方法, 增强卷积网络的计算效率。
为实现上述目的,本发明实施例第一方面提供一种卷积神经网络计算装置, 包括:
分布式局部存储模块,卷积计算模块,有效信号控制模块,地址管理模块 以及缓冲输出模块;
所述分布式局部存储模块,用于存储输入激活值和权重值;
所述卷积计算模块,用于对所述输入激活值和权重值进行卷积运算,得到 中间结果;
所述有效信号控制模块,用于控制所述卷积计算模块进行卷积运算;
所述地址管理模块,用于对所述分布式局部存储模块进行读写管理;
所述缓冲输出模块,用于处理所述中间结果,得到最终结果,并输出所述 最终结果。
进一步地,所述卷积计算模块包括:多个乘累加器和可配置加法树,所述 可配置加法树连接所述多个乘累加器;
所述可配置加法树内除叶子节点外的节点通过参数配置可进行拆分,当加 法节点不拆分时,所述加法节点处加法的两个输入数据相加后输出到所述可配 置加法树的下一级;当加法节点拆分时,拆分处的两个输入数据依次串行输出 到所述可配置加法树的下一级。
进一步地,所述有效信号控制模块具体根据所述地址管理模块产生的读数 据使能信号生成所述乘累加器的使能信号和所述可配置加法树的使能信号,并 根据预置的乘累加深度参数控制乘累加器的累加乘积个数。
进一步地,所述分布式局部存储模块包括:
输入激活局部存储区和权重局部存储区;
所述输入激活局部存储区,用于存储所述输入激活值;
所述权重局部存储区,用于存储所述权重值。
进一步地,所述输入激活局部存储区和权重局部存储区内的存储器采用分 布式组织结构,所述存储器的读数据接口与所述卷积计算模块的输入数据接口 并排一一对应直连。
进一步地,所述缓冲输出模块包括:输出缓冲器和中间结果累加模块;
所述输出缓冲器,用于读取所述中间结果;
所述中间结果累加模块,用于累加中间结果,包括两个数据输入端和一个 数据输出端,一所述数据输入端连接所述输出缓冲器,另一所述数据输入端连 接上一卷积神经网络计算装置的结果输出端或中间结果存储器。
进一步地,所述地址管理模块包括:输入激活局部存储区的写地址控制模 块、输入激活值局部存储区和权重局部存储区的读地址协同控制模块;
所述输入激活局部存储区的写地址控制模块,用于为所述卷积计算模块中 的卷积计算在参数控制下产生不同的地址编码格式,以及,控制来自全局缓存 的输入激活值放置在各所述输入激活局部存储区中;
所述输入激活局部存储区和权重局部存储区的读地址协同控制模块,用于 控制读取所述输入激活值和权重值。
进一步地,所述输入激活局部存储区和权重局部存储区的读地址协同控制 模块包括所述输入激活局部存储区与全局总线数据通信建立的自适应传输机 制,用于控制在预置时间读取所述输入激活值和权重值。
本发明实施例第二方面提供一种数据计算方法,包括:
S1,读取输入激活局部存储区内第1个卷积窗口的输入激活值和权重局部 存储区内第1个输出通道的权重值,并根据所述第1个卷积窗口的输入激活值 和所述第1个输出通道的权重值,完成所述第1个输出通道的所述第1个卷积 窗口的卷积计算;
S2,读取所述第1个卷积窗口的输入激活值和所述权重局部存储区内第2 输出通道的权重值,并根据所述第1个卷积窗口的输入激活值和所述第2个输 出通道的权重值,完成所述第2个输出通道的所述第1个卷积窗口的卷积计算;
S3,重复S2,依次完成所述第1个卷积窗口的m个输出通道的卷积计算;
S4,读取所述输入激活值局部存储区内第2个卷积窗口的输入激活值和所 述权重局部存储区内第1个输出通道的权重值,完成所述第2个卷积窗口的卷 积计算,并更新所述输入激活值局部存储区内的输入激活值;
进一步地,当所述卷积为3×3卷积,乘累加器采用按窗口计算模式,每个 所述乘累加器每次计算一个卷积窗口;
当所述卷积为1×1卷积,乘累加器采用通道累加模式,每个所述乘累加器 一次性累加多个输入通道;
当所述卷积为7×7卷积,乘累加器采用按行计算模式,每个所述乘累加器 每次累加一行卷积窗口,每7个所述乘累加器完成7行卷积窗口计算。
从上述本发明实施例可知,本发明提供的卷积神经网络计算装置和数据计 算方法,包括:分布式局部存储模块,卷积计算模块,有效信号控制模块,地 址管理模块以及缓冲输出模块,分布式局部存储模块,用于存储输入激活值和 权重值,卷积计算模块,用于对输入激活值和权重值进行卷积运算,得到中间 结果,有效信号控制模块,用于控制卷积计算模块进行卷积运算,地址管理模块,用于对分布式局部存储模块进行读写管理,缓冲输出模块,用于处理中间 结果,得到最终结果,并输出最终结果,增强卷积网络的计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创 造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的卷积神经网络计算装置的结构示意图;
图2为本发明一实施例提供的卷积神经网络计算装置中地址管理模块的结 构示意图;
图3为本发明一实施例提供的输入激活局部存储区与全局总线的自适应通 信机制的结构示意图;
图4为本发明另一实施例提供的数据计算方法的流程示意图;
图5为本发明另一实施例提供的权值的读地址偏移编码置换方式的示意图;
图6为本发明另一实施例提供的实现3x3卷积的输入激活局部存储区数据 刷新示意图;
图7为根据本发明另一实施例的实现1x1卷积的输入激活局部存储区数据 刷新示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结 合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基 于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的 所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明一实施例提供的卷积神经网络计算装置的结构 示意图,该装置包括:
分布式局部存储模块101,卷积计算模块102,有效信号控制模块103,地 址管理模块104以及缓冲输出模块105;
分布式局部存储模块101,用于存储输入激活值和权重值;
卷积计算模块102,用于对输入激活值和权重值进行卷积运算,得到中间 结果;
有效信号控制模块103,用于控制卷积计算模块102进行卷积运算;
地址管理模块104,用于对分布式局部存储模块101进行读写管理;
缓冲输出模块105,用于处理中间结果,得到最终结果,并输出最终结果。
进一步地,分布式局部存储模块101包括:输入激活局部存储区1011和权 重局部存储区1012。输入激活局部存储区1011,用于存储输入激活值;权重局 部存储区1012,用于存储权重值。
其中,输入激活值来自于该卷积神经网络计算装置外的全局缓存区,包含 了若干输入通道的输入激活值块。
权重值来自于该卷积神经网络计算装置外的片下存储区,包含了若干输出 组的输入通道的所有权重值。
进一步地,存储输入激活值和权重值的这些存储区内的存储器采用分布式 组织结构,其读数据的接口与卷积计算模块的输入数据接口并排一一对应直连。
卷积计算模块102包括:多个乘累加器1021和可配置加法树1022,可配 置加法树1022连接多个乘累加器1021;
乘累加器1021能够累加的乘积个数由该装置可编程控制,为该装置能够兼 容不同窗口大小的卷积计算提供灵活的硬件基础,具体参见下述对于有效信号 控制模块的描述。其中,乘累加器1021的数量可根据实际需要进行调整,在本发明实施例中,乘累加器的数量以8个为例,在图1中,乘累加器1021用MAC 表示。
可配置加法树1022内除叶子节点外的节点通过参数配置可进行拆分,当加 法节点不拆分时,加法节点处加法的两个输入数据相加后输出到所述可配置加 法树1022的下一级;当加法节点拆分时,拆分处的两个输入数据依次串行输出到所述可配置加法树1022的下一级。
其中,可配置加法树1022的拆分需要保证在拆分处数据并行量低于乘累加 周期数,从而避免数据堵塞。可配置加法树1022的可配置性使得卷积计算模块102能够并行的乘加数量可灵活配置,有利于通道数较多的深度卷积神经网络 的计算。当累加的输入通道数较多时,可配置加法树1022可配置成一个大加法 树,将所有乘累加器1021集中用于计算一个输出通道的加速运算,当累加的输 入通道数较少,而并行输出的通道数较多时,可以将可配置加法树1022拆分成 若干个小加法树,不同的树计算不同输出通道的卷积计算,这样卷积计算模块 102能够同时并行多个输出通道的卷积加速运算,因此,提升乘累加器1021的计算能力。
有效信号控制模块103具体根据地址管理模块104产生的读数据使能信号 生成乘累加器1021的使能信号和可配置加法树1022的使能信号,并根据预置 的乘累加深度参数控制乘累加器1021的累加乘积个数。该有效信号控制模块 103统一控制着所有卷积计算模块内的乘累加计算,既节省了逻辑资源又简化 了控制电路。
请参阅图2,地址管理模块104包括:输入激活局部存储区的写地址控制 模块1041、输入激活值局部存储区和权重局部存储区的读地址协同控制模块 1042。
输入激活局部存储区的写地址控制模块1041,用于为卷积计算模块102中 的卷积计算在参数控制下产生不同的地址编码格式,以及,控制来自全局缓存 的输入激活值放置在各输入激活局部存储区1011中。全局总线发送数据到各输 入激活局部存储区,输入激活局部存储区根据数据有效信号判断数据是否能为 其所接收。当确认数据可接收时,该输入激活局部存储区的写地址控制模块 1041产生写使能信号,并根据设定的卷积形式生成局部存储地址编码,从而完 成数据存储。此处没有权重局部存储区,所有卷积神经网络计算装置的权重局 部存储区统一由全局控制管理。
输入激活局部存储区和权重局部存储区的读地址协同控制模块1042,用于 控制读取输入激活值和权重值,以实现卷积计算。该读地址协同控制模块1042 一方面包含了输入激活局部存储区与全局总线的自适应通信机制200,控制在 预置时间读取输入激活局部存储区1011内的输入激活值和权重,另一方面在卷 积核尺寸、跨步参数及乘累加深度等参数配置下控制生成读地址编码,完成卷 积计算,使得卷积神经网络计算装置在应用于不同的系统结构时移植更加灵活。
其中,输入激活局部存储区与全局总线的自适应通信机制200,如图3所 示。卷积神经网络计算装置采用总线数据传输与卷积神经网络计算装置运算时 间交叠的方式来减少数据通信对计算速度的影响。具体地,全局输入激活读控 制201与输入激活局部存储区读控制202各有一个任务计数器,任务计数器203 统计总线发送的输入激活列数据量,任务计数器204统计输入激活局部存储区 1011内接收的输入激活列数据量。总线每次向输入激活局部存储区1011发送 一组输入激活列数据后,产生一个Task_rx脉冲信号,任务计数器203减1; 同时,输入激活局部存储区读控制202收到该脉冲信号后,任务计数器204加 1,表示一组列数据通信任务完成。输入激活局部存储区1011使用完一组列数 据后,产生一个Task_tx脉冲信号,任务计数器204减跨步数s;同时,总线 在接收到该脉冲信号后,任务计数器203加s,表示有一组新的数据传输任务 订单需要完成。
缓冲输出模块105,用于计算结果的输出管理,包括输出缓冲器1051和中 间结果累加模块1052。卷积计算中窗口数据累加,多个时钟产生一个输出结果, 累加深度不同输出的吞吐率不同;而加法树拆开时,一个加法节点处的数据流 通量将增加。输出缓冲器1051一方面可用于平衡这些数据流通产生的不稳定,避免计算结果堵塞及空读;另一方面,可便于对接中间结果读取,及与上一个 卷积神经网络计算装置交接。
中间结果累加模块1052用于累加中间结果,包括两个数据输入端和一个数 据输出端,一数据输入端连接输出缓冲器,另一个数据输入端可选择连接上一 卷积神经网络计算装置的结果输出端或者中间结果存储器。该中间结果累加模 块用于一个卷积神经网络计算装置无法完成所有卷积累加的情况。当另一个数据输入端选择连接上一卷积神经网络计算装置的结果输出端时,该卷积神经网 络计算装置与上一个卷积神经网络计算装置构成菊花链,共同完成一个输出通 道的累加计算,增加了结构的加速能力。当另一个数据输入端选择连接中间结 果存储器时,该卷积神经网络计算装置分多轮完成一个输出通道的累加计算。 该中间结果累加模块的结构为卷积神经网络计算装置在空间和时间上提供了可扩展能力,使得卷积神经网络计算装置在提高加速性能方面具有了灵活性。
在本发明实施例中,卷积神经网络计算装置包括:分布式局部存储模块, 卷积计算模块,有效信号控制模块,地址管理模块以及缓冲输出模块,分布式 局部存储模块,用于存储输入激活值和权重值,卷积计算模块,用于对输入激 活值和权重值进行卷积运算,得到中间结果,有效信号控制模块,用于控制卷 积计算模块进行卷积运算,地址管理模块,用于对分布式局部存储模块进行读写管理,缓冲输出模块,用于处理中间结果,得到最终结果,并输出最终结果, 增强卷积网络的计算效率。
请参阅图4,图4为本发明第另一实施例提供的数据计算方法的流程示意 图,该方法应用于如上述图l至图3所述的卷积神经网络计算装置,该方法主 要包括以下步骤:
S1,读取输入激活局部存储区内第1个卷积窗口的输入激活值和权重局部 存储区内第1个输出通道的权重值,并根据第1个卷积窗口的输入激活值和第 1个输出通道的权重值,完成第1个输出通道的第1个卷积窗口的卷积计算;
S2,读取第1个卷积窗口的输入激活值和权重局部存储区内第2个输出通 道的权重值,并根据第1个卷积窗口的输入激活值和第2个输出通道的权重值, 完成第2个输出通道的第1个卷积窗口的卷积计算;
S3,重复S2,依次完成第1个卷积窗口的m个输出通道的卷积计算;
S4,读取输入激活值局部存储区内第2个卷积窗口的输入激活值和权重局 部存储区内第1个输出通道的权重值,完成第2个卷积窗口的卷积计算,并更 新输入激活值局部存储区内的输入激活值;
S5,重复S2至S4,完成q行m个输出通道的p个卷积窗口的卷积计算。
其中,当所有输入通道没有累加完时,输入激活局部存储区和权重局部存 储区存储下一批输入通道的输入激活值及权重值,然后回到S1进行第二轮卷积 计算。
其中,各乘累加器完成不同输入通道卷积的卷积计算。
为针对不同卷积尺寸有高效的计算方法,在本发明实施例中,对以下尺寸 的卷积进行具体说明。
对于3×3卷积,乘累加器采用按窗口计算模式,每个乘累加器每次计算一 个卷积窗口。在输入激活值按行更新的过程中,当卷积窗口跨步为1时,原第 3*h+1行的数据将被放在第3*h-2行的位置。在顺次读取输入激活值局部存储 区的三行数据时,实际输入激活值的读顺序为第3*h+1行,第3*h-1行和第3*h 行,因此,权值数据因分别对应窗口的第3行,第1行和第2行。当卷积跨步 为2时,更新两行数据,实际输入激活值的读顺序为第3*h+2行,第3*h+1行 和第3*h行,因此,权值数据因分别对应窗口的第3行,第2行和第1行。由 此,权值数据的读地址产生2种偏移编码置换方式,如图5所示。
对于1×1卷积,不存在卷积窗口重叠产生的数据复用,但是需要大量的通 道累加计算。为对减少中间结果的存储访问,提高卷积神经网络计算装置的效 率,乘累加器采用通道累加模式,每个乘累加器一次性累加多个输入通道。
对于7×7卷积,卷积核较大,为提高输入激活局部存储区的存储利用率, 乘累加器采用按行计算模式,每个乘累加器每次累加一行卷积窗口,每7个乘 累加器完成7行卷积窗口计算。
以下对上述3×3卷积、1×1卷积和7×7卷积的实验结果进行说明。
以卷积计算模块102上实施64个乘累加器,存储器深度64,输入激活值 为16bits定点数,权重为8bits定点数为例。当在Xilinx VC707实验板卡 上综合实现时,卷积神经网络计算装置的资源利用情况为:查找表(LUT)7998 个,寄存器4291个,存储块RAM 13个。其中,定点乘法器和加法器均采用逻 辑查找表实现,未使用DSP。采用Synoposys综合工具分析,时钟频率可达1GHz, 此时卷积神经网络计算装置的理论计算峰值可达64GMACs。
对跨步为1的3x3卷积的验证结果,每个输入激活局部存储区存储3行21 列数据,实现3x3卷积的输入激活局部存储区数据刷新的示意图,如图6所示。 当每个权重局部存储区存储7个输出组的权重时,乘累加器的累加深度为9, 输入激活值在7个输出组权重上复用,并且输入激活值和权值可实现窗口重叠 部分数据复用。当权重固定不变,不断更新输入激活局部存储区内的数据时, 权重能够在输入激活值上实现最大化复用。从并行角度分析,当有一棵加法树 时,输入激活局部存储器存储可并行64个输入通道的卷积计算,卷积计算阵列 具有最大的累加能力,一次性能够累加64个输入通道的卷积结果。当拆分成两棵加法树时,输入激活局部存储器存储可并行两个输出组的卷积运算,每个输 出组累加32个输入通道的卷积结果。由此可见,该卷积神经网络计算装置的局 部存储区数据复用性较高。
对1x1卷积的验证结果,每个输入激活局部存储器存储4个输入通道1行 16列数据,实现1x1卷积的输入激活局部存储区数据刷新示意图,如图7所示; 当权重局部存储区存储16个输出组的4个输入通道的权重时,乘累加器累加深 度为4,输入激活值可复用16次。从并行角度分析,当有一棵加法树时,一次 性能够累加256个输入通道的卷积结果。随着输入激活存储区内的数据不断刷 新,权重值能够在在输入激活值上最大化复用。
对跨步为2的7x7卷积的验证结果,每个输入激活局部存储器存储1个输 入通道1行63列数据,权重局部存储区存储9个输出组的7个输入通道的权重 时,乘累加器累加深度为7,输入激活值不仅可以在9个输出组卷积计算上实 现复用,还可以在卷积窗口行重叠部分实现复用。权重亦可以在所有输入激活 值上实现复用。
在本申请所提供的多个实施例中,应该理解到,所揭露的装置和方法,可 以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如, 所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方 式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通 信链接可以是通过一些接口,模块的间接耦合或通信链接,可以是电性,机械 或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为 模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者 也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部 模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中, 也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的 动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。 其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施 例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详 述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的卷积神经网络计算装置、数据计算方法的描述, 对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应 用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种卷积神经网络计算装置,其特征在于,包括:
分布式局部存储模块,卷积计算模块,有效信号控制模块,地址管理模块以及缓冲输出模块;
所述分布式局部存储模块,用于存储输入激活值和权重值;
所述卷积计算模块,用于对所述输入激活值和权重值进行卷积运算,得到中间结果;
所述有效信号控制模块,用于控制所述卷积计算模块进行卷积运算;
所述地址管理模块,用于对所述分布式局部存储模块进行读写管理;
所述缓冲输出模块,用于处理所述中间结果,得到最终结果,并输出所述最终结果;
其中,所述分布式局部存储模块包括:
输入激活局部存储区和权重局部存储区;
所述输入激活局部存储区,用于存储所述输入激活值;
所述权重局部存储区,用于存储所述权重值;
所述输入激活局部存储区和权重局部存储区内的存储器采用分布式组织结构,所述存储器的读数据接口与所述卷积计算模块的输入数据接口并排一一对应直连;
所述卷积计算模块包括:多个乘累加器和可配置加法树,所述可配置加法树连接所述多个乘累加器;
所述有效信号控制模块具体根据所述地址管理模块产生的读数据使能信号生成所述乘累加器的使能信号和所述可配置加法树的使能信号,并根据预置的乘累加深度参数控制乘累加器的累加乘积个数;
所述地址管理模块包括:输入激活局部存储区的写地址控制模块、输入激活值局部存储区和权重局部存储区的读地址协同控制模块;
所述输入激活局部存储区的写地址控制模块,用于为所述卷积计算模块中的卷积计算在参数控制下产生不同的地址编码格式,以及,控制来自全局缓存的输入激活值放置在各所述输入激活局部存储区中;
所述输入激活局部存储区和权重局部存储区的读地址协同控制模块,用于控制读取所述输入激活值和权重值;
所述缓冲输出模块包括:输出缓冲器和中间结果累加模块;
所述输出缓冲器,用于读取所述中间结果;
所述中间结果累加模块,用于累加中间结果,包括两个数据输入端和一个数据输出端,一所述数据输入端连接所述输出缓冲器,另一所述数据输入端连接上一卷积神经网络计算装置的结果输出端或中间结果存储器。
2.根据权利要求1所述的卷积神经网络计算装置,其特征在于,所述可配置加法树内除叶子节点外的节点通过参数配置可进行拆分,当加法节点不拆分时,所述加法节点处加法的两个输入数据相加后输出到所述可配置加法树的下一级;当加法节点拆分时,拆分处的两个输入数据依次串行输出到所述可配置加法树的下一级。
3.根据权利要求1所述的卷积神经网络计算装置,其特征在于,所述输入激活局部存储区和权重局部存储区的读地址协同控制模块包括所述输入激活局部存储区与全局总线数据通信建立的自适应传输机制,用于控制在预置时间读取所述输入激活值和权重值。
4.一种数据计算方法,应用于如权利要求1至3任意一项所述的卷积神经网络计算装置,其特征在于,包括:
S1,读取输入激活局部存储区内第1个卷积窗口的输入激活值和权重局部存储区内第1个输出通道的权重值,并根据所述第1个卷积窗口的输入激活值和所述第1个输出通道的权重值,完成所述第1个输出通道的所述第1个卷积窗口的卷积计算;
S2,读取所述第1个卷积窗口的输入激活值和所述权重局部存储区内第2个输出通道的权重值,并根据所述第1个卷积窗口的输入激活值和所述第2个输出通道的权重值,完成所述第2个输出通道的所述第1个卷积窗口的卷积计算;
S3,重复S2,依次完成所述第1个卷积窗口的m个输出通道的卷积计算;
S4,读取所述输入激活值局部存储区内第2个卷积窗口的输入激活值和所述权重局部存储区内第1个输出通道的权重值,完成所述第2个卷积窗口的卷积计算,并更新所述输入激活值局部存储区内的输入激活值;
S5,重复S2至S4,完成q行m个输出通道的p个卷积窗口的卷积计算。
5.根据权利要求4所述的数据计算方法,其特征在于,当所述卷积为3×3卷积,乘累加器采用按窗口计算模式,每个所述乘累加器每次计算一个卷积窗口;
当所述卷积为1×1卷积,乘累加器采用通道累加模式,每个所述乘累加器一次性累加多个输入通道;
当所述卷积为7×7卷积,乘累加器采用按行计算模式,每个所述乘累加器每次累加一行卷积窗口,每7个所述乘累加器完成7行卷积窗口计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910149064.0A CN111626399B (zh) | 2019-02-27 | 2019-02-27 | 卷积神经网络计算装置、数据计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910149064.0A CN111626399B (zh) | 2019-02-27 | 2019-02-27 | 卷积神经网络计算装置、数据计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111626399A CN111626399A (zh) | 2020-09-04 |
CN111626399B true CN111626399B (zh) | 2023-07-28 |
Family
ID=72272413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910149064.0A Active CN111626399B (zh) | 2019-02-27 | 2019-02-27 | 卷积神经网络计算装置、数据计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111626399B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112419142B (zh) * | 2020-11-25 | 2023-10-24 | 中科融合感知智能研究院(苏州工业园区)有限公司 | 一种提升dcnn计算阵列效率的系统及方法 |
CN112632459B (zh) * | 2020-12-22 | 2023-07-07 | 无锡江南计算技术研究所 | 深度卷积的在线计算部件 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681628A (zh) * | 2016-01-05 | 2016-06-15 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11775313B2 (en) * | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
-
2019
- 2019-02-27 CN CN201910149064.0A patent/CN111626399B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681628A (zh) * | 2016-01-05 | 2016-06-15 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN107329734A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Non-Patent Citations (1)
Title |
---|
利用参数稀疏性的卷积神经网络计算优化及其FPGA加速器设计;刘勤让 等;《电子与信息学报》;第40卷(第6期);第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111626399A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11262982B2 (en) | Computation circuit including a plurality of processing elements coupled to a common accumulator, a computation device and a system including the same | |
US20210357736A1 (en) | Deep neural network hardware accelerator based on power exponential quantization | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN107633298B (zh) | 一种基于模型压缩的递归神经网络加速器的硬件架构 | |
CN109284824B (zh) | 一种基于可重构技术的用于加速卷积和池化运算的装置 | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN111626399B (zh) | 卷积神经网络计算装置、数据计算方法 | |
CN115552523A (zh) | 使用存储器内处理的基于计数器的乘法 | |
CN108710943B (zh) | 一种多层前馈神经网络并行加速器 | |
CN111382860A (zh) | 一种lstm网络的压缩加速方法及fpga加速器 | |
CN113516236A (zh) | 基于zynq平台的vgg16网络并行加速处理方法 | |
US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
CN114600126A (zh) | 一种卷积运算电路和卷积运算方法 | |
CN114005458A (zh) | 基于流水线架构的语音降噪方法、系统及存储介质 | |
Sawaguchi et al. | Slightly-slacked dropout for improving neural network learning on FPGA | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111381882B (zh) | 数据处理装置及相关产品 | |
CN114254740B (zh) | 卷积神经网络加速计算方法、计算系统、芯片及接收机 | |
CN111126580B (zh) | 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 | |
RU2294561C2 (ru) | Устройство аппаратной реализации вероятностных генетических алгоритмов | |
Huang et al. | A low-bit quantized and hls-based neural network fpga accelerator for object detection | |
CN112836793A (zh) | 浮点可分离卷积计算加速装置、系统以及图像处理方法 | |
CN118363923B (zh) | 一种基于算子复用的低成本矩阵运算fpga实现方法 | |
CN111061675A (zh) | 一种系统传递函数辨识算法的硬件实现方法及运行该方法的计算机设备与可读存储介质 | |
CN116402106B (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 |