[go: up one dir, main page]

CN109726353B - 卷积运算装置和方法 - Google Patents

卷积运算装置和方法 Download PDF

Info

Publication number
CN109726353B
CN109726353B CN201711118938.3A CN201711118938A CN109726353B CN 109726353 B CN109726353 B CN 109726353B CN 201711118938 A CN201711118938 A CN 201711118938A CN 109726353 B CN109726353 B CN 109726353B
Authority
CN
China
Prior art keywords
unit
voltage
convolution
frequency regulation
convolution operation
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
Application number
CN201711118938.3A
Other languages
English (en)
Other versions
CN109726353A (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
Priority to CN201711118938.3A priority Critical patent/CN109726353B/zh
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to EP19215860.8A priority patent/EP3660706B1/en
Priority to EP19215859.0A priority patent/EP3660628B1/en
Priority to PCT/CN2018/095548 priority patent/WO2019076095A1/zh
Priority to KR1020197023878A priority patent/KR102434726B1/ko
Priority to KR1020197037574A priority patent/KR102434729B1/ko
Priority to EP18868807.1A priority patent/EP3627397B1/en
Priority to EP19215858.2A priority patent/EP3667569A1/en
Priority to KR1020197037566A priority patent/KR102434728B1/ko
Priority to US16/482,710 priority patent/US11593658B2/en
Publication of CN109726353A publication Critical patent/CN109726353A/zh
Priority to US16/528,973 priority patent/US10768685B2/en
Application granted granted Critical
Publication of CN109726353B publication Critical patent/CN109726353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06N3/048Activation functions
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Power Sources (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种动态调压调频装置,卷积运算装置中的动态调压调频装置实时采集获取上述卷积运算及其内部其他单元/模块的工作状态信息,并根据根据卷积运算装置及其内部其他单元/模块的工作状态信息来调整卷积运算装置及其内部单元/模块的工作频率或者工作电压,以达到降低卷积运算装置在进行卷积运算过程中的整体运行功耗。

Description

卷积运算装置和方法
技术领域
本发明涉及电子领域,尤其涉及一种卷积运算装置和方法。
背景技术
随着工作频率的提高和半导体工艺的不断发展,芯片的功耗问题已成为深亚纳米集成电路中的一个重要的考虑因素,动态电压频率调节(Dynamic Voltage Frequencyscaling,简称DVFS)为目前在半导体领域被广泛采用的一种动态电压频率调节技术,DVFS技术具体是在动态调节芯片的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能的目的。但是现有技术中,缺乏应用到智能芯片比如卷积运算装置的动态调压调频方法和相应的装置的设计。
发明内容
本发明实施例提供一种动态调压调频装置及方法,实现了芯片级的工作电压和工作频率的动态调节,降低了芯片的功耗。
第一方面,本发明实施例提供一种卷积运算装置,包括动态调压调频装置、指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块以及N个从运算模块,所述N为大于1的整数,其中:
所述指令存储单元,用于存储所述数据访问单元读入的指令;
所述控制器单元,用于从所述指令存储单元中读取指令,将该指令译成控制其他模块行为的控制信号,所述其他模块包括所述数据访问单元、所述主运算模块和所述N个从运算模块;
所述数据访问单元,用于执行外部地址空间与所述卷积运算装置之间的数据或指令读写操作;
所述N个从运算模块,用于实现卷积神经网络算法中的输入数据和卷积核的卷积运算;
所述互连模块,用于所述主运算模块和所述从运算模块之间的数据传输;
所述主运算模块,用于将所有输入数据的中间向量拼接成中间结果,并对所述中间结果执行后续运算;
所述动态调压调频装置,用于采集所述卷积运算装置的工作状态信息;根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或者工作频率。
在一种可行的实施例中,所述主运算模块还用于将中间结果与偏置数据相加,然后执行激活操作。
在一种可行的实施例中,所述N个从运算模块具体用于利用相同的输入数据和各自的卷积核,并行地计算出各自的输出标量。
在一种可行的实施例中,所述主运算模块使用的激活函数active是非线性函数sigmoid,tanh,relu,softmax中的任一个或线性函数。
在一种可行的实施例中,所述互连模块构成所述主运算模块和所述N个从运算模块之间的连续或离散化数据的数据通路,所述互连模块为树状结构、环状结构、网格状结构、分级互连和总线结构中的任一种结构。
在一种可行的实施例中,所述主运算模块包括:
第一存储单元,用于缓存所述主运算模块在计算过程中用到的输入数据和输出数据;
第一运算单元,用于完成所述主运算模块的各种运算功能;
第一数据依赖关系判定单元,是第一运算单元读写第一存储单元的端口,用于保证对所述第一存储单元的数据读写的一致性,并且从所述第一存储单元读取输入的神经元向量,并通过所述互连模块发送给所述N个从运算模块;以及将来自所述互连模块的中间结果向量被发送到第一运算单元。
在一种可行的实施例中,所述N个从运算模块中的每个从运算模块包括:
第二运算单元,用于接收所述控制器单元发出的控制信号并进行算数逻辑运算;
第二数据依赖关系判定单元,用于在计算过程中对第二存储单元和第三存储单元的读写操作,以保证对第二存储单元和第三存储单元的读写一致性;
第二存储单元,用于缓存输入数据以及该从运算模块计算得到的输出标量;
第三存储单元,用于缓存该从运算模块在计算过程中需要的卷积核。
在一种可行的实施例中,所述第一数据依赖关系判定单元和所述第二数据依赖关系判定单元通过以下方式保证读写一致性:
判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该条控制信号立即发射,否则需要等到该条控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。
在一种可行的实施例中,所述数据访问单元从外部地址空间读入输入数据、偏置数据和卷积核中的至少一个。
在一种可行的实施例中,所述动态调压调频装置包括:
信息采集单元,用于实时采集所述卷积运算装置的工作状态信息;
调压调频单元,用于根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或者工作频率。
在一种可行的实施例中,所述卷积运算装置的工作状态信息包括所述卷积运算装置的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述调压调频单元用于:
当所述卷积运算装置的运行速度大于目标速度时,向所述卷积运算装置发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时所述卷积运算装置的运行速度。
在一种可行的实施例中,所述卷积运算装置的工作状态信息包括所述数据访问单元的运行速度和主运算模块的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述调频调压单元还用于:
所述电压频率调控信息包括第三电压频率调控信息,所述调频调压单元还用于:
当根据所述数据访问单元的运行速度和所述主运算模块的运行速度确定所述数据访问单元的运行时间超过所述主运算模块的运行时间时,向所述主运算模块发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述主运算模块降低其工作频率或者工作电压。
在一种可行的实施例中,所述电压频率调控信息包括第三电压频率调控信息,所述调频调压单元还用于:
当根据所述数据访问单元的运行速度和所述主运算模块的运行速度确定所述主运算模块的运行时间超过所述数据访问单元的运行时间时,向所述数据访问单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述数据访问单元降低其工作频率或者工作电压。
在一种可行的实施例中,所述卷积运算装置的工作状态信息包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块及N个从运算模块中至少S个单元/模块的工作状态信息,所述S为大于1且小于或等于N+5的整数,所述电压频率调控信息包括第四电压频率调控信息,所述调压调频单元用于:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元/模块中的任意一个。
在一种可行的实施例中,所述电压频率调控信息包括第五电压频率调控信息,所述调压调频单元还用于:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
第二方面,本发明实施例提供了一种神经网络处理器,该神经网络处理器包括如第一方面所述的卷积运算装置。
第三方面,本发明实施例提供了一种电子装置,该电子装置包括如第二方面所述的神经网络处理器。
第四方面,本发明实施例还提供了一种用于执行单层卷积神经网络正向运算的方法,应用于如第一方面所述的卷积运算装置中,包括:
在指令存储单元的首地址处预先存入一条输入输出IO指令;
运算开始,控制器单元从所述指令存储单元的首地址读取所述IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取相应的所有卷积神经网络运算指令,并将其缓存在所述指令存储单元中;
所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取主运算模块需要的所有数据至所述主运算模块的第一存储单元;
所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取从运算模块需要的卷积核数据;
所述控制器单元接着从所述指令存储单元读入下一条CONFIG指令,根据译出的控制信号,所述卷积运算装置配置该层神经网络计算需要的各种常数;
所述控制器单元接着从所述指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,所述主运算模块首先通过互连模块将卷积窗口内的输入数据发给N个从运算模块,保存至所述N个从运算模块的第二存储单元,之后,在依据指令移动卷积窗口;
根据COMPUTE指令译出的控制信号,所述N个从运算模块的运算单元从第三存储单元读取卷积核,从所述第二存储单元读取输入数据,完成输入数据和卷积核的卷积运算,将得到的输出标量通过所述互连模块返回;
在所述互连模块中,所述N个从运算模块返回的输出标量被逐级拼成完整的中间向量;
所述主运算模块得到互连模块返回的中间向量,卷积窗口遍历所有输入数据,所述主运算模块将所有返回向量拼接成中间结果,根据COMPUTE指令译出的控制信号,从第一存储单元读取偏置数据,与中间结果通过向量加单元相加得到偏置结果,然后激活单元对偏置结果做激活,并将最后的输出数据写回至所述第一存储单元中;
所述控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元将所述第一存储单元中的输出数据存至外部地址空间指定地址,运算结束。
在一种可行的实施例中,所述方法还包括:
实时采集所述卷积运算装置的工作状态信息;
根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或工作频率。
在一种可行的实施例中所述卷积运算装置的工作状态信息包括所述卷积运算装置的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息包括:
当所述卷积运算装置的运行速度大于目标速度时,向所述卷积运算装置发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时所述芯片的运行速度。
在一种可行的实施例中,所述卷积运算装置的工作状态信息包括所述数据访问单元的运行速度和主运算模块的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算模块的运行速度确定所述数据访问单元的运行时间超过所述主运算模块的运行时间时,向所述主运算模块发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述主运算模块降低其工作频率或者工作电压。
在一种可行的实施例中,所述电压频率调控信息包括第三电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算模块的运行速度确定所述主运算模块的运行时间超过所述数据访问单元的运行时间时,向所述数据访问单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述数据访问单元降低其工作频率或者工作电压。
在一种可行的实施例中,所述卷积运算装置的工作状态信息包括所述指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块及N个从运算模块中至少S个单元/模块的工作状态信息,所述S为大于1且小于或等于N+5的整数,所述电压频率调控信息包括第四电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元/模块中的任意一个。
在一种可行的实施例中,所述电压频率调控信息包括第五电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
第三方面,本发明实施例提供了一种用于执行多层卷积神经网络正向运算的方法,包括:
对每一层执行如上述第二方面所述的方法,当上一层卷积神经网络执行完毕后,本层的运算指令将主运算模块中存储的上一层的输出数据地址作为本层的输入数据地址,并且指令中的卷积核和偏置数据地址变更至本层对应的地址。
可以看出,在本发明实施例的方案中,卷积运算装置中的动态调压调频装置实时采集获取上述卷积运算及其内部其他单元/模块的工作状态信息,并根据根据卷积运算装置及其内部其他单元/模块的工作状态信息来调整卷积运算装置及其内部单元/模块的工作频率或者工作电压,以达到降低卷积运算装置在进行卷积运算过程中的整体运行功耗。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种卷积运算装置的结构示意图;
图2为本发明实施例提供的一种卷积运算装置中的主运算模块的结构的示例框图;
图3为本发明实施例提供的一种卷积运算装置中的从运算模块的结构的示例框图;
图4为本发明实施例提供的一种卷积运算装置中的动态调压调频装置的结构的示例框图;
图5示意性示出了互连模块4的一种实施方式的示意图;
图6为本发明实施例提供的另一种卷积运算装置的结构示意图;
图7本发明实施例提供的用于执行单层卷积神经网络正向运方法的流程示意图。
具体实施方式
以下分别进行详细说明。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参见图1,图,1是本发明实施例提供的卷积运算装置的结构示意图。如图1所示,该卷积运算装置包括动态调压调频装置7、指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和N个从运算模块6。
其中,上述指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和N个从运算模块6均可以通过硬件电路(例如包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。
其中,上述指令存储单元1用于存储上述数据访问单元3读入的指令。
上述控制器单元2,用于从上述指令存储单元1中读取指令,将该指令译成控制其他模块行为的控制信号,并发送给其他模块如上述数据访问单元3、主运算模块5和N个从运算模块6等。
上述数据访问单元3,用于执行外部地址空间与上述卷积运算装置之间的数据或指令读写操作
具体地,上述数据访问单元3访问外部地址空间,直接向装置内部的各个存储单元读写数据,完成数据的加载和存储。
上述N个从运算模块6,用于实现卷积神经网络算法中的输入数据和卷积核的卷积运算。
其中,上述N个从运算模块6具体用于利用相同的输入数据和各自的卷积核,并行地计算出各自的输出标量。
上述互连模块4,用于连接上述主运算模5块和上述N个从运算模块6,可以实现成不同的互连拓扑(如树状结构、环状结构、网格状结构、分级互连,总线结构等)。上述互连模块4可实现上述主运算模块5和上述N个从运算模块6之间的数据传输。
换句话说,上述互连模块4构成上述主运算模块5和所述N个从运算模块6之间的连续或离散化数据的数据通路,所述互连模块4为树状结构、环状结构、网格状结构、分级互连和总线结构中的任一种结构。
上述主运算模块5,用于将所有输入数据的中间向量拼接成中间结果,并对所述中间结果执行后续运算。
其中,上述主运算模块5还用于将中间结果与偏置数据相加,然后执行激活操作。主运算模块使用的激活函数active是非线性函数sigmoid,tanh,relu,softmax中的任一个或线性函数。
其中,上述主运算模块5包括:
第一存储单元53,用于缓存该主运算模块5在计算过程中用到的输入数据和输出数据;
第一运算单元51,用于完成上述主运算模块5的各种运算功能;
第一数据依赖关系判定单元52,是第一运算单元51读写第一存储单元53的端口,用于保证对上述第一存储单元53的数据读写的一致性,并且从该第一存储单元53读取输入的神经元向量,并通过上述互连模块4发送给上述N个从运算模块6;以及将来自上述互连模块4的中间结果向量被发送到上述第一运算单元51。
其中,上述N个从运算模块6中的每个从运算模块包括:
第二运算单元61,用于接收所述控制器单元2发出的控制信号并进行算数逻辑运算;
第二数据依赖关系判定单元62,用于在计算过程中对第二存储单元63和第三存储单元64的读写操作,以保证对上述第二存储单元63和上述第三存储单元64的读写一致性;
上述第二存储单元63,用于缓存输入数据以及该从运算模块计算得到的输出标量;
上述第三存储单元64,用于缓存该从运算模块在计算过程中需要的卷积核。
进一步地,上述第一数据依赖关系判定单元52和上述第二数据依赖关系判定单元62通过以下方式保证读写一致性:
判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该条控制信号立即发射,否则需要等到该条控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。
可选地,上述数据访问单元3从外部地址空间读入输入数据、偏置数据和卷积核中的至少一个。
在神经网络全连接层正向运算开始之前,所述主运算模块5通过所述互连模块4将输入数据输送到所述N个从运算模块6的每一个从运算模块,在所述N个从运算模块6的计算过程结束后,所述互连模块4逐级将所述N个从运算模块6的输出标量拼成中间向量,输送回主运算模块5
下面通过不同的运算指令来说明上述卷积运算装置的具体计算方法,这里的运算指令以卷积计算指令为例,该卷积计算指令可以应用在神经网络中,所以该卷积计算指令也可以称为卷积神经网络。对于卷积计算指令来说,其实际需要执行的公式可以为:
s=s(Σwxi+b)
其中,即将卷积核w(可包括多个数据)乘以输入数据xi,进行求和,然后可选地可加上偏置b,然后可选地还可做激活运算s(h),得到最终的输出结果s。依据该公式即可以得到该计算拓扑结构为,乘法运算器-加法运算器-(可选的)激活运算器。上述卷积计算指令可以包括指令集,该指令集包含有不同功能的卷积神经网络COMPUTE指令以及CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令。
在一种实施例中,COMPUTE指令包括:
卷积运算指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作。
卷积神经网络sigmoid指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活;
卷积神经网络TanH指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活;
卷积神经网络ReLU指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活;以及
卷积神经网络group指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,优选的,然后将输出结果做激活。
CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数。
IO指令实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间。
NOP指令负责清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作;
JUMP指令负责控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
上述卷积运算装置执行卷积计算指令的方法具体可以为:
控制器单元2从指令存储单元1内提取卷积计算指令、卷积计算指令对应的操作域以及卷积计算指令对应的第一计算拓扑结构(乘法运算器-加法运算器-加法运算器-激活运算器),控制单元将该操作域传输至数据访问单元,将该第一计算拓扑结构传输至互联模块4。
数据访问单元3从外部存储介质提取该操作域对应的卷积核w和偏置b(当b为0时,不需要提取偏置b),将卷积核w和偏置b传输至主运算模块5。
可选地,上述第一结果可包括多个乘法运算的结果。
上述动态调压调频装置7,用于采集所述卷积运算装置的工作状态信息;根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或者工作频率。
具体地,上述动态调压调频装置7包括:
信息采集单元71,用于实时采集上述卷积运算装置的工作状态信息;
调压调频单元72,用于根据上述卷积运算装置的工作状态信息向该卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示上述卷积运算装置调整其工作电压或者工作频率。
在一种可行的实施例中,上述卷积运算装置的工作状态信息包括该卷积运算装置的运行速度,上述电压频率调控信息包括第一电压频率调控信息,上述调压调频单元7用于:
当上述卷积运算装置的运行速度大于目标速度时,向该卷积运算装置发送上述第一电压频率调控信息,该第一电压频率调控信息用于指示上述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时上述卷积运算装置的运行速度。
在一种可行的实施例中,上述卷积运算装置的工作状态信息包括上述数据访问单元的运行速度和上述主运算模块的运行速度,上述电压频率调控信息包括第二电频率调控信息,上述调频调压单元7还用于:
当根据上述数据访问单元3的运行速度和上述主运算模块5的运行速度确定上述数据访问单元3的运行时间超过上述主运算模块5的运行时间时,向该主运算模块5发送上述第二电压频率调控信息,该第二电压频率调控信息用于指示上述主运算模块5降低其工作频率或者工作电压。
进一步地,上述电压频率调控信息包括第三电频率调控信息,上述调频调压单元7还用于:
当根据上述数据访问单元3的运行速度和上述主运算模块5的运行速度确定上述主运算模块5的运行时间超过上述数据访问单元3的运行时间时,向该数据访问单元3发送上述第三电压频率调控信息,该第三电压频率调控信息用于指示上述数据访问单元3降低其工作频率或者工作电压。
在一种可行的实施例中,上述卷积运算装置的工作状态信息包括指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5及N个从运算模块6中至少S个单元/模块的工作状态信息,该S为大于1且小于或等于N+5的整数,上述电压频率调控信息包括第四电压频率调控信息,上述调压调频单元7用于:
根据上述单元A的工作状态信息确定该单元A处于空闲状态时,向该单元A发送上述第四电压频率调控信息,该第四电压频率调控信息用于指示上述单元A降低其工作频率或者工作电压,
其中,上述单元A为上述至少S个单元/模块中的任意一个。
进一步地,上述电压频率调控信息包括第五电压频率调控信息,上述调压调频单元7还用于:
根据上述单元A的工作状态信息确定该单元A重新处于工作状态时,向该单元A发送所述第五电压频率调控信息,该第五电压频率调控信息用于指示上述单元A升高其工作电压或者工作频率。
在一种可行的实施例中,本发明实施例提供了一种神经网络处理器,其包括了上述卷积运算装置。
上述神经网络处理器用于执行人工神经网络运算,实现语音识别,图像识别,翻译等人工智能的应用。
在这个卷积计算任务中,上述动态调压调频装置7的工作过程如下:
情形一、上述卷积神经网络处理器在执行卷积运算过程中,上述动态调压调频装置7实时获取上述神经网络处理器的数据访问单元3和主运算模块5的运行速度。当上述动态调压调频装置7根据上述数据访问单元3和主运算模块5的运行速度确定上述数据访问单元3的运行时间超过上述主运算模块5的运行时间,上述动态调压调频装置7可确定在进行卷积运算过程中,上述数据访问单元3成为了瓶颈,上述主运算模块5执行完当前的卷积运算操作后,需要等待上述数据访问单元3执行完读取任务并将其读取的数据传输至上述主运算模块5,该主运算模块5才能根据此次上述数据访问单元3传输过来的数据进行卷积运算操作。上述动态调压调频装置7向上述主运算模块5发送第一电压频率调控信息,该第一电压频率调控信息用于指示上述主运算模块5降低其工作电压或者工作频率,以降低该主运算模块5的运行速度,使得上述主运算模块5的运行速度与上述数据访问单元3的运行速度相匹配,降低了上述主运算模块5的功耗,避免主运算模块5空闲的情况发生,最终使得在不影响任务的完成时间的情况下,降低了上述神经网络处理器整体的运行功耗。
情形二、上述神经网络处理器在执行卷积运算过程中,上述动态调压调频装置7实时获取上述神经网络处理器的数据访问单元3和主运算模块5的运行速度。当上述动态调压调频装置3根据上述数据访问单元3和主运算模块5的运行速度确定上述主运算模块5的运行时间超过上述数据访问单元3的运行时间,上述动态调压调频装置7可确定在进行卷积运算过程中,上述主运算模块5成为了瓶颈,上述数据访问单元3执行完当前的数据读取操作后,需要等待上主运算模块5执行当前的卷积运算操作后,上述数据访问单元3才将其读取的数据传输至上述主运算模块5。上述动态调压调频装置7向上述数据访问单元3发送第二电压频率调控信息,该第二电压频率调控信息用于指示上述数据访问单元3降低其工作电压或者工作频率,以降低该数据访问单元3的运行速度,使得上述数据访问单元3的运行速度与上述主运算模块5的运行速度相匹配,降低了上述数据访问单元3的功耗,并避免数据访问单元3空闲的情况发生,最终使得在不影响任务的完成时间的情况下,降低了上述神经网络处理器整体的运行功耗。
上述神经网络处理器执行人工神经网络运算,进行人工智能应用的时候,上述动态调压调频装置7实时采集上述神经网络处理器进行人工智能应用的的工作参数并根据该工作参数调整上述神经网络处理器的工作电压或工作频率。
具体地,上述人工智能应用可以是视频图像处理,物体识别、机器翻译、语音识别和图像美颜等等。
情形三、上述神经网络处理器进行视频图像处理时,上述动态调压调频装置7实时采集上述神经网络处理器进行视频图像处理的帧率。当该视频图像处理的帧率超过目标帧率时,该目标帧率为用户正常需求的视频图像处理帧率,上述动态调压调频装置7向上述神经网络处理器发送第三电压频率调控信息,该第三电压频率调控信息用于指示上述神经网络处理器降低其工作电压或者工作频率,在满足了用户正常视频图像处理需求的同时也降低了上述神经网络处理器的功耗。
情形四、上述神经网络处理器进行语音识别时,上述动态调压调频装置7实时采集上述神经网络处理器的语音识别速度。当上述神经网络处理器的语音识别速度超过用户实际语音识别速度时,上述动态调压调频装置7向上述神经网络处理器发送第四电压频率调控信息,该第四电压频率调控信息用于指示上述神经网络处理器降低其工作电压或者工作频率,在满足了用户正常语音识别需求的同时也降低了上述神经网络处理器的功耗。
情形五、上述动态调压调频装置7实时监控并获取上述神经网络处理器中各单元或者模块(包括指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和N个从运算模块6)的工作状态信息。当上述神经网络处理器中各单元或者模块任一单元或者模块处于空闲状态时,上述动态调压调频装置向该单元或者模块发送第五电压频率调控信息,以降低该单元或者模块的工作电压或者工作频率,以进而降低该单元或者模块的功耗。当该单元或者模块重新处于工作状态时,上述动态调压调频装置向该单元或者模块发送第六电压频率调控信息,以升高该单元或者模块的工作电压或者工作频率,以使该单元或者模块的运行速度满足工作需求。
图5示意性示出了互连模块4的一种实施方式:H树模块。互连模块4构成主运算模块5和多个从运算模块6之间的数据通路,是由多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据进行合并,并返回给上游的节点。例如,在卷积神经网络开始计算阶段,主运算模块5内的神经元数据通过互连模块4发送给各个从运算模块6;当从运算模块6的计算过程完成后,当从运算模块的计算过程完成后,每个从运算模块输出的神经元的值会在互连模块中逐级拼成一个完整的由神经元组成的向量。举例说明,假设装置中共有N个从运算模块,则输入数据xi被发送到N个从运算模块,每个从运算模块将输入数据xi与该从运算模块相应的卷积核做卷积运算,得到一标量数据,各从运算模块的标量数据被互连模块4合并成一个含有N个元素的中间向量。假设卷积窗口总共遍历得到A*B个(X方向为A个,Y方向为B个,X、Y为三维正交坐标系的坐标轴)输入数据xi,则对A*B个xi执行上述卷积操作,得到的所有向量在主运算模块中合并得到A*B*N的三维中间结果。
图2示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中主运算模块5的结构的示例框图。如图2所示,主运算模块5包括第一运算单元51、第一数据依赖关系判定单元52和第一存储单元53。
其中,第一运算单元51包括向量加法单元511以及激活单元512。第一运算单元51接收来自控制器单元的控制信号,完成主运算模块5的各种运算功能,向量加法单元511用于实现卷积神经网络正向计算中的加偏置操作,该部件将偏置数据与所述中间结果对位相加得到偏置结果,激活运算单元512对偏置结果执行激活函数操作。所述偏置数据可以是从外部地址空间读入的,也可以是存储在本地的。
第一数据依赖关系判定单元52是第一运算单元51读写第一存储单元53的端口,保证第一存储单元53中数据的读写一致性。同时,第一数据依赖关系判定单元52也负责将从第一存储单元53读取的数据通过互连模块4发送给从运算模块,而从运算模块6的输出数据通过互连模块4直接发送给第一运算单元51。控制器单元2输出的指令发送给计算单元51和第一数据依赖关系判定单元52,来控制其行为。
存储单元53用于缓存主运算模块5在计算过程中用到的输入数据和输出数据。
图3示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中从运算模块6的结构的示例框图。如图3所示,每个从运算模块6包括第二运算单元61、第二数据依赖关系判定单元62、第二存储单元63和第三存储单元64。
第二运算单元61接收控制器单元2发出的控制信号并进行卷积运算。第二运算单元包括向量乘单元611和累加单元612,分别负责卷积运算中的向量乘运算和累加运算。
第二数据依赖关系判定单元62负责计算过程中对第二存储单元63的读写操作。第二数据依赖关系判定单元62执行读写操作之前会首先保证指令之间所用的数据不存在读写一致性冲突。例如,所有发往数据依赖关系单元62的控制信号都会被存入数据依赖关系单元62内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行。
第二存储单元63缓存该从运算模块6的输入数据和输出标量数据。
第三存储单元64缓存该从运算模块6在计算过程中需要的卷积核数据。
可以看出,在本发明实施例的方案中,卷积运算装置中的动态调压调频装置实时采集获取上述卷积运算及其内部其他单元/模块的工作状态信息,并根据根据卷积运算装置及其内部其他单元/模块的工作状态信息来调整卷积运算装置及其内部单元/模块的工作频率或者工作电压,以达到降低卷积运算装置在进行卷积运算过程中的整体运行功耗。
在一种可行的实施例中,本发明实施例提供了一种神经网络处理器,其包括了上述卷积运算装置。
上述神经网络处理器用于执行人工神经网络运算,实现语音识别,图像识别,翻译等人工智能的应用。
在一种具体的应用场景中,在行卷积计算任务中,上述动态调压调频装置7的工作过程如下:
上述动态调压调频装置7的信息采集单元71实时采集与所述动态调压调频相连接的神经网络处理器的工作状态信息或应用场景信息,所述应用场景信息为上述神经网络处理器通过神经网络运算得到的或者与所述神经网络处理器相连接的传感器采集的信息;上述动态调压调频装置7的调压调频单元72根据所述神经网络处理器的工作状态信息或应用场景信息向所述神经网络处理器发送电压频率调控信息,所述电压频率调控信息用于指示所述神经网络处理器调整其工作电压或者工作频率。
在一种可行的实施例中,所述神经网络处理器的工作状态信息包括所述神经网络处理器的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述调压调频单元72用于:
当所述神经网络处理器的运行速度大于目标速度时,向所述神经网络处理器发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述神经网络处理器降低其工作频率或者工作电压,所述目标速度为满足用户需求时所述神经网络处理器的运行速度。
具体地,上述信息采集单元71实时采集与其连接的神经网络处理器的运行速度。该神经网络处理器的运行速度根据上述神经网络处理器执行任务的不同可为不同类型的速度。当该神经网络处理器进行的操作为视频图像处理时,则上述神经网络处理器的运行速度可为上述神经网络处理器进行视频图像处理的帧率;当上述神经网络处理器进行的操作为语音识别时,则上述神经网络处理器的运行速度为上述信息进行语音识别的速度。上述调压调频单元72确定上述神经网络处理器的运行速度大于上述目标速度即上述神经网络处理器的运行速度达到满足用户需求时该神经网络处理器的运行速度时,向该神经网络处理器发送第一电压频率调控信息,以指示该神经网络处理器降低其工作电压或者工作频率,以降低神经网络处理器的功耗。
举例说明,假设上述神经网络处理器进行的操作为视频图像处理,且上述目标速度为24帧/秒。上述信息采集单元71实时采集上述神经网络处理器进行视频图像处理的帧率,且当前上述神经网络处理器进行视频图像处理的帧率为54帧/秒。上述调压调频单元确定当前上述神经网络处理器进行视频图像处理的帧率大于上述目标速度时,向该神经网络处理器发送第一电压频率调控信息,以指示该神经网络处理器降低其工作电压或者工作频率,以降低神经网络处理器的功耗。
在一种可行的实施例中,所述神经网络处理器至少包括第一单元和第二单元,所述第一单元的输出数据为所述第二单元的输入数据,所述神经网络处理器的工作状态信息包括所述第一单元的运行速度和第二单元的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述调频调压单元72还用于:
当根据所述第一单元的运行速度和所述第二单元的运行速度确定所述第一单元的运行时间超过所述第二单元的运行时间时,向所述第二单元发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述第二单元降低其工作频率或者工作电压。
具体地,上述神经网络处理器执行任务需要上述第一单元和上述第二单元的配合,并且上述第一单元的输出数据为上述第二单元的输入数据。上述信息采集单元71实时采集上述第一单元和上述第二单元的运行速度。当确定上述第一单元的运行速度小于上述第二单元的运行速度即上述第一单元的运行时间超过上述第二单元的运行时间时,上述调压调频单元72向上述第二单元发送上述第二电压频率调控信息,以指示上述第二单元降低其工作电压或者工作频率,达到在不影响神经网络处理器整体的运行速度的前提下,达到降低该神经网络处理器整体的功耗。
在一种可行的实施例中,所述电压频率调控信息包括第三电压频率调控信息,所述调频调压单元72还用于:
当根据所述第一单元的运行速度和所述第二单元的运行速度确定所述第二单元的运行时间超过所述第一单元的运行时间时,向所述第一单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述第一单元降低其工作频率或者工作电压。
具体地,上述神经网络处理器执行任务需要上述第一单元和上述第二单元的配合,并且上述第一单元的输出数据为上述第二单元的输入数据。上述信息采集单元71实时采集上述第一单元和上述第二单元的运行速度。当确定上述第一单元的运行速度大于上述第二单元的运行速度即上述第二单元的运行时间超过上述第一单元的运行时间时,上述调压调频单元72向上述第一单元发送上述第三电压频率调控信息,以指示上述第一单元降低其工作电压或者工作频率,达到在不影响神经网络处理器整体的运行速度的前提下,达到降低神经网络处理器整体的功耗。
在一种可行的实施例中,所述神经网络处理器包括至少N个单元,所述神经网络处理器的工作状态信息包括所述至少S个单元的工作状态信息,所述N为大于1的整数,所述S为小于或者小于N的整数,所述电压频率调控信息包括第四电压频率调控信息,所述调压调频单元72用于:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元中的任意一个。
在一种可行的实施例中,所述电压频率调控信息包括第五电压频率调控信息,所述调压调频单元72还用于:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
具体地,在上述神经网络处理器工作过程中,上述信息采集单元71实时采集上述神经网络处理器内部至少S个单元的工作状态信息。当根据上述单元A的工作状态信息确定该单元A处于空闲状态时,上述调压调频单元72向上述单元A发送第四电压频率调控信息,以指示该单元A降低其工作频率或者工作电压,以降低该单元A的功耗;当根据上述单元A的工作状态信息确定该单元A重新处于工作状态时,上述调压调频单元72向上述单元A发送第五电压频率调控信息,以指示该单元A升高其工作频率或者工作电压,以使该单元A的运行速度满足工作的需求。
在一种可行的实施例中,所述神经网络处理器的应用场景为图像识别,所述应用场景信息为待识别图像中物体的个数,所述电压频率调控信息包括第六电压频率调控信息,所述调压调频单元72还用于:
当确定所述待识别图像中物体的个数小于第一阈值时,向所述神经网络处理器发送所述第六电压频率调控信息,该第六电压频率调控信息用于指示所述神经网络处理器降低其工作电压或者工作频率。
具体地,上述神经网络处理器应用于图像识别,上述待识别图像中物体的个数为上述神经网络处理器通过神经网络算法得到,上述信息采集单元101从上述神经网络处理器中获取上述待识别图像中物体的个数(即上述应用场景信息)后,当上述调压调频单元72确定上述待识别图像中物体的个数小于第一阈值时,该调压调频单元72向上述神经网络处理器发送上述第六电压频率调控信息,以指示上述神经网络处理器降低其工作电压或者工作频率;当确定上述待识别图像中物体的个数大于第一阈值时,该调压调频单元72向上述神经网络处理器发送用于指示上述神经网络处理器升高其工作电压或者工作频率的电压频率调控信息。
在一种可行的实施例中,所述应用场景信息为物体标签信息,所述电压频率调控信息包括第七电压频率调控信息,所述调压调频单元72还用于:
当确定所述物体标签信息属于预设物体标签集时,向所述神经网络处理器发送所述第七电压频率调控信息,所述第七电压频率调控信息用于指示所述芯神经网络处理器升高其工作电压或者工作频率。
举例说明,上述预设物体标签集包括多个物体标签,该物体标签可为“人”、“狗”、“树”和“花”。当上述神经网络处理器通过神经网络算法确定当前应用场景中包括狗时,该神经网络处理器将该包括“狗”这个物体标签信息传输至上述信息采集单元71后,当上述调频调压单元72确定上述物体标签信息包括“狗”时,向上述神经网络处理器发送第七电压频率调控信息,以指示上述神经网络处理器升高其工作电压或者工作频率;当确定上述物体标签信息不属于上述预设物体标签集时,该调压调频单元72向上述神经网络处理器发送用于指示上述神经网络处理器降低其工作电压或者工作频率的电压频率调控信息。
在一种可行的实施例中,所述神经网络处理器应用于语音识别,所述应用场景信息为语音输入速率,所述电压频率调控信息包括第八电压频率调控信息,所述调压调频单元还用于:
当所述语音输入速率小于第二阈值时,向所述神经网络处理器发送第八电压频率调控信息,所述第八电压频率调控信息用于指示所述神经网络处理器降低其工作电压或者工作频率。
具体地,上述神经网络处理器的应用场景为语音识别,该神经网络处理器的输入单元按照一定的速率向神经网络处理器输入语音。上述信息采集单元71实时采集语音输入速率,并将该语音输入速率信息发送至上述调压调频单元72。当该调压调频单元72确定上述语音输入速率小于第二阈值时,向上述神经网络处理器发送第八电压频率调控信息,以指示该神经网络处理器降低其工作电压或者工作频率。当该调压调频单元72确定上述语音输入速率大于第二阈值时,向上述神经网络处理器发送用于指示上述神经网络处理器升高其工作电压的电压频率调控信息。
在一种可行的实施例中,所述应用场景信息为所述神经网络处理器进行语音识别得到的关键词,所述电压频率调控信息包括第九电压频率调控信息,所述调频调压单元还用于:
当所述关键词属于预设关键词集时,向所述神经网络处理器发送所述第九电压频率调控信息,所述第九电压频率调控信息用于指示所述神经网络处理器升高其工作电压或者工作频率。
进一步地,当上述关键词不属于上述关键词集时,上述调频调压单元72向上述神经网络处理器发送用于指示上述神经网络处理器降低其工作电压或者工作频率的调压调频信息。
举例说明,上述神经网络处理器的应用场景为语音识别,上述预设关键词集包括“图像美颜”、“神经网络算法”、“图像处理”和“支付宝”等等关键词。假设上述应用场景信息为“图像美颜”,上述调频调压单元72向上述发送上述第九电压频率调控信息,以用于指示上述神经网络处理器升高其工作电压或者工作频率;假设上述应用场景信息为“拍照”时,上述调频调压单元72向上述神经网络处理器发送用于指示上述神经网络处理器降低其工作电压或者工作频率的调压调频信息。
在一种可行的实施例中,所述神经网络处理器应用于机器翻译,所述应用场景信息为文字输入的速度或者待翻译图像中文字的数量,所述电压频率调控信息包括第十电压频率调控信息,所述调压调频单元还用于:
当所述文字输入速度小于第三阈值或者待翻译图像中文字的数量小于第四阈值时,向所述神经网络处理器发送所述第十电压频率调控信息,所述第十电压频率调控信息用于指示所述神经网络处理器降低其工作电压或者工作频率。
具体地,上述神经网络处理器应用于机器翻译,上述信息采集单元71采集的应用场景信息为文字输入的速度或者待翻译图像中文字的数量,并将该应用场景信息传输至上述调压调频单元72。当确定上述文字输入速度小于第三阈值或者待翻译图像中文字的数量小于第四阈值时,上述调压调频单元72向上述神经网络处理器发送第十电压频率调控信息,以用于指示上述神经网络处理器降低其工作电压;当确定上述文字输入速度大于第三阈值或者待翻译图像中文字的数量大于第四阈值时,上述调压调频单元72向上述神经网络处理器发送用于指示上述神经网络处理器升高其工作电压的电压频率调控信息。
在一种可行的实施例中,所述应用场景信息为外界的光照强度,所述电压频率调控信息包括第十一电压频率调控信息,所述调压调频单元还用于:
当所述外界的光照强度小于第五阈值时,向所述神经网络处理器发送所述第十一电压频率调控信息,所述第十一电压频率调控信息用于指示所述神经网络处理器降低其工作电压或者工作频率。
具体地,上述外界的光照强度为与上述神经网络处理器连接的光照传感器采集获取的。上述信息采集单元71获取上述光照强度后,将该光照强度传输至上述调压调频单元72。当确定上述光照强度小于第五阈值时,上述调压调频单元72向上述神经网络处理器发送上述第十一电压频率调控信息,以指示所述神经网络处理器降低其工作电压;当确定上述光照强度大于第五阈值时,上述调压调频单元72向神经网络处理器发送用于指示该神经网络处理器升高其工作电压或者工作频率的电压频率调控信息。
在一种可行的实施例中,所述神经网络处理器应用于图像美颜,所述电压频率调控信息包括第十二电压频率调控信息和第十三电压频偏调控信息,所述调压调频单元还用于:
当所述应用场景信息为人脸图像时,向所述神经网络处理器发送所述第十二电压频率调控信息,所述第十二电压频率调控信息用于指示所述神经网络处理器升高其工作电压或者工作频率;
当所述应用场景信息不为人脸图像时,向所述神经网络处理器所述发送第十三电压频率调控信息,所述第十三电压频率调控信息用于指示所述神经网络处理器降低其工作电压或者工作频率。
在一种可行的实施例中,上述神经网络处理器应用于语音识别,上述应用场景信息为语音强度,当上述语音强度大于第六阈值时,上述调压调频单元72向上述神经网络处理器发送用于指示上述神经网络处理器降低其工作电压或者工作频率的电压频率调控信息;当上述语音强度小于第六阈值时,上述调压调频单元72向上述神经网络处理器发送用于指示该神经网络处理器升高其工作电压或者工作频率的电压频率调控信息。
需要说明的是,上述场景信息可以是传感器采集到的外部场景的信息如光照强度,语音强度等。上述应用场景信息也可以是根据人工智能算法计算出的信息,例如在物体识别任务中,神经网络处理器的实时计算结果信息将反馈给信息采集单元,所述信息包括场景中物体个数、人脸图像、物体标签关键词等信息。
可选地,上述人工智能算法包括但不限于神经网络算法。
在另一个具体的应用场景中,参见图6,图6为本发明实施例提供的另一种卷积运算装置的结构示意图。如图6所示,该卷积运算装置包括动态调压调频装置617、寄存器单元612、互连模块613、运算单元614、控制单元615和数据访问单元616。
其中,运算单元614包括加法计算器、乘法计算器、比较器和激活运算器中的至少二种。
互连模块613,用于控制运算单元614中计算器的连接关系使得该至少二种计算器组成不同的计算拓扑结构。
寄存器单元612(可以是寄存器单元,指令缓存,高速暂存存储器),用于存储该运算指令、数据块的在存储介质的地址、运算指令对应的计算拓扑结构。
可选地,上述卷积运算装置还包括存储介质611。
存储介质611可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据块,该数据块具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维数据。
控制单元615,用于从寄存器单元612内提取运算指令、该运算指令对应的操作域以及该运算指令对应的第一计算拓扑结构,将该运算指令译码成执行指令,该执行指令用于控制运算单元614执行运算操作,将该操作域传输至数据访问单元616,将该计算拓扑结构传输至互连模块613。
数据访问单元616,用于从存储介质611中提取该操作域对应的数据块,并将该数据块传输至互连模块613。
互连模块613、用于接收第一计算拓扑结构的数据块。
在一种可行的实施例中,上述互连模块613还根据第一计算拓扑结构对数据块重新摆放。
运算单元614,用于该执行指令调用运算单元614的计算器对该数据块执行运算操作得到运算结果,将该运算结果传输至数据访问单元616并存储在存储介质612内。
在一种可行的实施例中,上述运算单元614还用于按第一计算拓扑结构以及该执行指令调用计算器对重新摆放的数据块执行运算操作得到运算结果,将该运算结果传输至数据访问单元616并存储在存储介质612内。
在另一种可行的实施例中,上述互连模块613还用于依据控制运算单元614中计算器的连接关系形成第一计算拓扑结构。
动态调压调频装置617用于监控整个卷积运算装置的工作状态并对其电压和频率进行动态调控。
下面通过不同的运算指令来说明上述卷积运算装置的具体计算方法,这里的运算指令以卷积计算指令为例,该卷积计算指令可以应用在神经网络中,所以该卷积计算指令也可以称为卷积神经网络。对于卷积计算指令来说,其实际需要执行的公式可以为:
s=s(Σwxi+b)
其中,即将卷积核w(可包括多个数据)乘以输入数据xi,进行求和,然后可选地可加上偏置b,然后可选地还可做激活运算s(h),得到最终的输出结果s。依据该公式即可以得到该计算拓扑结构为,乘法运算器-加法运算器-(可选的)激活运算器。上述卷积计算指令可以包括指令集,该指令集包含有不同功能的卷积神经网络COMPUTE指令以及CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令。
在一种实施例中,COMPUTE指令包括:
卷积运算指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作。
卷积神经网络sigmoid指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活;
卷积神经网络TanH指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活;
卷积神经网络ReLU指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活;以及
卷积神经网络group指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,优选的,然后将输出结果做激活。
CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数。
IO指令实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间。
NOP指令负责清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作;
JUMP指令负责控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
上述卷积运算装置执行卷积计算指令的方法具体可以为:
控制单元615从寄存器单元312内提取卷积计算指令、卷积计算指令对应的操作域以及卷积计算指令对应的第一计算拓扑结构(乘法运算器-加法运算器-加法运算器-激活运算器),控制单元将该操作域传输至数据访问单元,将该第一计算拓扑结构传输至互联模块。
数据访问单元616从存储介质611内提取该操作域对应的卷积核w和偏置b(当b为0时,不需要提取偏置b),将卷积核w和偏置b传输至运算单元614。
运算单元614的乘法运算器将卷积核w与输入数据Xi执行乘法运算以后得到第一结果,将第一结果输入到加法运算器执行加法运算得到第二结果,将第二结果和偏置b执行加法运算得到第三结果,将第三结果输到激活运算器执行激活运算得到输出结果s,将输出结果s传输至数据访问单元存储至存储介质内。其中,每个步骤后都可以直接输出结果传输到数据访问存储至存储介质内,无需下面的步骤。另外,将第二结果和偏置b执行加法运算得到第三结果这一步骤可选,即当b为0时,不需要这个步骤。另外,加法运算和乘法运算的顺序可以调换。
可选地,上述第一结果可包括多个乘法运算的结果。
在一种可行的实施例中,本发明实施例提供了一种神经网络处理器,其包括了上述卷积运算装置。
上述神经网络处理器用于执行人工神经网络运算,实现语音识别,图像识别,翻译等人工智能的应用。
在这个卷积计算任务中,上述动态调压调频装置617的工作过程如下:
情形一、上述神经网络处理器在执行卷积运算过程中,上述动态调压调频装置617实时获取上述神经网络处理器的数据访问单元616和运算单元614的运行速度。当上述动态调压调频装置617根据上述数据访问单元616和运算单元614的运行速度确定上述数据访问单元616的运行时间超过上述运算单元614的运行时间,上述动态调压调频装置617可确定在进行卷积运算过程中,上述数据访问单元616成为了瓶颈,上述运算单元614执行完当前的卷积运算操作后,需要等待上述数据访问单元616执行完读取任务并将其读取的数据传输至上述运算单元614,该运算单元614才能根据此次上述数据访问单元616传输过来的数据进行卷积运算操作。上述动态调压调频装置617向上述运算单元614发送第一电压频率调控信息,该第一电压频率调控信息用于指示上述运算单元614降低其工作电压或者工作频率,以降低该运算单元614的运行速度,使得上述运算单元614的运行速度与上述数据访问单元616的运行速度相匹配,降低了上述运算单元614的功耗,避免运算单元614空闲的情况发生,最终使得在不影响任务的完成时间的情况下,降低了上述神经网络处理器整体的运行功耗。
情形二、上述神经网络处理器在执行卷积运算过程中,上述动态调压调频装置617实时获取上述神经网络处理器的数据访问单元616和运算单元614的运行速度。当上述动态调压调频装置617根据上述数据访问单元616和运算单元614的运行速度确定上述运算单元614的运行时间超过上述数据访问单元616的运行时间,上述动态调压调频装置617可确定在进行卷积运算过程中,上述运算单元614成为了瓶颈,上述数据访问单元616执行完当前的数据读取操作后,需要等待上运算单元614执行当前的卷积运算操作后,上述数据访问单元616才将其读取的数据传输至上述运算单元614。上述动态调压调频装置617向上述数据访问单元616发送第二电压频率调控信息,该第二电压频率调控信息用于指示上述数据访问单元616降低其工作电压或者工作频率,以降低该数据访问单元616的运行速度,使得上述数据访问单元616的运行速度与上述预算单元614的运行速度相匹配,降低了上述数据访问单元616的功耗,并避免数据访问单元616空闲的情况发生,最终使得在不影响任务的完成时间的情况下,降低了上述神经网络处理器整体的运行功耗。
上述神经网络处理器执行人工神经网络运算,进行人工智能应用的时候,上述动态调压调频装置617实时采集上述神经网络处理器进行人工智能应用的的工作参数,并根据该工作参数调整上述神经网络处理器的工作电压或工作频率。
具体地,上述人工智能应用可以是视频图像处理,物体识别、机器翻译、语音识别和图像美颜等等。
情形三、上述神经网络处理器进行视频图像处理时,上述动态调压调频装置617实时采集上述神经网络处理器进行视频图像处理的帧率。当该视频图像处理的帧率超过目标帧率时,该目标帧率为用户正常需求的视频图像处理帧率,上述动态调压调频装置617向上述神经网络处理器发送第三电压频率调控信息,该第三电压频率调控信息用于指示上述神经网络处理器降低其工作电压或者工作频率,在满足了用户正常视频图像处理需求的同时也降低了上述神经网络处理器的功耗。
情形四、上述神经网络处理器进行语音识别时,上述动态调压调频装置617实时采集上述神经网络处理器的语音识别速度。当上述神经网络处理器的语音识别速度超过用户实际语音识别速度时,上述动态调压调频装置617向上述神经网络处理器发送第四电压频率调控信息,该第四电压频率调控信息用于指示上述神经网络处理器降低其工作电压或者工作频率,在满足了用户正常语音识别需求的同时也降低了上述神经网络处理器的功耗。
情形五、上述动态调压调频装置617实时监控上述神经网络处理器中各单元或者模块(包括存储介质611、寄存器单元612、互连模块613、运算单元614、控制器单元615、数据访问单元616)的工作状态。当上述神经网络处理器中各单元或者模块任一单元或者模块处于空闲状态时,上述动态调压调频装置向该单元或者模块发送第五电压频率调控信息,以降低该单元或者模块的工作电压或者工作频率,以进而降低该单元或者模块的功耗。当该单元或者模块重新处于工作状态时,上述动态调压调频装置向该单元或者模块发送第六电压频率调控信息,以升高该单元或者模块的工作电压或者工作频率,以使该单元或者模块的运行速度满足工作需求。
需要说明的是,上述各单元或者模块都可以是电路,包括数字电路,模拟电路等等。上述各单元或者模块结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。上述芯片或上述神经网络处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如阻变式随机存取存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(StaticRandom Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic RandomAccess Memory,EDRAM)、高宽带存储器(High Bandwidth Memory,HBM)、混合存储器立方(Hybrid Memory Cube,HMC)等等
在一种可行的实施例中,本发明实施例提供了一种芯片封装结构,其包括了上述神经网络处理器。
在一种可行的实施例中,本发明实施例提供了一种板卡,其包括了上述芯片封装结构。
在一种可行的实施例中,本发明实施例提供了一种电子装置,其包括了上述板卡。
上述电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
上述交通工具包括飞机、轮船和/或车辆;上述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;上述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
参见图7,图7为本发明实施例提供的用于执行单层卷积神经网络正向运方法的流程示意图,该方法应用于上述卷积运算装置中。如图7所示,该方法包括:
S701、在指令存储单元的首地址处预先存入一条输入输出IO指令;
S702、运算开始,控制器单元从所述指令存储单元的首地址读取所述IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取相应的所有卷积神经网络运算指令,并将其缓存在所述指令存储单元中;
S703、所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取主运算模块需要的所有数据至所述主运算模块的第一存储单元;
S704、所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取从运算模块需要的卷积核数据;
S705、所述控制器单元接着从所述指令存储单元读入下一条CONFIG指令,根据译出的控制信号,所述卷积运算装置配置该层神经网络计算需要的各种常数;
S706、所述控制器单元接着从所述指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,所述主运算模块首先通过互连模块将卷积窗口内的输入数据发给N个从运算模块,保存至所述N个从运算模块的第二存储单元,之后,在依据指令移动卷积窗口;
S707、根据COMPUTE指令译出的控制信号,所述N个从运算模块的运算单元从第三存储单元读取卷积核,从所述第二存储单元读取输入数据,完成输入数据和卷积核的卷积运算,将得到的输出标量通过所述互连模块返回;
S708、在所述互连模块中,所述N个从运算模块返回的输出标量被逐级拼成完整的中间向量;
S709、所述主运算模块得到互连模块返回的中间向量,卷积窗口遍历所有输入数据,所述主运算模块将所有返回向量拼接成中间结果,根据COMPUTE指令译出的控制信号,从第一存储单元读取偏置数据,与中间结果通过向量加单元相加得到偏置结果,然后激活单元对偏置结果做激活,并将最后的输出数据写回至所述第一存储单元中;
S710、所述控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元将所述第一存储单元中的输出数据存至外部地址空间指定地址,运算结束。
可选地,所述方法还包括:
实时采集所述卷积运算装置的工作状态信息;
根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或工作频率。
可选地,所述卷积运算装置的工作状态信息包括所述卷积运算装置的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息包括:
当所述卷积运算装置的运行速度大于目标速度时,向所述卷积运算装置发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时所述芯片的运行速度。
可选地,所述卷积运算装置的工作状态信息包括所述数据访问单元的运行速度和主运算单元的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述数据访问单元的运行时间超过所述主运算单元的运行时间时,向所述主运算单元发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述主运算单元降低其工作频率或者工作电压。
可选地,所述电压频率调控信息包括第三电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述主运算单元的运行时间超过所述数据访问单元的运行时间时,向所述数据访问单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述数据访问单元降低其工作频率或者工作电压。
可选地,所述卷积运算装置的工作状态信息包括所述指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块及N个从运算模块中至少S个单元/模块的工作状态信息,所述S为大于1且小于或等于N+5的整数,所述电压频率调控信息包括第四电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元/模块中的任意一个。
可选地,所述电压频率调控信息包括第五电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
需要说明的是,上述方法实施例的具体实现过程可参见图1-6所示实施例的相关描述,在此不再叙述。
在一种可行的实施例中,本发明实施例了一种用于执行多层卷积神经网络正向运算的方法,包括:
对每一层执行如图7所示实施例的方法,当上一层卷积神经网络执行完毕后,本层的运算指令将主运算模块中存储的上一层的输出数据地址作为本层的输入数据地址,并且指令中的卷积核和偏置数据地址变更至本层对应的地址。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可以采用硬件的形式实现。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

Claims (25)

1.一种卷积运算装置,其特征在于,包括动态调压调频装置、指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块以及N个从运算模块,所述N为大于1的整数,其中:
所述指令存储单元,用于存储所述数据访问单元读入的指令;
所述控制器单元,用于从所述指令存储单元中读取指令,将该指令译成控制其他模块行为的控制信号,所述其他模块包括所述数据访问单元、所述主运算模块和所述N个从运算模块;
所述数据访问单元,用于执行外部地址空间与所述卷积运算装置之间的数据或指令读写操作;
所述N个从运算模块,用于实现卷积神经网络算法中的输入数据和卷积核的卷积运算;
所述互连模块,用于所述主运算模块和所述从运算模块之间的数据传输;
所述主运算模块,用于将所有输入数据的中间向量拼接成中间结果,并对所述中间结果执行后续运算;
所述动态调压调频装置,用于采集所述卷积运算装置的工作状态信息;根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或者工作频率。
2.根据权利要求1所述的卷积运算装置,其特征在于,所述主运算模块还用于:
将中间结果与偏置数据相加,然后执行激活操作。
3.根据权利要求1所述的卷积运算装置,其特征在于,所述N个从运算模块具体用于:
利用相同的输入数据和各自的卷积核,并行地计算出各自的输出标量。
4.根据权利要求1所述的卷积运算装置,其特征在于,所述主运算模块使用的激活函数active是非线性函数sigmoid,tanh,relu,softmax中的任一个或线性函数。
5.根据权利要求1所述的卷积运算装置,其特征在于,所述互连模块构成所述主运算模块和所述N个从运算模块之间的连续或离散化数据的数据通路,所述互连模块为树状结构、环状结构、网格状结构、分级互连和总线结构中的任一种结构。
6.根据权利要求1所述的卷积运算装置,其特征在于,所述主运算模块包括:
第一存储单元,用于缓存所述主运算模块在计算过程中用到的输入数据和输出数据;
第一运算单元,用于完成所述主运算模块的各种运算功能;
第一数据依赖关系判定单元,是第一运算单元读写第一存储单元的端口,用于保证对所述第一存储单元的数据读写的一致性,并且从所述第一存储单元读取输入的神经元向量,并通过所述互连模块发送给所述N个从运算模块;以及将来自所述互连模块的中间结果向量被发送到所述第一运算单元。
7.根据权利要求1所述的卷积运算装置,其特征在于,所述N个从运算模块中的每个从运算模块包括:
第二运算单元,用于接收所述控制器单元发出的控制信号并进行算数逻辑运算;
第二数据依赖关系判定单元,用于在计算过程中对第二存储单元和第三存储单元的读写操作,以保证对所述第二存储单元和所述第三存储单元的读写一致性;
所述第二存储单元,用于缓存输入数据以及该从运算模块计算得到的输出标量;
所述第三存储单元,用于缓存该从运算模块在计算过程中需要的卷积核。
8.根据权利要求6或7所述的卷积运算装置,其特征在于,所述第一数据依赖关系判定单元和所述第二数据依赖关系判定单元通过以下方式保证读写一致性:
判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该条控制信号立即发射,否则需要等到该条控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。
9.根据权利要求1所述的卷积运算装置,其特征在于,所述数据访问单元从外部地址空间读入输入数据、偏置数据和卷积核中的至少一个。
10.根据权利要求1所述的卷积运算装置,其特征在于,所述动态调压调频装置包括:
信息采集单元,用于实时采集所述卷积运算装置的工作状态信息;
调压调频单元,用于根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或者工作频率。
11.根据权利要求10所述的卷积运算装置,其特征在于,所述卷积运算装置的工作状态信息包括所述卷积运算装置的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述调压调频单元用于:
当所述卷积运算装置的运行速度大于目标速度时,向所述卷积运算装置发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时所述卷积运算装置的运行速度。
12.根据权利要求10所述的卷积运算装置,其特征在于,所述卷积运算装置的工作状态信息包括所述数据访问单元的运行速度和主运算单元的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述调压调频单元还用于:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述数据访问单元的运行时间超过所述主运算单元的运行时间时,向所述主运算单元发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述主运算单元降低其工作频率或者工作电压。
13.根据权利要求12所述的卷积运算装置,其特征在于,所述电压频率调控信息包括第三电压频率调控信息,所述调压调频单元还用于:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述主运算单元的运行时间超过所述数据访问单元的运行时间时,向所述数据访问单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述数据访问单元降低其工作频率或者工作电压。
14.根据权利要求12或13所述的卷积运算装置,其特征在于,所述卷积运算装置的工作状态信息包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块及N个从运算模块中至少S个单元/模块的工作状态信息,所述S为大于1且小于或等于N+5的整数,所述电压频率调控信息包括第四电压频率调控信息,所述调压调频单元用于:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元/模块中的任意一个。
15.根据权利要求14所述的卷积运算装置,其特征在于,所述电压频率调控信息包括第五电压频率调控信息,所述调压调频单元还用于:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
16.一种神经网络处理器,其特征在于,所述神经网络处理器包括如权利要求1-15任一项所述的卷积运算装置。
17.一种电子装置,其特征在于,所述电子装置包括如权利要求16所述的神经网络处理器。
18.一种用于执行单层卷积神经网络正向运算的方法,应用于如权利要求1-9任一项所述的卷积运算装置中,其特征在于,包括:
在指令存储单元的首地址处预先存入一条输入输出IO指令;
运算开始,控制器单元从所述指令存储单元的首地址读取所述IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取相应的所有卷积神经网络运算指令,并将其缓存在所述指令存储单元中;
所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取主运算模块需要的所有数据至所述主运算模块的第一存储单元;
所述控制器单元接着从所述指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元从外部地址空间读取从运算模块需要的卷积核数据;
所述控制器单元接着从所述指令存储单元读入下一条CONFIG指令,根据译出的控制信号,所述卷积运算装置配置单层卷积神经网络计算需要的各种常数;
所述控制器单元接着从所述指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,所述主运算模块首先通过互连模块将卷积窗口内的输入数据发给N个从运算模块,保存至所述N个从运算模块的第二存储单元,之后,在依据指令移动卷积窗口;
根据COMPUTE指令译出的控制信号,所述N个从运算模块的运算单元从第三存储单元读取卷积核,从所述第二存储单元读取输入数据,完成输入数据和卷积核的卷积运算,将得到的输出标量通过所述互连模块返回;
在所述互连模块中,所述N个从运算模块返回的输出标量被逐级拼成完整的中间向量;
所述主运算模块得到互连模块返回的中间向量,卷积窗口遍历所有输入数据,所述主运算模块将所有返回向量拼接成中间结果,根据COMPUTE指令译出的控制信号,从第一存储单元读取偏置数据,与中间结果通过向量加单元相加得到偏置结果,然后激活单元对偏置结果做激活,并将最后的输出数据写回至所述第一存储单元中;
所述控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,所述数据访问单元将所述第一存储单元中的输出数据存至外部地址空间指定地址,运算结束。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
实时采集所述卷积运算装置的工作状态信息;
根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息,所述电压频率调控信息用于指示所述卷积运算装置调整其工作电压或工作频率。
20.根据权利要求19所述的方法,其特征在于,所述卷积运算装置的工作状态信息包括所述卷积运算装置的运行速度,所述电压频率调控信息包括第一电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息包括:
当所述卷积运算装置的运行速度大于目标速度时,向所述卷积运算装置发送所述第一电压频率调控信息,所述第一电压频率调控信息用于指示所述卷积运算装置降低其工作频率或者工作电压,所述目标速度为满足用户需求时芯片的运行速度。
21.根据权利要求19所述的方法,其特征在于,所述卷积运算装置的工作状态信息包括所述数据访问单元的运行速度和主运算单元的运行速度,所述电压频率调控信息包括第二电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述数据访问单元的运行时间超过所述主运算单元的运行时间时,向所述主运算单元发送所述第二电压频率调控信息,所述第二电压频率调控信息用于指示所述主运算单元降低其工作频率或者工作电压。
22.根据权利要求21所述的方法,其特征在于,所述电压频率调控信息包括第三电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
当根据所述数据访问单元的运行速度和所述主运算单元的运行速度确定所述主运算单元的运行时间超过所述数据访问单元的运行时间时,向所述数据访问单元发送所述第三电压频率调控信息,所述第三电压频率调控信息用于指示所述数据访问单元降低其工作频率或者工作电压。
23.根据权利要求21或22所述的方法,其特征在于,所述卷积运算装置的工作状态信息包括所述指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块及N个从运算模块中至少S个单元/模块的工作状态信息,所述S为大于1且小于或等于N+5的整数,所述电压频率调控信息包括第四电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A处于空闲状态时,向所述单元A发送所述第四电压频率调控信息,所述第四电压频率调控信息用于指示所述单元A降低其工作频率或者工作电压,
其中,所述单元A为所述至少S个单元/模块中的任意一个。
24.根据权利要求23所述的方法,其特征在于,所述电压频率调控信息包括第五电压频率调控信息,所述根据所述卷积运算装置的工作状态信息向所述卷积运算装置发送电压频率调控信息还包括:
根据所述单元A的工作状态信息确定所述单元A重新处于工作状态时,向所述单元A发送所述第五电压频率调控信息,所述第五电压频率调控信息用于指示所述单元A升高其工作电压或者工作频率。
25.一种用于执行多层卷积神经网络正向运算的方法,其特征在于,包括:
对每一层执行如权利要求18所述的方法,当上一层卷积神经网络执行完毕后,本层的运算指令将主运算模块中存储的上一层的输出数据地址作为本层的输入数据地址,并且指令中的卷积核和偏置数据地址变更至本层对应的地址。
CN201711118938.3A 2017-10-20 2017-10-29 卷积运算装置和方法 Active CN109726353B (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
CN201711118938.3A CN109726353B (zh) 2017-10-29 2017-10-29 卷积运算装置和方法
KR1020197037566A KR102434728B1 (ko) 2017-10-20 2018-07-13 처리방법 및 장치
PCT/CN2018/095548 WO2019076095A1 (zh) 2017-10-20 2018-07-13 处理方法及装置
KR1020197023878A KR102434726B1 (ko) 2017-10-20 2018-07-13 처리방법 및 장치
KR1020197037574A KR102434729B1 (ko) 2017-10-20 2018-07-13 처리방법 및 장치
EP18868807.1A EP3627397B1 (en) 2017-10-20 2018-07-13 Processing method and apparatus
EP19215860.8A EP3660706B1 (en) 2017-10-20 2018-07-13 Convolutional operation device and method
EP19215859.0A EP3660628B1 (en) 2017-10-20 2018-07-13 Dynamic voltage frequency scaling device and method
US16/482,710 US11593658B2 (en) 2017-10-20 2018-07-13 Processing method and device
EP19215858.2A EP3667569A1 (en) 2017-10-20 2018-07-13 Processing method and device, operation method and device
US16/528,973 US10768685B2 (en) 2017-10-29 2019-08-01 Convolutional operation device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711118938.3A CN109726353B (zh) 2017-10-29 2017-10-29 卷积运算装置和方法
CN201711029543.6A CN109725700A (zh) 2017-10-29 2017-10-29 动态调压调频装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201711029543.6A Division CN109725700A (zh) 2017-10-20 2017-10-29 动态调压调频装置和方法

Publications (2)

Publication Number Publication Date
CN109726353A CN109726353A (zh) 2019-05-07
CN109726353B true CN109726353B (zh) 2023-08-29

Family

ID=66292436

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201711029543.6A Pending CN109725700A (zh) 2017-10-20 2017-10-29 动态调压调频装置和方法
CN201711118938.3A Active CN109726353B (zh) 2017-10-20 2017-10-29 卷积运算装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201711029543.6A Pending CN109725700A (zh) 2017-10-20 2017-10-29 动态调压调频装置和方法

Country Status (2)

Country Link
US (1) US10747292B2 (zh)
CN (2) CN109725700A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112446464B (zh) * 2019-08-31 2023-05-30 安徽寒武纪信息科技有限公司 一种神经网络卷积运算方法、装置以及相关产品
CN110908310B (zh) * 2019-12-03 2021-07-23 深圳开立生物医疗科技股份有限公司 一种控制器的时钟配置方法、系统及超声设备
CN111047037B (zh) * 2019-12-27 2024-05-24 北京市商汤科技开发有限公司 数据处理方法、装置、设备及存储介质
CN114185838B (zh) * 2020-09-15 2024-12-31 阿里巴巴集团控股有限公司 片上系统和调节电压和频率的方法
CN114185836B (zh) * 2020-09-15 2024-09-06 阿里巴巴集团控股有限公司 片上系统和调节电压和频率的方法
CN114301504B (zh) * 2021-12-20 2023-05-02 山东领能电子科技有限公司 基于dvfs的蓝牙基带芯片ip核架构及其工作方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS625780A (ja) * 1985-06-29 1987-01-12 Nec Home Electronics Ltd 偏向回路
WO2002033827A2 (en) * 2000-10-20 2002-04-25 University Of Southern California Sequential decoder for decoding of convolutional codes
CN1653709A (zh) * 2002-04-10 2005-08-10 纳诺特罗恩技术有限责任公司 发送-接收装置
CN101113936A (zh) * 2007-07-20 2008-01-30 广州市计量检测技术研究院 一种虚拟振动台检测信号处理方法及其设备
CN101576505A (zh) * 2008-04-21 2009-11-11 株式会社林创研 三维图像取得装置和利用该三维图像取得装置的加工装置
US7649927B1 (en) * 2006-12-29 2010-01-19 Kiomars Anvari Equalizer filter with dynamically configurable convolution filter
CN102570311A (zh) * 2012-02-24 2012-07-11 哈尔滨工业大学 可调谐窄带紫外激光发生装置及其发生方法
CN102944802A (zh) * 2012-12-12 2013-02-27 湖南大学 一种电压互感器动态频率响应函数估计方法及其实现装置
CN205619955U (zh) * 2016-02-24 2016-10-05 叶志刚 一种用于侦测蚊子的装置
CN107229598A (zh) * 2017-04-21 2017-10-03 东南大学 一种面向卷积神经网络的低功耗电压可调卷积运算模块

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642388A (en) * 1985-08-30 1987-02-10 Exxon Chemical Patents Inc. Rhodium catalyzed hydroformylation of alpha-substituted alpha-olefins
US6026150A (en) * 1997-10-30 2000-02-15 Epigram Network protocol--based home entertainment network
US7254208B2 (en) * 2003-05-20 2007-08-07 Motorola, Inc. Delay line based multiple frequency generator circuits for CDMA processing
CN1961498B (zh) * 2003-08-08 2012-04-18 北方电讯网络有限公司 通信信号均衡系统和方法
US7251300B2 (en) * 2003-12-22 2007-07-31 Spreadtrum Communications Corporation Method and apparatus for frequency tracking based on recovered data
JP2005223887A (ja) * 2004-01-06 2005-08-18 Pioneer Electronic Corp 音響特性調整装置
CN101866213B (zh) * 2010-07-23 2012-05-23 上海交通大学 Spm-dma结构的嵌入式系统的节能方法
CN103426453B (zh) * 2012-05-25 2015-12-16 华为技术有限公司 动态电压频率调节方法以及系统
CN103813218B (zh) * 2012-11-15 2017-09-19 中国电信股份有限公司 动态调整光线路终端设备工作状态的方法与装置
JP5942861B2 (ja) * 2013-01-11 2016-06-29 オムロン株式会社 画像処理装置、画像処理方法、および画像処理プログラム
CN105745593A (zh) * 2013-12-23 2016-07-06 马维尔以色列(M.I.S.L.)有限公司 用于对供电电压的变化作出反应的装置和方法
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
CN105119370B (zh) * 2015-07-27 2017-07-25 国网浙江省电力公司杭州供电公司 降低芯片系统功耗的方法、装置及智能变电站调试仪
EP3125072B8 (en) * 2015-07-29 2018-11-14 Samsung Electronics Co., Ltd. Method of managing power and electronic device
US20170147053A1 (en) * 2015-11-23 2017-05-25 Mediatek Inc. Application driven dynamic voltage and frequency scaling method and associated machine readable medium
CN106598731B (zh) * 2016-12-01 2019-11-19 上海交通大学 基于异构多核架构的运行时系统及其控制方法
CN107302664B (zh) * 2017-08-11 2020-06-16 维沃移动通信有限公司 一种拍摄方法及移动终端

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS625780A (ja) * 1985-06-29 1987-01-12 Nec Home Electronics Ltd 偏向回路
WO2002033827A2 (en) * 2000-10-20 2002-04-25 University Of Southern California Sequential decoder for decoding of convolutional codes
CN1653709A (zh) * 2002-04-10 2005-08-10 纳诺特罗恩技术有限责任公司 发送-接收装置
US7649927B1 (en) * 2006-12-29 2010-01-19 Kiomars Anvari Equalizer filter with dynamically configurable convolution filter
CN101113936A (zh) * 2007-07-20 2008-01-30 广州市计量检测技术研究院 一种虚拟振动台检测信号处理方法及其设备
CN101576505A (zh) * 2008-04-21 2009-11-11 株式会社林创研 三维图像取得装置和利用该三维图像取得装置的加工装置
CN102570311A (zh) * 2012-02-24 2012-07-11 哈尔滨工业大学 可调谐窄带紫外激光发生装置及其发生方法
CN102944802A (zh) * 2012-12-12 2013-02-27 湖南大学 一种电压互感器动态频率响应函数估计方法及其实现装置
CN205619955U (zh) * 2016-02-24 2016-10-05 叶志刚 一种用于侦测蚊子的装置
CN107229598A (zh) * 2017-04-21 2017-10-03 东南大学 一种面向卷积神经网络的低功耗电压可调卷积运算模块

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Carrier Frequency Offset Compensation for an Interleaved OFDMA Uplink;范达;曹志刚;;Tsinghua Science and Technology(第01期);全文 *

Also Published As

Publication number Publication date
US20190354156A1 (en) 2019-11-21
CN109726353A (zh) 2019-05-07
US10747292B2 (en) 2020-08-18
CN109725700A (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
CN109726353B (zh) 卷积运算装置和方法
EP3660706B1 (en) Convolutional operation device and method
CN107895191B (zh) 一种信息处理方法及相关产品
CN112840356B (zh) 运算加速器、处理方法及相关设备
EP3451157B1 (en) Device and method for performing forward operation of convolutional neural network
CN109032669B (zh) 神经网络处理装置及其执行向量最小值指令的方法
CN107315571B (zh) 一种用于执行全连接层神经网络正向运算的装置和方法
WO2020001438A1 (zh) 片上代码断点调试方法、片上处理器及芯片断点调试系统
CN109754062B (zh) 卷积扩展指令的执行方法以及相关产品
US20190354159A1 (en) Convolutional operation device and method
CN107402902A (zh) 一种异构计算平台与基于异构计算平台的加速方法
CN109670581B (zh) 一种计算装置及板卡
CN111047021B (zh) 一种计算装置及相关产品
CN113837922B (zh) 计算装置、数据处理方法及相关产品
CN111523656B (zh) 处理装置及方法
CN110472734B (zh) 一种计算装置及相关产品
CN112766475B (zh) 处理部件及人工智能处理器
CN109754061B (zh) 卷积扩展指令的执行方法以及相关产品
CN118277322B (zh) 边缘计算网关、处理器间通讯配置方法和装置
CN111291884A (zh) 神经网络剪枝方法、装置、电子设备及计算机可读介质
WO2020124948A1 (zh) 网络离线模型的处理方法、人工智能处理装置及相关产品
CN114692850A (zh) 对神经元数据执行Winograd卷积正变换的装置与板卡
WO2020173503A1 (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
TG01 Patent term adjustment
TG01 Patent term adjustment