CN106845631A - 一种流执行方法及装置 - Google Patents

一种流执行方法及装置 Download PDF

Info

Publication number
CN106845631A
CN106845631A CN201611221799.2A CN201611221799A CN106845631A CN 106845631 A CN106845631 A CN 106845631A CN 201611221799 A CN201611221799 A CN 201611221799A CN 106845631 A CN106845631 A CN 106845631A
Authority
CN
China
Prior art keywords
stream
description symbol
instruction
instruction description
layer
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
Application number
CN201611221799.2A
Other languages
English (en)
Other versions
CN106845631B (zh
Inventor
陈云霁
李韦
杜子东
郭崎
陈天石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201611221799.2A priority Critical patent/CN106845631B/zh
Publication of CN106845631A publication Critical patent/CN106845631A/zh
Application granted granted Critical
Publication of CN106845631B publication Critical patent/CN106845631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)

Abstract

一种流执行方法及装置,该方法包括:预处理步骤,获得指令描述符流;层优化步骤,优化指令描述符流;以及构建指令流,根据所述优化后的指令描述符流构建指令流。

Description

一种流执行方法及装置
技术领域
本发明涉及人工神经网络技术领域,更具体地涉及一种流执行方法及装置,用于神经网络处理器。
背景技术
深度学习是机器学习的分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。
至今已有数种深度学习框架,如深度神经网络、卷积神经网络和深度信念网络和递归神经网络已被应用计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。另外,深度学习已成为类似术语,或者说是神经网络的品牌重塑。
随着深度学习(神经网络)的大热,神经网络处理器也应运而生,通过专门的内存和运算模块设计,神经网络处理器在进行深度学习运算时可以获得相比较通用处理器几十甚是上百倍的加速比,并且面积更小,功耗更低。
为了方便应用神经网络处理器在各种不同网络结构上进行加速运算,如何高效的实现对神经网络处理器的功能重构也是一项非常重要的工作。在传统的神经网络处理器编程接口的编写过程中,为了实现最大限度的原子性和灵活性,接口的基本功能定义都以神经网络运算中的常用原子操作作为基础,例如卷积(Convolution),池化(Pooling),激活(Active)等。然而神经网络处理器由于其独特的内部体系结构设计,过于细小的原子操作的简单顺序拼接无法充分发挥它的硬件性能。
发明内容
鉴于现有方案存在的问题,为了克服上述现有技术方案的不足,本发明提出了一种流执行方法。
根据本发明的一个方面,提供了一种流执行方法,包括:预处理步骤,获得指令描述符流;层优化步骤,优化指令描述符流;以及构建指令流,根据所述优化后的指令描述符流构建指令流。
根据本发明的另一个方面,提供了一种流执行装置,包括:预处理模块,用于获得指令描述符流;层优化模块,用于优化指令描述符流;以及指令流构建模块,用于根据所述优化后的指令描述符流构建指令流。
从上述技术方案可以看出,本发明具有以下有益效果:
通过构建指令描述符流并优化实现了对神经网络处理器更高效的功能重构,以期望在运用神经网络加速器进行神经网络方面运算时可以获得相比较传统处理器更高的加速比;
采用层消除处理和/或层融合处理优化指令描述符流,-克服了用卷积,池化,激活等细粒度原子操作组成完整神经网络并进行完整运算时-产生的意外IO开销和-意外的冗余操作。
附图说明
图1为本发明一实施例流执行方法的流程图;
图2为图1中层消除处理的流程图;
图3为图1中层融合处理的流程图;
图4为本发明另一实施例流执行装置的示意图。
具体实施方式
本发明某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本发明的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本发明满足适用的法律要求。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明实施例提供了一种流执行方法,用于神经网络处理器,实现了对神经网络处理器更高效的功能重构,获得比传统处理器更高的加速比。
该流执行方法,包括预处理步骤,层优化步骤及构建指令流的步骤。
图1为本发明实施例流执行方法的示意图,如图1所示,本实施例中的流执行方法包括以下步骤:
S1:预处理步骤,用于获得指令描述符流,即用于生成指令的指令描述符序列;
该预处理步骤包括:
S11:构建设备流,即构建神经网络基本操作序列;
具体的,基于神经网络结构、输入神经元及权值等基础数据构建神经网络基本操作序列,例如,利用网络结构A对输入数据集合B进行处理,根据网络结构A可以分为一系列的基本操作,例如卷积(Convolution),池化(Pooling),激活(Active)等,细化所有的操作,并排序形成流的形式。
S12:构建指令描述符流,即构建指令描述符序列;
根据S11形成的设备流构建指令描述符流,指令描述符流用于生成指令流。
S2:层优化步骤,优化指令描述符流,包括层消除处理S21和/或层融合处理S22;
所述层消除处理S21用于消除指令描述符流中的冗余操作,如图2所示,具体包括:
S211:遍历指令描述符流中指令描述符;
S212:判断指令描述符是否为冗余操作;若判断结果为Y,则执行S213,否则执行S214;
S213:去除冗余操作的指令描述符;
S214:保留指令描述符;
S215:输出无冗余操作的指令描述符流。
所述冗余操作例如连续两层相同输入数据格式时的无效拆分等。以下为具体例子。
设存在连续的两个卷积层(Convolution Layer)C和D,并且C和D中均设置参数group为2。由于硬件限制,在单独处理C和D的运算时,需要进行输入时对数据拆分,输出时对数据合并。而当C和D中的卷积操作在设备缓存中连续依次存在时,C的输出作为D的输入,中间可以省去输入数据的合并和拆分操作。
所述层融合处理S22用于融合指令描述符流中一些操作,如图3所示,具体包括:
S221:遍历指令描述符流中指令描述符;
S222:判断指令描述符流代表的网络结构中是否存在可融合的层;若判断结果为Y,则执行S223,否则执行S224;
S223:根据网络结构中可融合的层简化指令描述符序;
S224:保留指令描述符;
S225:输出无可融合网络结构的指令描述符流。
所述层融合处理例如对其中可以一次性生成指令的多个连续网络层做融合处理(如可以作为基本模块的简单三层操作卷积,池化,激活)等。以下为具体例子,
网络结构中包括了连续的三层,卷积层(Convolution),归一化层(BatchNorm),激活层(Active)。生成了相应的指令描述符后,层融合处理模块判断到这三层可以进行融合,则对指令描述符序列进行处理,融合相关指令描述符,用一条指令描述符表示这样的三层网络结构。
本实施例中,层优化步骤S2中,层消除处理S21和层融合处理S22可以选用其中一种,或者两者同时存在,两者同时存在时,层消除处理S21和层融合处理S22可以顺序执行,也可以同时执行,两者顺序执行时,先执行其中任一步骤均是可行的。
S3:构建指令流,即用于执行的指令序列。
具体的根据S2中获得的优化后的指令描述符流,构建可被神经网络处理器执行的指令流。该指令流可以直接传输给神经网络处理器来执行。
本发明的另一实施例提供了一种流执行装置,如图4所示,包括:预处理模块10、层优化模块20及指令流构建模块30。
预处理模块10,用于获得指令描述符流,即用于生成指令的指令描述符序列,包括设备流构建模块11及指令描述符流构建模块12。
设备流构建模块11,用于构建设备流,即构建神经网络基本操作序列,其基于神经网络结构、输入神经元及权值等基础数据构建神经网络基本操作序列;
指令描述符流构建模块12用于构建指令描述符流,即构建指令描述符序列,根据形成的设备流构建指令描述符流,指令描述符流用于生成指令流。
层优化模块20用于优化指令描述符流,包括层消除模块21和/或层融合模块22;
层消除模块21用于消除指令描述符流中的冗余操作,其遍历指令描述符流中描述符,去除冗余操作的指令描述符,输出无冗余操作的指令描述符流。
层融合模块22用于融合指令描述符流中一些操作,其遍历指令描述符流中描述符,根据网络结构和预先定义的模式融合指令描述符流中的相关指令描述符,输出层融合后的指令描述符流。
本实施例中,层消除模块21和层融合模块22可以选用其中一种,或者两者同时存在,两者同时存在时,层消除模块21和层融合模块22可以顺序工作,也可以同时工作,两者顺序工作时,先后顺序可以调换。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被承载在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种流执行方法,其中,包括:
预处理步骤(S1),获得指令描述符流;
层优化步骤(S2),优化指令描述符流;以及
构建指令流(S3),根据所述优化后的指令描述符流构建指令流。
2.根据权利要求1所述的流执行方法,其中,所述层优化步骤包括:
层消除处理(S21),消除指令描述符流中的冗余操作;和/或
层融合处理(S22),融合指令描述符流的可融合操作。
3.根据权利要求2所述的流执行方法,其中,所述层消除处理(S21)包括:
遍历指令描述符流中指令描述符;
判断指令描述符是否为冗余操作,若是,则去除冗余操作的指令描述符,否则保留指令描述符;以及
输出无冗余操作的指令描述符流。
4.根据权利要求2所述的流执行方法,其中,所述层融合处理(S22)包括:
遍历指令描述符流中指令描述符;
判断指令描述符流代表的网络结构中是否存在可融合的层,若是,则根据网络结构中可融合的层简化指令描述符序,否则保留指令描述符;以及
输出无可融合网络结构的指令描述符流。
5.根据权利要求1所述的流执行方法,其中,所述预处理步骤(S1)包括:
基于基础数据构建设备流;以及
基于所述设备流构建指令描述符流。
6.根据权利要求5所述的流执行方法,其中,所述流执行方法用于神经网络,所述基础数据为经网络结构、输入神经元及权值,所述设备流为神经网络操作序列。
7.根据权利要求6所述的流执行方法,其中,所述神经网络操作包括卷积,池化或激活。
8.一种流执行装置,其中,包括:
预处理模块(10),用于获得指令描述符流;
层优化模块(20),用于优化指令描述符流;以及
指令流构建模块(30),用于根据所述优化后的指令描述符流构建指令流。
9.根据权利要求8所述的流执行装置,其中,所述层优化模块(20)包括:
层消除模块(21),用于消除指令描述符流中的冗余操作;和/或
层融合模块(22),用于融合指令描述符流的可融合操作。
10.根据权利要求8所述的流执行装置,其中,所述预处理步骤(10)包括:
设备流构建模块(11),用于基于基础数据构建设备流;以及
指令描述符流构建模块(12),用于基于所述设备流构建指令描述符流。
CN201611221799.2A 2016-12-26 2016-12-26 一种流执行方法及装置 Active CN106845631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611221799.2A CN106845631B (zh) 2016-12-26 2016-12-26 一种流执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611221799.2A CN106845631B (zh) 2016-12-26 2016-12-26 一种流执行方法及装置

