处理器及其数据处理方法、摄像装置.pdf
《处理器及其数据处理方法、摄像装置.pdf》由会员分享,可在线阅读,更多相关《处理器及其数据处理方法、摄像装置.pdf(28页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910105542.8 (22)申请日 2019.02.01 (71)申请人 阿里巴巴集团控股有限公司 地址 英属开曼群岛大开曼资本大厦一座四 层847号邮箱 (72)发明人 林伟张健松夏立雪刁岚松 叶长安窦顺利孙猛蒋昭 赵永科梁昊陈凯丁力 (74)专利代理机构 北京博浩百睿知识产权代理 有限责任公司 11134 代理人 谢湘宁张文华 (51)Int.Cl. G06N 3/063(2006.01) G06N 3/04(2006.01) (54)发明名称 处理器及其数据处理方。
2、法、 摄像装置 (57)摘要 本发明公开了一种处理器及其数据处理方 法、 摄像装置。 其中, 该方法包括: 缓存装置, 获取 待处理数据、 神经网络参数和运算指令, 其中, 运 算指令包括配置信息, 配置信息用于确定运算模 式, 并根据运算模式对缓存装置和卷积运算装置 进行配置; 卷积运算装置, 与缓存装置通信连接, 用于使用运算模式, 根据神经网络参数对待处理 数据进行运算。 本发明解决了现有技术中的神经 网络模型处理装置的通用性差的技术问题。 权利要求书3页 说明书18页 附图6页 CN 111523652 A 2020.08.11 CN 111523652 A 1.一种处理器, 包括: 。
3、缓存装置, 获取待处理数据、 神经网络参数和运算指令, 其中, 所述运算指令包括配置 信息, 所述配置信息用于确定运算模式, 并根据所述运算模式对所述缓存装置和卷积运算 装置进行配置; 所述卷积运算装置, 与所述缓存装置通信连接, 用于使用所述运算模式, 根据所述神经 网络参数对所述待处理数据进行运算。 2.根据权利要求1所述的处理器, 其中, 所述运算模式包括: 使用多个卷积运算模块同 时执行多个不同的任务, 或使用多个卷积运算模块共同执行同一任务。 3.根据权利要求1所述的处理器, 其中, 所述处理器还包括: 内存存取装置, 用于从编译器处获取所述待处理数据和所述运算指令, 其中, 所述编。
4、译 器与所述处理器通信; 同步动态随机存储器, 用于存储所述神经网络参数; 总线, 其中, 所述缓存装置通过所述总线从所述内存存取装置处获取所述待处理数据 和所述运算指令, 并通过所述总线从所述同步动态随机存储器处获取所述神经网络参数。 4.根据权利要求1所述的处理器, 其中, 其中, 所述缓存装置包括: 滤波器缓存装置, 用于存储所述神经网络参数; 输入图像缓存装置, 用于存储所述待处理数据。 5.根据权利要求4所述的处理器, 其中, 所述卷积运算装置从所述输入图像缓存装置 中, 按照跳读的方式读取所述待处理数据。 6.根据权利要求1所述的处理器, 其中, 所述卷积运算装置包括: 向量乘法阵。
5、列, 包括多个向量乘法器, 其中, 每个所述向量乘法器根据接收到的所述待 处理数据对应的输入特征和神经网络参数进行运算, 并输出运算结果。 7.根据权利要求6所述的处理器, 其中, 所述向量乘法器还用于判断接收到的待处理数 据和所述神经网络参数是否有效, 在接收到的待处理数据和所述神经网络参数均有效的情 况下, 对接收到的所述待处理数据对应的输入特征和神经网络权重进行运算, 并输出运算 结果。 8.根据权利要求6所述的处理器, 其中, 距离所述缓存装置最近的向量乘法器从所述缓 存装置读入所述神经网络参数和所述待处理数据对应的输入特征。 9.根据权利要求6所述的处理器, 其中, 所述向量乘法器将。
6、当前的输入特征数据传给右 方向量乘法器, 将神经网络参数传给下方向量乘法器。 10.根据权利要求1所述的处理器, 其中, 所述缓存装置还包括: 输出缓存装置, 用于缓存所述卷积运算装置输出的运算结果, 其中, 所述卷积运算装置 按照跳写的方式向所述输出缓存装置写入所述运算结果。 11.根据权利要求1所述的处理器, 其中, 所述处理器为FPGA或ASIC。 12.一种处理器的数据处理方法, 包括: 处理器获取待处理数据、 神经网络参数和运算指令, 其中, 所述运算指令包括配置信 息, 所述配置信息用于确定运算模式, 并根据所述运算模式对缓存装置和卷积运算装置进 行配置; 所述处理器使用所述运算模。
7、式, 根据所述神经网络参数对所述待处理数据进行运算。 权利要求书 1/3 页 2 CN 111523652 A 2 13.根据权利要求12所述的方法, 其中, 所述运算模式包括: 使用多个卷积运算模块同 时执行多个不同的任务, 或使用多个卷积运算模块共同执行同一任务。 14.根据权利要求12所述的方法, 其中, 所述处理器包括输入图像缓存装置和卷积运算 装置, 其中, 所述卷积运算装置按照跳读的方式从所述缓存装置中读取所述待处理数据。 15.根据权利要求12所述的方法, 其中, 所述缓存装置还包括输出缓存装置, 其中, 所述 卷积运算装置按照跳写的方式向所述输出缓存装置写入运算结果。 16.根。
8、据权利要求12所述的方法, 其中, 处理器获取待处理数据和运算指令, 包括: 所述处理器获取拆分后的待处理数据和转化后的运算指令, 其中, 编译器用于执行如 下一项或多项: 在所述运算指令为对所述待处理数据进行反卷积运算的情况下, 将所述运算指令中的 所述反卷积运算转化为多个卷积运算, 并将所述待处理器数据拆分为所述卷积运算对应的 数据; 在所述运算指令为对所述待处理数据进行非线性插值的卷积运算的情况下, 所述编译 器将所述运算指令中的所述非线性插值的卷积运算转化为反卷积运算, 并将转化得到的反 卷积运算转化为多个卷积运算, 并将所述待处理器数据拆分为所述卷积运算对应的数据; 在所述运算指令为。
9、对所述待处理数据进行全连接运算的情况下, 所述编译器将所述运 算指令中的全连接运算转化为卷积运算, 并将所述待处理器数据拆分为所述卷积运算对应 的数据。 17.根据权利要求12所述的方法, 其中, 处理器获取神经网络参数, 包括: 所述处理器获取拆分后的神经网络参数, 其中, 编译器检测所述神经网络参数的数据 大小, 如果所述神经网络参数的大小超过第二预设值, 将所述神经网络参数进行拆分。 18.根据权利要求12所述的方法, 其中, 所述运算指令中还包括量化信息, 所述方法还 包括: 所述处理器按照所述量化信息对待处理数据和神经网络参数进行压缩。 19.一种处理器的数据处理方法, 包括: 编译。
10、器接收待处理数据、 神经网络参数和运算指令; 所述编译器向处理器发送获取待处理数据、 神经网络参数和运算指令, 其中, 所述运算 指令包括配置信息, 所述配置信息用于确定运算模式, 并根据所述运算模式对缓存装置和 卷积运算装置进行配置, 所述处理器使用所述运算模式, 根据所述神经网络参数对所述待 处理数据进行运算。 20.根据权利要求19所述的方法, 其中, 在所述编译器向处理器发送获取待处理数据、 神经网络参数和运算指令之前, 所述方法还包括如下一项或多项: 在所述运算指令为对所述待处理数据进行反卷积运算的情况下, 所述编译器将所述运 算指令中的所述反卷积运算转化为多个卷积运算; 在所述运算。
11、指令为对所述待处理数据进行非线性插值的卷积运算的情况下, 所述编译 器将所述运算指令中的所述非线性插值的卷积运算转化为反卷积运算, 并将转化得到的反 卷积运算转化为多个卷积运算; 在所述运算指令为对所述待处理数据进行全连接运算的情况下, 所述编译器将所述运 算指令中的全连接运算转化为卷积运算。 21.根据权利要求19所述的方法, 其中, 处理器获取神经网络参数, 包括: 权利要求书 2/3 页 3 CN 111523652 A 3 编译器检测所述神经网络参数的数据大小; 如果所述神经网络参数的大小超过预设值, 将所述神经网络参数进行拆分, 其中, 所述 处理器获取拆分后的神经网络参数。 22.。
12、一种存储介质, 所述存储介质包括存储的程序, 其中, 在所述程序运行时控制所述 存储介质所在设备执行如下步骤: 处理器获取待处理数据、 神经网络参数和运算指令, 其中, 所述运算指令包括配置信 息, 所述配置信息用于确定运算模式, 并根据所述运算模式对缓存装置和卷积运算装置进 行配置; 所述处理器使用所述运算模式, 根据所述神经网络参数对所述待处理数据进行运算。 23.一种处理器, 所述处理器用于运行程序, 其中, 所述程序运行时执行如下步骤: 处理器获取待处理数据、 神经网络参数和运算指令, 其中, 所述运算指令包括配置信 息, 所述配置信息用于确定运算模式, 并根据所述运算模式对缓存装置和。
13、卷积运算装置进 行配置; 所述处理器使用所述运算模式, 根据所述神经网络参数对所述待处理数据进行运算。 24.一种摄像装置, 包括权利要求1所述的处理器。 权利要求书 3/3 页 4 CN 111523652 A 4 处理器及其数据处理方法、 摄像装置 技术领域 0001 本发明涉及处理器领域, 具体而言, 涉及一种处理器及其数据处理方法、 摄像装 置。 背景技术 0002 目前, 基于FPGA和ASIC的卷积神经网络加速方案, 以及硬件结构设计和性能优化 方法, 主要面向智能摄像头等针对某一特定应用的嵌入式场景, 因而大多还停留在针对某 一特定网络结构进行完全定制化设计的层面。 这使得这些方。
14、案一方面不支持实际业务中使 用到的一些新兴算子, 另一方面也不能在同一个方案中支持多个不同结构的卷积神经网络 的同时计算, 从而导致这些方案的通用性受限。 0003 在保证了通用性的前提下, 如何利用给定的硬件资源提升计算性能则成为了关 键。 在极端的情况下, 如果为每一种网络连接关系和算子都预留了专用的硬件计算模块和 控制流, 则在实际运行时会造成大量模块处于空闲状态, 浪费硬件资源; 而如果把所有算子 都拆解到最基本的运算, 则退化为CPU或GPU。 因此, 如何用少量的高层算子完备地支持所有 运算, 并设计相应的硬件计算模块、 缓存模块和控制模块来完成运算, 是目前难以实现的。 0004。
15、 针对现有技术中的神经网络模型处理装置的通用性差的问题, 目前尚未提出有效 的解决方案。 发明内容 0005 本发明实施例提供了一种处理器及其数据处理方法、 摄像装置, 以至少解决现有 技术中的神经网络模型处理装置的通用性差的技术问题。 0006 根据本发明实施例的一个方面, 提供了一种处理器, 包括: 缓存装置, 获取待处理 数据、 神经网络参数和运算指令, 其中, 运算指令包括配置信息, 配置信息用于确定运算模 式, 并根据运算模式对缓存装置和卷积运算装置进行配置; 卷积运算装置, 与缓存装置通信 连接, 用于使用运算模式, 根据神经网络参数对待处理数据进行运算。 本发明解决了现有技 术中。
16、的神经网络模型处理装置的通用性差的技术问题。 0007 根据本发明实施例的另一方面, 还提供了一种处理器的数据处理方法, 包括: 处理 器获取待处理数据、 神经网络参数和运算指令, 其中, 运算指令包括配置信息, 配置信息用 于确定运算模式, 并根据运算模式对缓存装置和卷积运算装置进行配置; 处理器使用运算 模式, 根据神经网络参数对待处理数据进行运算。 0008 根据本发明实施例的另一方面, 还提供了一种处理器的数据处理方法, 包括: 编译 器接收待处理数据、 神经网络参数和运算指令; 编译器向处理器发送获取待处理数据、 神经 网络参数和运算指令, 其中, 运算指令包括配置信息, 配置信息用。
17、于确定运算模式, 并根据 运算模式对缓存装置和卷积运算装置进行配置, 处理器使用运算模式, 根据神经网络参数 对待处理数据进行运算。 0009 根据本发明实施例的另一方面, 还提供了一种摄像装置, 包括上述的处理器。 说明书 1/18 页 5 CN 111523652 A 5 0010 根据本发明实施例的另一方面, 还提供了一种存储介质, 存储介质包括存储的程 序, 其中, 在程序运行时控制存储介质所在设备执行如下步骤: 处理器获取待处理数据、 神 经网络参数和运算指令, 其中, 运算指令包括配置信息, 配置信息用于确定运算模式, 并根 据运算模式对缓存装置和卷积运算装置进行配置; 处理器使用。
18、运算模式, 根据神经网络参 数对待处理数据进行运算。 0011 根据本发明实施例的另一方面, 还提供了一种处理器, 处理器用于运行程序, 其 中, 程序运行时执行如下步骤: 处理器获取待处理数据、 神经网络参数和运算指令, 其中, 运 算指令包括配置信息, 配置信息用于确定运算模式, 并根据运算模式对缓存装置和卷积运 算装置进行配置; 处理器使用运算模式, 根据神经网络参数对待处理数据进行运算。 0012 现有的专用卷积神经网络加速器不支持在同一个硬件平台上同时运行多种不同 结构的卷积神经网络。 本申请上述方案中, 数据缓存可以通过指令进行配置, 进而使得计算 单元之间的协作关系可以动态配置,。
19、 从而为多种网络任务的动态调度提供了极大的空间, 由此解决了现有技术中的神经网络模型处理装置的通用性差的技术问题。 附图说明 0013 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图中: 0014 图1是根据本申请实施例1的一种处理器的结构示意图; 0015 图2是根据本申请实施例1的一种可选的处理器的结构示意图; 0016 图3是根据本申请实施例1第一中卷运算单元的示意图; 0017 图4a是根据本申请实施例1的一种跳写的示意图; 0018 图4b是根据本申请实施例1的一种跳读和跳写结。
20、合应用的示意图; 0019 图5示出了一种用于实现处理器的数据处理方法的计算机终端(或移动设备)的硬 件结构框图; 0020 图6是根据本发明实施例2的处理器的数据处理方法的流程图; 0021 图7是根据本申请实施例2的一种编译器和神经网络处理器处理任务的示意图; 0022 图8a是一种反卷积运算的示意图; 0023 图8b是根据本申请实施例2的一种将反卷积转换为正向卷积运算的示意图; 0024 图8c是根据本申请实施例2的一种将线性插值卷积转化为卷积的示意图; 0025 图9是根据本申请实施例2的一种低比特量化的示意图; 0026 图10是根据本发明实施例3的处理器的数据处理方法的流程图; 。
21、0027 图11是根据本申请实施例4的一种处理器的数据处理装置的示意图; 0028 图12是根据本申请实施例5的一种处理器的数据处理装置的示意图; 以及 0029 图13是根据本发明实施例7的一种计算机终端的结构框图。 具体实施方式 0030 为了使本技术领域的人员更好地理解本发明方案, 下面将结合本发明实施例中的 附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是 本发明一部分的实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人 说明书 2/18 页 6 CN 111523652 A 6 员在没有做出创造性劳动前提下所获得的所有其他。
22、实施例, 都应当属于本发明保护的范 围。 0031 需要说明的是, 本发明的说明书和权利要求书及上述附图中的术语 “第一” 、“第 二” 等是用于区别类似的对象, 而不必用于描述特定的顺序或先后次序。 应该理解这样使用 的数据在适当情况下可以互换, 以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。 此外, 术语 “包括” 和 “具有” 以及他们的任何变形, 意图在于覆 盖不排他的包含, 例如, 包含了一系列步骤或单元的过程、 方法、 系统、 产品或设备不必限于 清楚地列出的那些步骤或单元, 而是可包括没有清楚地列出的或对于这些过程、 方法、 产品 或设备固有的其它。
23、步骤或单元。 0032 首先, 在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解 释: 0033 FPGA: Field-Programmable Gate Array, 现场可编程门阵列, 是一种可通过烧录 程序修改硬件功能的可编程硬件, 广泛应用在硬件加速领域, 也可用于定制化芯片设计前 的功能验证。 0034 ASIC: Application Specific Integrated Circuit, 面向特定应用的专用芯片, 通常所说的AI芯片、 比特币矿机等均属于AISC。 0035 输入特征图(IFM, input feature map): 每层神经网络运算的输入。
24、数据, 例如首层 神经网络运算的输入特征图为待识别的输入图片。 输入特征图为可以3维矩阵, 三个维度分 别为宽度(W)、 高度(H)和通道(channel)数。 0036 输出特征图(OFM, Output Feature Map): 每层神经网路的计算结果数据, 也可以 为3维矩阵, 三个维度分别为宽度(W)、 高度(H)和通道(channel)数。 0037 过滤器(Filter): 也即神经网络权重或卷积核, 在卷积神经网络中进行一次卷积 运算所需要的参数。 每一个过滤器可以为3维矩阵, 三个维度分别为宽度(W)、 高度(H)和通 道(channel)数。 过滤器的通道数需要与输入特征图。
25、的通道数保持一致, 同一层卷积包含多 个过滤器。 第N个过滤器与输入特征图某一位置(w,h)的数据进行卷积后生成输出特征图在 相应位置(w,h)的第N个通道的像素, 因而滤波器的数量等于输出特征图的通道数。 0038 Deconv: 反卷积, 卷积运算的反向运算, 在执行中可以被视作在卷积的输入特征图 中的像素之间加入0值, 当正向卷积的卷积步长(stride)为s时, 会在输入特征图的每两个 像素之间加入(s-1)个0值, 从而将HxW尺寸的特征图扩大为(s x H-s+1)x(s x W-s+1)尺寸 的特征图。 0039 线性插值卷积: 与反卷积类似, 在输入特征图的每2个像素中插入(s。
26、-1)个线性插 值采样作为像素间的间隔, 从而将HxW尺寸的特征图扩大为(s x H-s+1)x(s x W-s+1)尺寸 的特征图。 0040 Dilated Conv: 指的是在卷积的过滤器的每2个像素之间加入(s-1)个0值作为间 隔, 从而将WxH的卷积核扩大为(s x W-s+1)*(s x H-s+1)的卷积核。 0041 Concat: 特征图连接, 通常指将多个具有相同宽度和高度但不一定具有相同通道 数的特征图, 在通道数这一维度进行拼接, 例如一个尺寸为w x h x ch1的特征图与一个尺 寸为w x h x ch2的特征图拼接, 可以被拼接为一个尺寸为w x h x(ch。
27、1+ch2)的特征图。 0042 实施例1 说明书 3/18 页 7 CN 111523652 A 7 0043 根据本发明实施例, 还提供了一种处理器的实施例, 图1是根据本申请实施例1的 一种处理器的结构示意图, 结合图1所示, 该处理器包括: 0044 缓存装置10, 获取待处理数据、 神经网络参数和运算指令, 其中, 运算指令包括配 置信息, 配置信息用于确定运算模式, 并根据运算模式对缓存装置和卷积运算装置进行配 置。 0045 具体的, 上述待处理数据是待进行神经网络运算的数据, 可以是图像信息等。 例 如, 如果处理器用于进行图像识别, 则待处理数据即为待识别的图像信息所对应的输。
28、入特 征, 如果处理器应用于监控领域, 则待处理数据可以为摄像头采集的图像信息所对应的输 入特征。 0046 神经网络参数可以为预设的神经网络模型的神经网络参数, 即过滤器数据, 运算 指令可以由用户发出, 或由用户设置后配置信息后, 由输入的待处理数据触发。 0047 运算指令中的配置信息中至少包括运算模式。 运算模式是可以由用户进行设置, 也可以由处理器根据实际任务来确定。 在一种可选的实施例中, 配置信息可以指示缓存装 置读取数据的地址, 缓存装置的大小以及缓存装置写入数据的地址, 从而使缓存装置能够 适应于各种运算模式。 0048 在一种可选的实施例中, 上述处理器为FPGA模块或AS。
29、IC模块。 0049 卷积运算装置20, 与缓存单元通信连接, 用于使用运算指令所指示的运算模式, 根 据神经网络参数对待处理数据进行运算。 0050 具体的, 上述卷积运算装置与缓存装置连接, 从缓存装置中获取待处理数据和神 经网络参数, 并在接收到运算指令后, 根据运算指令中的配置信息对待处理数据进行处理。 0051 在一种可选的实施例中, 上述卷积运算装置支持反卷积、 Dilated Conv、 非线性插 值卷积等算子, 从而能够支持更多的运算。 上述卷积运算可以根据运算指令中的配置信息 进行配置, 从而支持各种运算模式。 0052 需要说明的是, 现有的专用卷积神经网络加速器不支持在同。
30、一个硬件平台上同时 运行多种不同结构的卷积神经网络。 本申请上述方案中, 数据缓存可以通过指令进行配置, 进而使得计算单元之间的协作关系可以动态配置, 从而为多种网络任务的动态调度提供了 极大的空间。 多个卷积计算模块协作进行同一个卷积神经网络任务, 或分组进行不同卷积 神经网络任务, 且分组方式可以根据指令动态调整。 该方法为任务调度提供了性能优化空 间。 0053 由此, 本申请上述实施例解决了现有技术中的神经网络模型处理装置的通用性差 的技术问题。 0054 作为一种可选的实施例, 运算模式包括: 使用多个卷积运算模块同时执行多个不 同的任务, 或使用多个卷积运算模块共同执行同一任务。 。
31、0055 上述方案提供了两种运算模式, 可以由用户设置运算模式, 也可以通过任务类型 确定运算模式。 0056 在一种可选的实施例中, 处理器接收到的任务具有优先级, 如果处理器接收到的 多个任务的优先级相同, 则确定运算模式为多个卷积运算模块同时执行多个不同的任务, 从而使得处理器接收到的多个任务能够被并行执行; 如果处理器接收到的多个任务中, 其 中一个任务具有最高的优先级, 因此可以选择多个卷积运算模块共同执行同一任务的方 说明书 4/18 页 8 CN 111523652 A 8 式, 首先执行该优先级最高的任务, 然后使用多个卷积运算模块同时执行多个不同的任务 的方式执行其他任务。 。
32、0057 在另一种可选的实施例中, 还可以根据任务中的数据量(待处理数据的数据量和/ 或神经网络参数的数据量)来确定运算模块。 当任务的数据量大于第一预设值时, 运算模式 可以是N(N1)个卷积运算模块共同执行同一任务, 且N可以根据任务的数据量确定; 当任务 的数据量小于与设置时, 运算模式可以是多个卷积运算模块同时执行多个不同的任务。 0058 在又一种可选的实施例中, 还可以根据处理器当前的利用率来确定运算模块。 当 处理器的利用率大于第一预设值时, 可以采用多个卷积运算模块共同执行同一任务的方式 对任务进行串行处理。 0059 作为一种可选的实施例中, 上述处理器还包括: 内存存取装置。
33、, 用于从编译器处获 取待处理数据和运算指令, 其中, 编译器与神经网络模型处理装置通信; 同步动态随机存储 器, 用于存储神经网络参数; 总线, 其中, 缓存器通过总线从直接内存存取处获取待处理数 据和运算指令, 通过总线从同步动态随机存储器处获取神经网络参数。 0060 具体的, 上述内存存取装置即为DMA(Direct Memory Access, 直接内存存取), DMA 传输用于据从一个地址控件复制到另一个地址控件, 其允许不同速度的硬件装置来沟通, 而不需要依赖于CPU的大量终端负载。 同步动态随机存储器可以为DDR内存(Double Data Rate SDRAM, 双倍速率SD。
34、RAM)。 上述总线(BUS)是处理器内各个单元传送信息的公共信息干 线, 在上述实施例中, 卷积运算装置从缓存装置处获取运算指令、 神经网络参数和运算指 令, 而缓存装置通过总线, 从DMA或DDR处获取运算指令、 神经网络参数和运算指令。 0061 图2是根据本申请实施例1的一种可选的处理器的结构示意图, 结合图2所示, DMA 模块从CPU中获取待处理数据和包括配置信息的运算指令, 配置信息被存放在本地的寄存 器(图中未示出)中, 神经网络参数等其余信息通过BUS(总线), 由内存控制模块(Memory Controller)存放在片外存储中(to external memory), 例。
35、如, DDR内存中。 0062 作为一种可选的实施例, 其中, 缓存器包括: 滤波器缓存器, 用于存储神经网络参 数; 输入图像缓存器, 用于存储待处理数据。 0063 具体的, 上述滤波器缓存器(Filter Buffer)和输入图像缓存器(IFM Buffer)分 别与总线通信, 以通过总线获取神经网络参数和待处理数据。 0064 在一种可选的实施例中, 结合图2所示, 处理器根据指令将待处理数据, 即输入特 征图和神经网络权重(即过滤器)从DDR内存经过内存控制模块和总线被读取到对应的缓存 器中。 0065 作为一种可选的实施例, 卷积运算器从输入图像缓存器中, 按照跳读的方式读取 待处。
36、理数据。 0066 在上述方案中, 卷积运算装置可以通过连续或非连续的方式读取待处理数据进行 运算。 其中, 卷积运算装置连续读取待处理数据, 表示卷积运算装置按照待处理数据中每个 元素的顺序依次读取; 卷积运算装置按照非连续的方式读取待处理数据用于表示, 卷积运 算装置不按照待处理数据中每个元素的顺序进行读取, 即上述跳读。 0067 具体的, 跳读的方式用于表示在卷积运算装置从输入图像缓存器其中读取待处理 数据时, 按照预设的间隔步数来读取输入图像缓存器中的待处理数据。 0068 本申请实施例中的卷积运算装置通过跳读的方式从图像缓存器中读取待处理数 说明书 5/18 页 9 CN 1115。
37、23652 A 9 据, 以通过直接配置缓存读写位置来实现数据位置洗牌(shuffle), 从而实现了在过滤器中 加入0值间隔, 相当于对输入特征图先进行间隔采样再进行卷积运算的目的, 进入达到了支 持Dilated Conv算子的目的。 上述方案将Dilated Conv算子转换为缩小卷积过滤器的非连 续读取待处理数据的普通卷积, 从而可以使用普通卷积模块高校实现Dilated Conv算子。 且上述方案通过非连续读取方法让多个具有不同数据存放顺序需求的后继模块读取同一 块数据, 从而降低数据洗牌引入的硬件资源开销。 0069 作为一种可选的实施例, 卷积运算装置包括: 向量乘法阵列单元, 。
38、包括多个向量乘 法器, 其中, 每个向量乘法器根据接收到的待处理数据对应的输入特征和神经网络参数进 行运算, 并输出运算结果。 0070 具体的, 卷积运算由向量乘法运算实现, 卷积运算装置由其中所包括的向量乘法 单元来进行向量的乘法。 0071 图3是根据本申请实施例1第一中卷运算单元的示意图, 结合图3所示, 卷积运算模 块可以以跳读的方式从输入图像缓存装置中读取输入特征图进行运算。 每一个卷积模块内 部又包括M*N个向量乘法单元(VU), 每一个向量乘法完成一个输入特征图和一个过滤器的 向量乘法, 并输出一个计算结果。 0072 作为一种可选的实施例, 向量乘法器还用于判断接收到的待处理。
39、数据和神经网络 参数是否有效, 在接收到待处理数据和神经网络参数均有效的情况下, 对接收到的待处理 数据对应的输入特征和神经网络权重进行运算, 并输出运算结果。 0073 在上述方案中, 向量乘法器在进行向量的乘法运算之前, 还需要对神经网络参数 和输入特征数据是否有效进行判断, 如果神经网络参数或输入特征数据无效, 则不继续进 行矩阵乘法运算, 如果神经网络参数和输入特征数据均有效, 则执行二者的乘法运算, 并输 出计算结果。 0074 作为一种可选的实施例, 距离缓存器最近的向量乘法器从缓存器读入神经网络权 重和待处理数据。 0075 仍结合图3所示, 由每一个缓存装置边缘的向量乘法器读入。
40、对应位置的输入特征 图数据或神经网络参数。 0076 作为一种可选的实施例, 向量乘法器将当前的输入特征数据传给右方向量乘法 器, 将神经网络参数传给下方向量乘法器。 0077 仍结合图3所示, 向量乘法器在进行矩阵相乘运算后, 将运算结果, 即当前的输入 特征数据传输至右侧的向量乘法器, 并将过滤器数据传输至下方的向量乘法器。 0078 下面, 对卷积运算装置的步骤进行详细说明: 0079 步骤a, 每一个缓存边缘的向量乘法单元读入对应位置的输入特征图数据或过滤 器数据; 0080 步骤b, 每一个向量乘法单元判断当前接受的输入特征数据和过滤器数据是否有 效, 如果有效, 则完成向量乘法计算。
41、并输出计算结果; 0081 步骤c, 每一个向量乘法单元将当前的输入特征数据传给右方向量乘法单元, 将过 滤器数据传给下方向量乘法单元; 0082 循环执行a、 b和c, 直到所有向量乘法器都没有输入特征数据。 0083 作为一种可选的实施例, 上述缓存装置还包括: 输出缓存装置, 用于缓存卷积运算 说明书 6/18 页 10 CN 111523652 A 10 器输出的运算结果, 其中, 卷积运算器按照跳写的方式向输出缓存装置写入运算结果。 0084 具体的, 上述跳写的方式用于表示向输出缓存装置写入数据时, 是非连续的方式。 在一种可选的实施例中, 结合图2所示, 卷积运算单元与输出缓存装。
42、置之间还包括后续计算 模块(Post), Post用于完成当前卷积层后到下一个卷积层之间的所有运算, 例如: 偏置 (bias)、 批归一化(BN, Batch Normalization)、 尺度变换(Scale)、 非线性神经元(sigmoid, ReLU等)。 卷积运算装置通过该后续计算模块(Post)将计算结果以连续的方式或非连续的 方式写入到输出计算图缓存(OFM buffer)中, 输出计算图缓存中的数据经过总线和内存控 制模块存放回DDR中。 0085 Concat算子用于进行特征图的连接, 而在上述方案中, 利用硬件设计中的非连续 写入输出特征图缓存的方式, 可以直接让多个卷积。
43、运算结果(从Post模块最终输出的结果) 直接写入到考虑Concat存储间隔的缓存位置, 从而通过控制缓存写入位置直接完成Concat 运算, 无需再使用单独的硬件单元执行, 到达了Concat消除的目的, 进而消除了额外计算开 销, 提升计算性能。 0086 图4a是根据本申请实施例1的一种跳写的示意图, 如果采用连续写入的方式, 则 Conv1、 Conv2Convn的OFM会按照顺序依次写入输出缓存装置, 而如果采用跳写的方式, 结合图4a所示, 仅以Conv1和Conv2为例, 其对应的OFM会按照预先设置的间隔步数写入输出 缓存装置。 在该示例中, 预先设置的间隔步数为1, Conv。
44、1写入输出缓存装置时, 每写入一个 OFM都间隔一个空间, 以预留给Conv2的OFM, 从而实现了跳写的功能。 由此, 写入至输出缓存 装置中的OFM无需交换位置, 直接完成了Concat运算。 0087 与此同时, 如图4b所示, 图4b是根据本申请实施例1的一种跳读和跳写结合应用的 示意图, Conv1和Conv2通过跳写的方式写入输出缓存装置, 从而直接实现了Concat运算, 而 当需要单独使用Conv1的OFM作为Conv3的IFM时, Conv3从Concat中进行跳读, 从而能够直接 读取到Conv1的OFM, 无需对Concat进行拆分。 由此, 通过利用非连续读取输入特征图。
45、缓存的 特性, 尽管某一具体的卷积运算结果在缓存中是非连续的, 其仍然可以直接单独作为下一 层卷积运算的输入特征图。 0088 需要说明的是, 现有的专用卷积神经网络加速器使用专门的计算单元进行数据洗 牌, 即由于两个级联的计算单元对数据存储格式需求差异导致的数据位置交换。 在申请中, 利用所提出的跳写或跳读的缓存硬件结构, 可以在数据写入时直接完成数据位置的交换, 或通过非连续读取方法让多个具有不同数据存放顺序需求的后继模块读取同一块数据, 从 而降低数据洗牌引入的硬件资源开销。 0089 本申请上述实施例的方案, 输入特征图缓存支持以非连续的方式读取数据, 输出 特征图缓存支持以非连续的方。
46、式写入输出特征图。 该实施例中的处理器还可以执行下述实 施例2中的处理器的数据处理方法, 结合实施例2中的处理器的数据处理方法, 该处理器使 得卷积计算模块可以支持反卷积与Dilated Conv操作, 实现了多种不同算子的合并, 在保 证通用性的前提下提升硬件利用率。 下面在实施例2中对该处理器的数据处理方法进行说 明。 0090 实施例2 0091 根据本发明实施例, 还提供了一种处理器的数据处理方法的实施例, 需要说明的 是, 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行, 说明书 7/18 页 11 CN 111523652 A 11 并且, 虽然在流程图中。
47、示出了逻辑顺序, 但是在某些情况下, 可以以不同于此处的顺序执行 所示出或描述的步骤。 0092 本申请实施例一所提供的方法实施例可以在移动终端、 计算机终端或者类似的运 算装置中执行。 图5示出了一种用于实现处理器的数据处理方法的计算机终端(或移动设 备)的硬件结构框图。 如图5所示, 计算机终端50(或移动设备50)可以包括一个或多个(图中 采用502a、 502b, , 502n来示出)处理器502(处理器502可以包括但不限于微处理器MCU 或可编程逻辑器件FPGA等的处理装置)、 用于存储数据的存储器504、 以及用于通信功能的 传输模块506。 除此以外, 还可以包括: 显示器、 。
48、输入/输出接口(I/O接口)、 通用串行总线 (USB)端口(可以作为I/O接口的端口中的一个端口被包括)、 网络接口、 电源和/或相机。 本 领域普通技术人员可以理解, 图5所示的结构仅为示意, 其并不对上述电子装置的结构造成 限定。 例如, 计算机终端50还可包括比图5中所示更多或者更少的组件, 或者具有与图5所示 不同的配置。 0093 应当注意到的是上述一个或多个处理器502和/或其他数据处理电路在本文中通 常可以被称为 “数据处理电路” 。 该数据处理电路可以全部或部分的体现为软件、 硬件、 固件 或其他任意组合。 此外, 数据处理电路可为单个独立的处理模块, 或全部或部分的结合到计。
49、 算机终端10(或移动设备)中的其他元件中的任意一个内。 如本申请实施例中所涉及到的, 该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。 0094 存储器504可用于存储应用软件的软件程序以及模块, 如本发明实施例中的处理 器的数据处理方法对应的程序指令/数据存储装置, 处理器502通过运行存储在存储器504 内的软件程序以及模块, 从而执行各种功能应用以及数据处理, 即实现上述的应用程序的 漏洞检测方法。 存储器504可包括高速随机存储器, 还可包括非易失性存储器, 如一个或者 多个磁性存储装置、 闪存、 或者其他非易失性固态存储器。 在一些实例中, 存储器504。
50、可进一 步包括相对于处理器502远程设置的存储器, 这些远程存储器可以通过网络连接至计算机 终端50。 上述网络的实例包括但不限于互联网、 企业内部网、 局域网、 移动通信网及其组合。 0095 传输装置506用于经由一个网络接收或者发送数据。 上述的网络具体实例可包括 计算机终端50的通信供应商提供的无线网络。 在一个实例中, 传输装置506包括一个网络适 配器(Network Interface Controller, NIC), 其可通过基站与其他网络设备相连从而可与 互联网进行通讯。 在一个实例中, 传输装置506可以为射频(Radio Frequency, RF)模块, 其 用于通过。
- 内容关键字: 处理器 及其 数据处理 方法 摄像 装置
介孔蛋黄壳纳米颗粒及其在构建分泌物代谢指纹谱图中的应用和用其筛选的代谢标志物.pdf
制袋机的放卷机构.pdf
双枪激光焊机.pdf
锂离子正极材料异常料筛分装置.pdf
用于芯片开盖的可调整平台.pdf
防腐伸缩蝶阀.pdf
可分离式检修插座箱.pdf
自承重保温复合屋面板.pdf
螺杆钻具定子壳体打磨装置.pdf
提升机机尾增压防尘结构.pdf
简易分条机构.pdf
煤矿探水钻孔快速密封装置.pdf
新能源电池储能充电用触发控制电路.pdf
加速植株晾干设备.pdf
高可靠电容切换开关.pdf
散热器翅片的冲片装置.pdf
可拆式偏心加强撑.pdf
农业种植用可调节式农业种植架.pdf
饮品和冰棒的新型包装袋.pdf
卧式搅拌反应釜.pdf
平板玻璃切割加工系统.pdf
器件复用的射频收发电路及其控制方法.pdf
基于单片FPGA的PET正弦图数据压缩存储方法、系统及设备.pdf
风机轴承剩余有效寿命优化方法、设备及介质.pdf
远程控制车辆分享解锁方法及系统.pdf
多轴分布式电驱车辆转向控制方法及车辆.pdf
无对照HRD检测方法、系统及装置.pdf
人工植入物以及介入系统.pdf
实心分割铝导体高压电缆制备方法.pdf
基于图像处理的影动方向计算系统及屈光度估计系统.pdf
热塑性复合工程材料缸盖罩自动校平装置及校平方法.pdf
多尺寸的晶圆传输装置、方法及电子设备.pdf
用于灭蚊及驱赶小动物的新能源装置.pdf
磁性电热保健治疗器.pdf
一种火龙果年糕的制备方法.pdf
土特产精粹罐头.pdf
桔子罐头加工中的桔子分瓣工艺.pdf
一种蛋白粉蒸汽烘干装置.pdf
一种保温隔热型饲料槽.pdf
一种杜仲雄花保健品.pdf
一种基于食用菌菌糠制备诱食剂的方法.pdf
一种鱼饲料的筛选装置.pdf
一种大米.pdf
一种含有联苯菊酯和溴虫腈的杀虫组合物.pdf
牵引式免耕精量播种机.pdf
油茶绿枝带叶苗砧嫁接方法.pdf
幽门螺杆菌相关性胃炎非全营养配方食品.pdf
一种烟苗剪叶机.pdf
一种川木香行气止痛鸡蛋及其生产方法.pdf
一种利尿通便的调味辣椒油及其加工工艺.pdf
微型牙科机.pdf