[发明专利]用于执行人工神经网络正向运算的装置和方法在审
申请号: | 202010150326.8 | 申请日: | 2016-01-20 |
公开(公告)号: | CN111340200A | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/06 | 分类号: | G06N3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 人工 神经网络 正向 运算 装置 方法 | ||
本申请涉及一种用于执行人工神经网络正向运算的装置,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块,使用该装置可以实现多层人工神经网络的正向运算。对于每一层来说,首先对输入神经元数据进行加权求和计算出本层的中间结果向量,再对该中间结果向量加偏置并激活得到输出神经元数据,并将该输出神经元数据作为下一层的输入神经元数据。
本申请是针对申请号为:201610037645.1(发明创造名称:用于执行人工神经网络正向运算的装置和方法,申请日:2016年1月20日)提出的分案申请。
技术领域
本申请涉及人工神经网络技术领域,特别是涉及一种用于执行人工神经网络正向运算的装置和方法。
背景技术
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。
一种支持多层人工神经网络正向运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络正向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。
另一种支持多层人工神经网络反向训练的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈。另外,GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
发明内容
本发明的一个方面提供了一种用于执行人工神经网络正向运算的装置,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块;所述控制器单元,用于读取指令,并对所述指令进行译码,得到微指令,所述微指令用于对所述主运算模块、所述数据通路模块或所述从运算模块的行为进行控制;所述主运算模块,用于将输入神经元数据传输至所述数据通路模块;所述数据通路模块,用于将所述输入神经元数据传输至所述从运算模块,以及将所述从运算模块得到的输出神经元数据拼成中间结果向量;所述主运算模块,还用于根据所述中间结果向量进行后续处理。
本发明的另一个方面提供了一种使用上述装置执行单层人工神经网络正向运算的方法。
本发明的另一方面提供了一种使用上述装置执行多层人工神经网络正向运算的方法。
附图说明
图1示出了根据本发明实施例的用于执行人工神经网络正向运算的装置的整体结构的示例框图;
图2示意性示出了根据本发明实施例的用于执行人工神经网络正向运算的装置中H树模块数据通路模块的结构;
图3示出了根据本发明实施例的用于执行人工神经网络正向运算的装置中主运算模块结构的示例框图;
图4示出了根据本发明实施例的用于执行人工神经网络正向运算的装置中从运算模块结构的示例框图;
图5示出了根据本发明实施例的神经网络正向运算过程的示例框图;
图6示出了根据本发明实施例的单层人工神经网络运算的流程图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010150326.8/2.html,转载请声明来源钻瓜专利网。