Publications (2)

Publication Number Publication Date
CN106845631A true CN106845631A (zh) 2017-06-13
CN106845631B CN106845631B (zh) 2020-05-29

Family

ID=59136208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611221799.2A Active CN106845631B (zh) 2016-12-26 2016-12-26 一种流执行方法及装置

Country Status (1)

Country Link
CN (1) CN106845631B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284822A (zh) * 2017-07-20 2019-01-29 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法
CN109697500A (zh) * 2018-12-29 2019-04-30 北京中科寒武纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN109726800A (zh) * 2018-12-29 2019-05-07 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109754073A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 数据处理方法、装置、电子设备和可读存储介质
CN109993288A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 神经网络处理方法、计算机系统及存储介质
CN111258950A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和系统
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
CN111553473A (zh) * 2017-07-05 2020-08-18 上海寒武纪信息科技有限公司 数据冗余方法及执行数据冗余方法的神经网络处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1977316A1 (en) * 2006-01-26 2008-10-08 Compliance Software Limited A system and method for parallel execution of a program
CN102609292A (zh) * 2010-12-13 2012-07-25 微软公司 指令优化
CN104376326A (zh) * 2014-11-02 2015-02-25 吉林大学 一种用于图像场景识别的特征提取方法
CN104463878A (zh) * 2014-12-11 2015-03-25 南京理工大学 一种新的深度图像局部描述符方法
CN106097353A (zh) * 2016-06-15 2016-11-09 北京市商汤科技开发有限公司 基于多层次局部区域融合的物体分割方法及装置、计算设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1977316A1 (en) * 2006-01-26 2008-10-08 Compliance Software Limited A system and method for parallel execution of a program
CN102609292A (zh) * 2010-12-13 2012-07-25 微软公司 指令优化
CN104376326A (zh) * 2014-11-02 2015-02-25 吉林大学 一种用于图像场景识别的特征提取方法
CN104463878A (zh) * 2014-12-11 2015-03-25 南京理工大学 一种新的深度图像局部描述符方法
CN106097353A (zh) * 2016-06-15 2016-11-09 北京市商汤科技开发有限公司 基于多层次局部区域融合的物体分割方法及装置、计算设备

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111553473A (zh) * 2017-07-05 2020-08-18 上海寒武纪信息科技有限公司 数据冗余方法及执行数据冗余方法的神经网络处理器
CN111553473B (zh) * 2017-07-05 2023-10-13 上海寒武纪信息科技有限公司 数据冗余方法及执行数据冗余方法的神经网络处理器
US11481215B2 (en) 2017-07-20 2022-10-25 Cambricon (Xi'an) Semiconductor Co., Ltd. Calculation method and related product
CN109284822A (zh) * 2017-07-20 2019-01-29 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法
CN109284822B (zh) * 2017-07-20 2021-09-21 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法
CN109754062B (zh) * 2017-11-07 2024-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN111582464B (zh) * 2017-12-29 2023-09-29 中科寒武纪科技股份有限公司 神经网络处理方法、计算机系统及存储介质
CN109993288A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 神经网络处理方法、计算机系统及存储介质
CN111582464A (zh) * 2017-12-29 2020-08-25 中科寒武纪科技股份有限公司 神经网络处理方法、计算机系统及存储介质
CN111258950B (zh) * 2018-11-30 2022-05-31 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和系统
CN111258950A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和系统
CN111461296A (zh) * 2018-12-29 2020-07-28 中科寒武纪科技股份有限公司 数据处理方法、电子设备和可读存储介质
CN109754073B (zh) * 2018-12-29 2020-03-10 中科寒武纪科技股份有限公司 数据处理方法、装置、电子设备和可读存储介质
CN109726800B (zh) * 2018-12-29 2019-12-24 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN111461296B (zh) * 2018-12-29 2023-09-22 中科寒武纪科技股份有限公司 数据处理方法、电子设备和可读存储介质
CN109754073A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 数据处理方法、装置、电子设备和可读存储介质
CN109726800A (zh) * 2018-12-29 2019-05-07 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN109697500A (zh) * 2018-12-29 2019-04-30 北京中科寒武纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
WO2021248941A1 (zh) * 2020-06-08 2021-12-16 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法

Also Published As

Publication number Publication date
CN106845631B (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
CN106845631A (zh) 一种流执行方法及装置
Sipper The emergence of cellular computing
Van Gelder Dynamic approaches to cognition
CN107480782A (zh) 一种片上学习神经网络处理器
CN114970522B (zh) 语言模型的预训练方法、装置、设备、存储介质
CN108734288A (zh) 一种运算方法及装置
Eiben et al. If it evolves it needs to learn
CN106528171A (zh) 一种异构计算平台子系统间的接口设计方法、装置及系统
Nguyen et al. Image colorization using a deep convolutional neural network
CN107193895A (zh) 提取语言认知模型隐藏知识的新方法
Degtyarev et al. Evidence algorithm and sequent logical inference search
CN113157917A (zh) 基于OpenCL的优化分类模型的建立、优化分类方法及系统
Rakkiyappan et al. Non-fragile robust synchronization for Markovian jumping chaotic neural networks of neutral-type with randomly occurring uncertainties and mode-dependent time-varying delays
Doughan et al. Novel preprocessors for convolution neural networks
Wai et al. A scalable FPGA based accelerator for Tiny-YOLO-v2 using OpenCL
Liu et al. Parallelizing convolutional neural networks on intel many integrated core architecture
Korczynski et al. Buffered local search for efficient memetic agent-based continuous optimization
Biau et al. Improving Image Filters with Cartesian Genetic Programming.
CN107193535B (zh) 基于simd扩展部件的嵌套循环向量并行的实现方法及其装置
Turchenko et al. Parallel batch pattern training algorithm for deep neural network
Jeeban et al. Comparing Deep Neural Network Models for Handwriting Recognition
Shen et al. Intention understanding model inspired by cbc loops
US20230206048A1 (en) Crossbar-based neuromorphic computing apparatus capable of processing large input neurons and method using the same
Érdi The brain-mind-computer trichotomy: Hermeneutic approach
Torresen Exploring knowledge schemes for efficient evolution of hardware

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