CN112529170A - 神经网络处理器中的可变时钟自适应 - Google Patents
神经网络处理器中的可变时钟自适应 Download PDFInfo
- Publication number
- CN112529170A CN112529170A CN202010978759.2A CN202010978759A CN112529170A CN 112529170 A CN112529170 A CN 112529170A CN 202010978759 A CN202010978759 A CN 202010978759A CN 112529170 A CN112529170 A CN 112529170A
- Authority
- CN
- China
- Prior art keywords
- neural network
- frequency
- clock
- control word
- circuitry
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Power Sources (AREA)
Abstract
本公开的各实施例涉及神经网络处理器中的可变时钟自适应。提供了系统和设备,以经由计算驱动的闭环动态时钟控制来提高一个或多个神经网络的计算效率和/或功率效率。基于指示神经网络的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字。时钟生成器基于时钟频率控制字来生成神经网络的时钟信号。参考频率可以用于生成时钟频率控制字,并且参考频率可以基于指示训练帧的数据的稀疏性的信息。
Description
技术领域
本公开总体上涉及神经网络的功率和计算效率,更具体地但并非排他地,本公开涉及神经网络时钟的控制。
背景技术
已经采取了各种努力来提高各种类型的神经网络(包括递归神经网络(RNN)、深度神经网络(DNN)、卷积神经网络(CNN)、长短期记忆(LSTM)神经网络等)的计算效率和/或功率效率。当经由移动设备实现时,这种效率对于这种神经网络可能特别重要。通常,可以根据每秒万亿次运算(TOPS)来评估计算效率,TOPS是一种用于高性能神经网络系统的通用性能指标。每瓦TOPS(TOPS/W)扩大了该测量以描述性能效率。总体上,与神经网络片上系统(SOC)相关的TOPS/W越高,SOC的效率就越高。
发明内容
在一个实施例中,设备包括控制字生成电路系统,该控制字生成电路系统在操作中基于指示神经网络的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字。耦合到控制字生成电路系统的时钟生成器基于时钟频率控制字来生成神经网络时钟信号以供神经网络使用。
在一个实施例中,系统包括神经网络加速器电路系统和耦合到该神经网络加速器电路系统的闭环时钟速率控制电路系统。闭环时钟速率控制电路系统生成神经网络加速器电路系统的时钟信号,并且包括:控制字生成电路系统,该控制字生成电路系统在操作中基于指示神经网络加速器电路系统的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及时钟生成器,耦合到控制字生成电路系统。时钟生成器基于时钟频率控制字来生成神经网络加速器电路系统的时钟信号。
在一个实施例中,方法包括:使用神经网络加速器执行内核,以及在内核的执行期间执行神经网络加速器的操作频率的闭环时钟速率控制。闭环时钟速率控制包括:基于指示内核的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及基于时钟频率控制字来生成神经网络加速器电路系统的时钟信号。在一个实施例中,非暂时性计算机可读介质的内容配置了执行本文中所公开的一种或多种方法的神经网络加速器系统。
附图说明
图1A至图1D以图形方式描绘了由具有各种程度的神经网络修剪的示例性卷积神经网络(CNN)执行的卷积过程。
图2描绘了根据本文中所呈现的技术的一个或多个实施例的包括稀疏性计算速率(SCR)控制器的示例性CNN系统。
图3描绘了根据本文中所呈现的技术的一个或多个实施例的稀疏性计算速率控制器。
图4是根据本文中所描述的技术的利用示例性神经网络的计算驱动的动态时钟控制的电子设备或系统的一个实施例的功能框图。
图5描绘了根据本文中所描述的技术的一个或多个实施例的用于稀疏性计算速率控制器的示例性操作例程。
具体实施方式
在以下描述中,阐述了某些细节以便提供对设备、系统、方法和物品的各种实施例的透彻理解。然而,本领域的技术人员将理解,可以在没有这些细节的情况下实践其它实施例。在其它情况下,未在一些附图中示出或详细描述与例如电路(诸如晶体管、集成电路、逻辑门、存储器、接口、总线系统等)相关联的公知结构和方法,以避免不必要地混淆对实施例的描述。
除非上下文另外要求,否则在以下整个说明书和权利要求书中,词语“包括”及其变体(诸如“包含”和“含有”)应当以开放的、包含性的含义来解释,即,解释为“包括但不仅限于”。除非上下文另外指示,否则对“……中的至少一个”的引用应当解释为意味着分离性和包括性中的任一个或两个。
在整个本说明书中,对“一个实施例”或“实施例”的提及意味着结合该实施例描述的特定特征、结构或特性包括在至少一个实施例中。因此,在整个本说明书中的各处出现的短语“在一个实施例中”或“在实施例中”不一定是指同一实施例或所有实施例。此外,可以在一个或多个实施例中以任何适当的方式组合特定特征、结构或特性以获得其它实施例。
仅为了方便而提供标题,并且标题不解释本公开的范围或含义。
附图中元素的尺寸和相对位置不一定按比例绘制。例如,未按比例绘制各种元素的形状和角度,并且将这些元素中的一些元素放大并定位以提高附图的可读性。此外,所描绘的元素的特定形状并不一定旨在传达有关特定元素的实际形状的任何信息,并且仅为了便于在附图中识别而选择这些特定。
用于提高神经网络的功率效率的典型解决方案涉及:静态自适应电压缩放(AVS),其中基于与一个或多个处理器上的当前计算负载有关的一个或多个静态查找表来修改供应给神经网络的一个或多个处理器的电压;动态AVS,其中总体上基于一个或多个传感器的输出来执行片上(on-chip)处理和/或变化监控的闭环控制;自适应基体偏压(ABB),诸如可以用于具有全耗尽型绝缘体上硅(FDSOI)衬底的硅工艺中;以及动态电压频率缩放(DVFS),其总体上利用查找表,以便当神经网络的一个或多个处理器上的所预测的负载较低时,根据电压缩放神经网络硬件的操作频率。
神经网络(包括递归神经网络、深度神经网络、卷积神经网络、LSTM神经网络等作为非限制性示例)可以利用网络修剪来减少神经网络(NN)本身上的计算负载以及所耦合的任何神经网络加速器子系统上的计算负载。在这种修剪的至少某些实施方式中,在训练了神经网络之后,然后对神经网络进行微调以确定神经网络内特定连接的重要性。总体上,通过反复地去除被确定为具有较小重要性的特定连接或节点,修剪有效地压缩了训练后的神经网络。在某些实施方式中,诸如基于次级和/或衍生数据,还可以去除被确定为具有较小的相对重要性的加权信息。
取决于具体实施方式,修剪可以导致神经网络中的连接或节点的数量大幅减少,功率要求也对应地降低,同时很大程度上保持了所产生结果的准确性。神经网络修剪还可以导致数据的相对稀疏性,这可以允许神经网络(和/或相关联的神经网络加速器子系统)在仍能处理计算负载的同时以较低的时钟速度运行。特别地,神经网络尺寸减小/压缩技术(例如,基于内核权重或激活量的修剪、量化和范围分段)可以带来神经网络处理中的数据的额外稀疏性。
本文中的技术总体上涉及计算驱动的动态时钟控制,该计算驱动的动态时钟控制在锁相环(PLL)或锁频环(FLL)时钟生成器的闭环控制中利用可以指示数据稀疏性的信息,该锁相环或锁频环时钟生成器耦合到例如神经网络加速器子系统。在某些实施例中,这种计算时钟可以诸如相对于切换的单频时钟来提高用于神经网络或其它处理的能量效率(诸如以TOPS/W或其它适当的方式测量)。在至少一些实施例中,本文中所描述的技术与向下扩展频率调制兼容,诸如在标称时钟频率以下进行调制的向下扩展频谱调制。此外,在某些实施例中,本文中所描述的技术(诸如基于数据稀疏性的系统操作频率的调制)可以提供与一些向下扩展调制方案类似的结果,诸如通过操作以防止超过系统的期望最大操作频率。此外,这种技术可以促进避免大活动功率扰动(large-activity power perturbation)和随之而来的在耦合功率分布系统内的稳定涟波(settling ripple)。例如,通过由低带宽控制回路来逐步调制电源,该低带宽控制回路可以基于执行期间的数据稀疏性的平均值遵循平均频率转变。这种技术可以例如有利地与涉及时钟门控和/或功率门控的方案进行比较,以便避免这种功率扰动和随之而来的稳定涟波。
在各种实施例中,可以独立于特定的神经网络加速器架构和限制来利用这种技术,并且可以将这种技术用于单个神经网络、神经网络系列和/或多个神经网络的并行操作以及与其它系统(诸如其它处理加速器(例如,门控循环单元或“GRU”加速器、LSTM加速器等)、编码器、解码器等)一起使用。值得注意的是,基于例如数据稀疏性中的动态变化的这种可变时钟自适应可以单独地被利用或者结合用于提高神经网络效率的附加解决方案一起利用,这些附加解决方案包括上文提到的AVS、ABB和DVFS类型的解决方案(作为非限制性示例)。
图1A至1D以图形方式描绘了由具有各种程度的修剪的示例性卷积神经网络(CNN)执行的卷积过程,诸如以便图示由这种修剪导致的对应的数据稀疏性。在所描绘的实施例中,示例性CNN系统201(见图2)旨在用于图像帧识别(诸如提供给CNN系统的视频帧识别和/或静止帧识别),应当理解的是,可以将本文中所描述的技术的其它实施例用于适合于经由一个或多个神经网络实现的任何其它目的。
图1A描绘了在图像帧识别过程期间分别应用于六个相应的图像特征F1至F6的六个内核K1至K6的系列。值得注意的是,在这里,CNN的计算没有被修剪,使得没有零值特征或内核数据的修剪效果。因此,不管存在于单个内核或特征中的值如何,六个相应卷积应用中的每个卷积应用都需要计算周期来完成,如所描绘地经由六个计算周期110a。
图1B描绘了分别应用于六个相应的图像特征F1至F6的六个内核K1至K6的同一系列。然而,在这里,CNN的内核K2和K5各自的值已经加权为零,以有效地从处理中去除那些修剪后的内核K2和K5到对应图像特征F2和F5的应用的方式来修剪示例性CNN。因此,仅需要四个计算周期110b来处理单个帧。
图1C再次描绘了分别应用于六个相应的图像特征F1至F6的六个内核K1至K6的同一系列。在这里,在所描绘的布置中,CNN的特征F3和F5各自的值已经加权为零,以有效地从处理中去除对应内核K3和K5到那些修剪后的特征F3和F5的应用的方式来修剪示例性CNN。因此,仅需要四个计算周期110c来处理单个帧。
图1D再一次描绘了分别应用于六个相应的图像特征F1至F6的六个内核K1至K6的同一系列。在这里,CNN的特征F3和F5中的每个特征以及内核K2和K5中的每个内核的值已经分别加权为零,以从处理中去除对应内核K3和K5到修剪后的图像特征F3和F5的应用以及修剪后的内核K2到图像特征F2的应用中的方式来修剪示例性CNN。因此,仅执行内核K1到图像特征F1的应用、内核K4到图像特征F4的应用以及内核K6到图像特征F6的应用,这意味着仅需要三个计算周期110c来处理单个帧。
从图1A至1D的示例中可以看出,对神经网络的修剪可以增加所得到的数据的稀疏性,并且减少与由神经网络分析的单个图像帧相关联的处理资源,使得不同的输出特征图数据消耗不同数量的处理周期。因此,在本文中所描述的技术的至少一些实施例中,与单个处理帧相关联的开始中断和停止中断的指示可以允许实时测量处理周期和帧执行时间,以及充当对神经网络的数据稀疏性的指示。应当理解的是,虽然图1A至1D中所图示的修剪总体上描述了单个群集处理,但是在并行群集处理期间的类似修剪可以导致类似的数据稀疏性,并且可以反映在帧处理周期的对应减少中。
图2描绘了根据本文中所呈现的技术的一个实施例的利用稀疏性计算速率(SCR)控制器210的示例性CNN系统201。如前所述,虽然在所描绘的实施例中,示例性CNN系统201将在本文中被讨论为旨在用于提供给CNN系统的视频帧识别和/或图像帧识别中,但是所描述的技术的其它实施例可以用于适合于经由一个或多个神经网络实现的任何其它目的。
在所描绘的实施例中,SCR控制器210耦合在PLL/FLL时钟生成器212与神经网络加速器子系统214之间。SCR控制器210耦合到实时时钟216。在操作中,SCR控制器通过利用到SCR控制器的输入来提供CNN时钟的闭环控制,这些输入包括从NN加速器子系统214接收到的对帧执行时间的指示,如所图示的帧同步开始和停止中断218。这些开始和停止中断向SCR控制器提供对帧计算的持续时间的指示。基于该持续时间,SCR控制器210将频率控制字(Fclk)222输出到PLL/FLL时钟生成器。在一个实施例中,可以生成向下扩展频率值,该向下扩展频率值导致低的输出抖动。基于频率控制字Fclk来确定用于PLL/FLL时钟生成器的NN时钟输出的标称频率。
在各种实施例中,频率控制字Fclk 222可以以各种方式生成。作为一个示例,诸如在示例性CNN系统201的推理通过(inference pass)期间,可以基于内核稀疏性来生成频率控制字。在典型配置中,不管输入数据如何,内核稀疏性在CNN系统的执行期间保持不变。因此,诸如通过处理静态配置输入或通过经由针对一个或多个完整帧的神经网络的执行解析来动态地计算内核稀疏性,可以在运行时确定内核稀疏性。在某些实施例中,内核稀疏性的动态计算可以由此提供频率控制字的向下偏压。作为另一示例,可以基于激活稀疏性来计算频率控制字,在某些实施方式中,该激活稀疏性可以是取决于数据的和/或取决于权重的度量。在这种实施方式中,NN加速器子系统214可以通过使激活稀疏性度量通过例如比例和积分(P&I)控制回路来生成频率控制字。可以选择P&I控制回路的参数,以满足CNN系统201的带宽和/或阻尼要求。
在一个实施例的操作中,第一次要执行系统时,CNN系统201启动学习阶段。在仅执行非零操作的第一遍执行中,CNN系统201确定标称频率或每秒帧的目标值,其总体上可以是内核的标称稀疏性的指示符。随后,基于标称频率或每秒帧数的目标值、以及指示神经网络加速器子系统214的处理的当前每秒帧数的反馈,SCR控制器210生成频率控制字222。例如,在待分类的特定图像中,输入数据值中的一个或多个输入数据值可能为零或低于修剪阈值,并且因此产生比目标帧速率快的处理帧速率。在这种情况下,可以生成控制字以降低提供给神经网络加速器子系统214的时钟操作频率。
由于其它共享系统资源(诸如全局和/或外部存储器)的服务质量约束,在所处理的帧中也可能会出现频率控制字变化。在某些实施例中,可以以一定速率更新频率控制字,使得频率控制字的调制更新速率小于所耦合的PLL/FLL时钟生成器212的带宽。
在一些实施例中,可以周期性地确定标称频率或每秒帧速率目标(target framesper second rate),这可以促进考虑操作条件中的变化,诸如由于温度、波动电压、老化等引起的变化。在一些实施例中,例如如上文所讨论的,可以确定初始标称频率或每秒帧速率目标,并且然后,在操作中例如基于帧处理速率的平均值进行调整。平均值可以是在阈值数目的帧(例如,一百帧)上的移动平均值,并且可以采用滤波来防止平均值偏离初始标称频率或每秒帧速率太远。初始标称频率或目标帧速率可以是默认值、使用查找表确定的值等。
如在本文中其它地方所指示的,可以结合附加的神经网络效率解决方案,利用基于对经由SCR控制器210的帧执行时间的指示来对PLL/FLL时钟生成器212进行控制。在所描绘的实施例中,PLL/FLL时钟生成器212耦合到AVS/DVFS控制器224,该AVS/DVFS控制器224可以向PLL/FLL时钟生成器提供附加的输入,诸如至少部分地基于输入电压和预测的和/或当前的计算负载的、针对CNN系统201的经缩放的操作频率信息。同样在所描绘的实施例中,AVS/DVFS控制器224耦合到稳压器226,诸如低压差稳压器(LDO)或DC-DC转换器。在某些实施例中,例如结合高度神经网络修剪,由时钟生成器212提供的神经网络时钟信号240可以使能AVS/DVFS控制器或其它控制器,诸如神经网络加速器子系统214中的嵌入式控制器,以便为所耦合的神经网络选择较低的输入电压,从而促进提高功率和/或工作效率。
在某些实施例中,到SCR控制器210的输入可以包括神经网络加权因子220。例如,在某些实施例中,中断218中的每个中断可以与神经网络加权因子相关联。在某些实施例中,SCR控制器210可以诸如经由服务质量控制器228和互连总线230,生成或被提供有所期望的每秒帧数的目标值。在所描绘的实施例中,互连总线230通信地耦合在NN加速器子系统214与共享存储器232a、232b和232c之间,以及通信地耦合到主机234(例如,控制NN加速器子系统214的操作的主机系统(参见图4的主机系统404))。作为另一示例,在某些实施例中,可以在单个时间段期间(例如,经由时分复用(TDM)或其它推测性(speculative)调度方案)执行的多个神经网络(未示出)之间共享神经网络加速器子系统,诸如NN加速器子系统214。在这种实施例中,NN加权因子220可以由神经网络加速器子系统使用,以确定用于那些多个神经网络的执行的相对处理时间表。
图3描绘了图2的SCR控制器210的示例性实施例。如所描绘的,SCR控制器210从NN加速器子系统214(为了清楚起见,未在图3中示出)接受开始和停止中断信息218,以便产生频率控制字(Fclk)222,以控制PLL/FLL时钟生成器(诸如图2的时钟生成器212)的频率。SCR控制器210包括频率计数器305、频率误差生成器310和比例积分控制器315。在操作中,频率计数器305从NN加速器子系统接受开始帧中断信号和停止帧中断信号(以及可选地,神经网络加权因子220,这些神经网络加权因子220在某些实施例中可以用作线性增益缩放器)。频率误差生成器310确定或取回标称频率(Fnominal)325和从频率计数器305输出的频率,并确定频率计数器输出与标称频率Fnominal之间的差以生成频率误差。将频率误差提供给比例积分控制器315,该比例积分控制器315对所提供的频率误差进行缩放和积分。比例积分控制器315的输出包括频率控制字222,将该频率控制字222输入到PLL/FLL时钟生成器212(图2),以生成用于NN加速器子系统214的CNN时钟信号。
图4是可以利用本文中所描述的各种实施例的示例性电子设备或系统400的功能框图。系统400可以用于例如实现卷积神经网络以对传感器数据进行分类。应当理解的是,由于这种神经网络可以是计算密集型的,因此基于神经网络所需的信息(诸如数据稀疏性)来有效地修改一个或多个操作频率的能力可以在这种神经网络的功率管理和整体性能方面提供重大改进。在各种实施方式中,系统400可以包括片上系统。
系统400包括全局存储器402,该全局存储器402例如可以充当主存储器,诸如以用于一个或多个神经网络过程或处理群集以及用于一个或多个主机系统404的过程或处理群集。全局存储器402包括存储器管理电路系统406和一个或多个共享存储器阵列408。在操作中,存储器管理电路系统406采用一个或多个存储器管理例程来将共享存储器阵列408的区域分配给由系统400执行的各种过程。
如所图示的,系统400包括一个或多个数据移动器410、一个或多个存储器桥420、一个或多个传感器430和对应的传感器接口432、一个或多个卷积加速器引擎440以及一个或多个所连接的引擎450,这些所连接的引擎450可以被实现并操作以产生分类输出460。
在操作中,数据移动器410在IO(例如,传感器接口432)、存储器层级(例如,全局存储器402、存储器桥420)、卷积加速器引擎440以及所连接的引擎450之间移动数据流。在所描绘的实施例中,卷积加速器引擎440包括SCR控制器442和时钟生成器444,其中SCR控制器442以在本文中其它地方参考附加的实施例所描述的方式与实时时钟446耦合。
在一些实施例中,系统201、400和控制器210可以包括比图示的更多的组件,可以包括比所图示的更少的组件,可以将图示的组件划分为单独的组件,可以组合所图示的组件等,以及其各种组合。
图5描绘了根据本文中所描述的技术的一个或多个实施例的用于稀疏性计算速率(SCR)控制器510的示例性操作例程500(该SCR控制器510的特征和功能可以基本上类似于上文参考图2至图3的SCR控制器210和/或图4的SCR控制器442所描述的特征和功能)。
操作例程500开始于SCR控制器510接收参考时钟信号502、参考帧处理频率504和帧持续时间信息,如所图示的帧同步信息506。
在515处,SCR控制器510基于参考时钟信号和帧同步信息506来确定帧处理频率,在图3所描绘的实施例中,该帧同步信息506包括关于通信地耦合到SCR控制器510的神经网络的处理任务的帧数据的开始/停止中断信息。
在520处,SCR控制器510确定所确定的帧处理频率与参考帧处理频率504之间的差。
在525处,SCR控制器510基于所确定的帧处理频率与参考帧处理频率之间的所确定的差来生成频率控制字(错误信号)。
在530处,SCR控制器510基于频率控制字来生成神经网络时钟信号,诸如以供通信地耦合的神经网络使用。
控制神经网络时钟的方法的实施例可以包含图5中未示出的附加动作,可以不包含图5中所示出的所有动作,可以以各种顺序执行图5中所示出的动作,并且可以在各个方面被修改。例如,例程500可以被修改以生成参考帧处理频率。
一些实施例可以采取计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种包括计算机程序的计算机可读介质,该计算机程序适于执行上文所描述的方法或功能中的一种或多种方法或功能。介质可以是:物理存储介质,诸如只读存储器(ROM)芯片;或磁盘,诸如数字通用光盘(DVD-ROM)、光盘(CD-ROM)、硬盘、存储器、网络或便携式介质物品(portable media article),该便携式介质物品将由适当的驱动器或经由适当的连接读取,包括编码为一个或多个条形码或其它相关代码的代码,这些代码存储在一个或多个这样的计算机可读介质上,并且可以由适当的读取器设备读取。
此外,在一些实施例中,方法和/或功能性中的一些或全部可以以其它方式来实现或提供,诸如至少部分地在固件和/或硬件中实现或提供,这样的固件和/或硬件包括但不限于:一个或多个专用集成电路(ASIC)、数字信号处理器、离散电路系统、逻辑门、标准集成电路、控制器(例如,通过执行适当的指令并包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等,以及采用RFID技术的设备和以上各项的各种组合。
在一个实施例中,设备包括:控制字生成电路系统,该控制字生成电路系统在操作中基于指示神经网络的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及时钟生成器,该时钟生成器耦合到控制字生成电路系统,并且该时钟生成器在操作中基于时钟频率控制字来生成神经网络时钟信号以供神经网络使用。在一个实施例中,控制字生成电路系统基于参考频率来确定频率控制字。在一个实施例中,指示当前帧执行速率的信息包括帧同步信息,并且控制字生成电路系统包括:频率计数器,该频率计数器在操作中至少部分地基于参考时钟信号和帧同步信息来确定当前帧处理频率;以及比例积分控制器,该比例积分控制器在操作中基于所确定的帧处理频率与参考频率之间的差来生成时钟频率控制字。在一个实施例中,参考频率基于仅处理非零操作的内核的执行的帧处理频率。在一个实施例中,参考频率对应于与神经网络的处理任务相关联的标称内核数据稀疏性。在一个实施例中,参考频率基于平均帧执行速率。在一个实施例中,控制字生成电路系统包括耦合到频率计数器的频率误差生成器,该频率误差生成器在操作中确定所确定的帧处理频率与参考频率之间的差。在一个实施例中,设备包括自适应电压缩放控制器,该自适应电压缩放控制器在操作中修改神经网络的供应电压。在一个实施例中,自适应电压缩放控制器基于神经网络时钟信号来修改供应电压。在一个实施例中,设备包括动态电压频率缩放控制器,该动态电压频率缩放控制器在操作中生成控制信息,并且时钟生成器基于由动态电压频率缩放控制器生成的控制信息来生成神经网络时钟信号。在一个实施例中,指示当前帧执行速率的信息包括与处理任务相关联的多个开始中断时间以及与处理任务相关联的对应的多个停止中断时间。在一个实施例中,多个开始中断时间中的每个开始中断时间对应于与处理相应的数据帧相关联的开始时间,并且多个停止中断时间中的每个停止中断时间对应于与处理相应的数据帧相关联的停止时间。在一个实施例中,多个开始中断时间和多个停止中断时间中的每个时间与处理权重相关联,并且在操作中,控制字生成电路系统基于处理权重来生成时钟频率控制字。在一个实施例中,指示当前帧执行速率的信息与神经网络的处理任务的当前内核数据稀疏性相关联。在一个实施例中,时钟生成器是包括锁相环(PLL)时钟生成器和锁频环(FLL)时钟生成器的组中的一个时钟生成器。
在一个实施例中,系统包括:神经网络加速器电路系统;以及闭环时钟速率控制电路系统,该闭环时钟速率控制电路系统耦合到神经网络加速器电路系统,并且该闭环时钟速率控制电路系统在操作中生成神经网络加速器电路系统的时钟信号,闭环时钟速率控制电路系统包括:控制字生成电路系统,该控制字生成电路系统在操作中基于指示神经网络加速器电路系统的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及时钟生成器,该时钟生成器耦合到控制字生成电路系统,并且该时钟生成器在操作中基于时钟频率控制字来生成神经网络加速器电路系统的时钟信号。在一个实施例中,控制字生成电路系统在操作中基于参考频率来生成时钟频率控制字。在一个实施例中,系统包括自适应电压缩放控制器,该自适应电压缩放控制器在操作中修改神经网络的供应电压。在一个实施例中,系统包括动态电压频率缩放控制器,该动态电压频率缩放控制器在操作中生成动态时钟控制信息,其中时钟生成器基于动态时钟控制信息来生成神经网络加速器电路系统的时钟信号。
在一个实施例中,方法包括:使用神经网络加速器执行内核;以及在内核的执行期间,执行神经网络加速器的操作频率的闭环时钟速率控制,执行闭环时钟速率控制包括:基于指示内核的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及基于时钟频率控制字来生成神经网络加速器电路系统的时钟信号。在一个实施例中,时钟频率控制字基于参考频率生成。在一个实施例中,方法包括:基于神经网络加速器电路系统的所生成的时钟信号来修改神经网络的供应电压。在一个实施例中,方法包括:使用动态电压频率缩放控制器来修改神经网络的操作频率。
上文所描述的各种实施例可以被组合以提供其它实施例。如有必要采用各种专利、申请和公开的构思来提供另外的实施例,则可以修改实施例的各个方面。
鉴于上文详述的说明书,可以对实施例做出这些和其它改变。总体上,在权利要求中,所使用的术语不应当解释为是将权利要求限制于在本说明书和权利要求书中公开的具体实施例,而是应当解释为包括所有可能的实施例以及这些权利要求所享有的等同物的全部范围。因此,权利要求不受本公开的限制。
Claims (23)
1.一种设备,包括:
控制字生成电路系统,所述控制字生成电路系统在操作中基于指示神经网络的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及
时钟生成器,耦合到所述控制字生成电路系统,并且所述时钟生成器在操作中基于所述时钟频率控制字来生成神经网络时钟信号以供所述神经网络使用。
2.根据权利要求1所述的设备,其中所述控制字生成电路系统在操作中基于参考频率来确定所述频率控制字。
3.根据权利要求2所述的设备,其中指示所述当前帧执行速率的所述信息包括帧同步信息,并且所述控制字生成电路系统包括:
频率计数器,所述频率计数器在操作中至少部分地基于所述参考时钟信号和所述帧同步信息来确定当前帧处理频率;以及
比例积分控制器,所述比例积分控制器在操作中基于所确定的所述帧处理频率与所述参考频率之间的差来生成所述时钟频率控制字。
4.根据权利要求3所述的设备,其中所述参考频率基于仅处理非零操作的内核的执行的帧处理频率。
5.根据权利要求4所述的设备,其中所述参考频率对应于标称内核数据稀疏性,所述标称内核数据稀疏性与所述神经网络的所述处理任务相关联。
6.根据权利要求2所述的设备,其中所述参考频率基于平均帧执行速率。
7.根据权利要求3所述的设备,其中所述控制字生成电路系统包括耦合到所述频率计数器的频率误差生成器,所述频率误差生成器在操作中确定所确定的所述帧处理频率与所述参考频率之间的差。
8.根据权利要求1所述的设备,包括自适应电压缩放控制器,所述自适应电压缩放控制器在操作中修改所述神经网络的供应电压。
9.根据权利要求8所述的设备,其中,在操作中,所述自适应电压缩放控制器基于所述神经网络时钟信号来修改所述供应电压。
10.根据权利要求1所述的设备,包括动态电压频率缩放控制器,所述动态电压频率缩放控制器在操作中生成控制信息,并且所述时钟生成器基于由所述动态电压频率缩放控制器生成的所述控制信息来生成所述神经网络时钟信号。
11.根据权利要求1所述的设备,其中指示当前帧执行速率的所述信息包括:与所述处理任务相关联的多个开始中断时间、以及与所述处理任务相关联的对应的多个停止中断时间。
12.根据权利要求11所述的设备,其中所述多个开始中断时间中的每个开始中断时间对应于与处理相应的数据帧相关联的开始时间,并且所述多个停止中断时间中的每个停止中断时间对应于与处理所述相应的数据帧相关联的停止时间。
13.根据权利要求12所述的设备,其中所述多个开始中断时间和所述多个停止中断时间中的每个时间与处理权重相关联,并且在操作中,所述控制字生成电路系统基于所述处理权重来生成所述时钟频率控制字。
14.根据权利要求1所述的设备,其中指示所述当前帧执行速率的所述信息与所述神经网络的所述处理任务的当前内核数据稀疏性相关联。
15.根据权利要求1所述的设备,其中所述时钟生成器是包括锁相环(PLL)时钟生成器和锁频环(FLL)时钟生成器的组中的一个时钟生成器。
16.一种系统,包括:
神经网络加速器电路系统;以及
闭环时钟速率控制电路系统,耦合到所述神经网络加速器电路系统,并且所述闭环时钟速率控制电路系统在操作中生成所述神经网络加速器电路系统的时钟信号,所述闭环时钟速率控制电路系统包括:
控制字生成电路系统,所述控制字生成电路系统在操作中基于指示所述神经网络加速器电路系统的处理任务的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及
时钟生成器,耦合到所述控制字生成电路系统,并且所述时钟生成器在操作中基于所述时钟频率控制字来生成所述神经网络加速器电路系统的所述时钟信号。
17.根据权利要求16所述的系统,其中所述控制字生成电路系统在操作中基于参考频率来生成所述时钟频率控制字。
18.根据权利要求16所述的系统,包括:
自适应电压缩放控制器,所述自适应电压缩放控制器在操作中修改所述神经网络的供应电压。
19.根据权利要求16所述的系统,包括:
动态电压频率缩放控制器,所述动态电压频率缩放控制器在操作中生成动态时钟控制信息,其中所述时钟生成器基于所述动态时钟控制信息来生成所述神经网络加速器电路系统的所述时钟信号。
20.一种方法,包括:
使用神经网络加速器执行内核;以及
在所述内核的执行期间,执行所述神经网络加速器的操作频率的闭环时钟速率控制,执行所述闭环时钟速率控制包括:
基于指示所述内核的当前帧执行速率的信息和参考时钟信号来生成时钟频率控制字;以及
基于所述时钟频率控制字来生成神经网络加速器电路系统的时钟信号。
21.根据权利要求20所述的方法,其中所述时钟频率控制字基于参考频率生成。
22.根据权利要求20所述的方法,包括:
基于所述神经网络加速器电路系统的所生成的所述时钟信号来修改所述神经网络的供应电压。
23.根据权利要求20所述的方法,包括:
使用动态电压频率缩放控制器来修改所述神经网络的所述操作频率。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962902294P | 2019-09-18 | 2019-09-18 | |
US62/902,294 | 2019-09-18 | ||
US17/023,144 US11900240B2 (en) | 2019-09-18 | 2020-09-16 | Variable clock adaptation in neural network processors |
US17/023,144 | 2020-09-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112529170A true CN112529170A (zh) | 2021-03-19 |
Family
ID=74869657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010978759.2A Pending CN112529170A (zh) | 2019-09-18 | 2020-09-17 | 神经网络处理器中的可变时钟自适应 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11900240B2 (zh) |
EP (1) | EP3822737A3 (zh) |
CN (1) | CN112529170A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102634702B1 (ko) * | 2021-06-03 | 2024-02-06 | 연세대학교 산학협력단 | 신경망 연산 장치, 신경망 연산 방법 및 신경망 연산 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577908B1 (en) | 2000-06-20 | 2003-06-10 | Fisher Rosemount Systems, Inc | Adaptive feedback/feedforward PID controller |
US7061292B2 (en) | 2001-11-09 | 2006-06-13 | The Regents Of The University Of Colorado | Adaptive voltage regulator for powered digital devices |
US7113835B2 (en) | 2004-08-27 | 2006-09-26 | Alstom Technology Ltd. | Control of rolling or moving average values of air pollution control emissions to a desired value |
US20090161809A1 (en) | 2007-12-20 | 2009-06-25 | Texas Instruments Incorporated | Method and Apparatus for Variable Frame Rate |
CN107003835A (zh) * | 2014-10-02 | 2017-08-01 | 联发科技股份有限公司 | 硬件加速的动态电压及频率调节 |
KR102434728B1 (ko) | 2017-10-20 | 2022-08-19 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리방법 및 장치 |
CN109491494B (zh) | 2018-11-26 | 2020-04-17 | 北京地平线机器人技术研发有限公司 | 功率参数的调整方法、装置及强化学习模型训练方法 |
GB2580134B (en) * | 2018-12-21 | 2021-04-21 | Graphcore Ltd | Controlling a processor clock |
US11347916B1 (en) * | 2019-06-28 | 2022-05-31 | Amazon Technologies, Inc. | Increasing positive clock skew for systolic array critical path |
-
2020
- 2020-09-16 US US17/023,144 patent/US11900240B2/en active Active
- 2020-09-17 EP EP20196625.6A patent/EP3822737A3/en active Pending
- 2020-09-17 CN CN202010978759.2A patent/CN112529170A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210081773A1 (en) | 2021-03-18 |
US11900240B2 (en) | 2024-02-13 |
EP3822737A2 (en) | 2021-05-19 |
EP3822737A3 (en) | 2021-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111652367B (zh) | 一种数据处理方法及相关产品 | |
US11379708B2 (en) | Techniques for efficiently operating a processing system based on energy characteristics of instructions and machine learning | |
Bolukbasi et al. | Adaptive neural networks for fast test-time prediction | |
US9979410B2 (en) | Smart voltage regulation techniques | |
CN101833336A (zh) | 一种共轴式无人直升机的双余度姿态控制系统及调试方法 | |
US11921561B2 (en) | Neural network inference circuit employing dynamic memory sleep | |
US11809250B2 (en) | Workload aware power limiting and multiple-input multiple-output control | |
EP3961384A1 (en) | Automatic derivation of software engineering artifact attributes from product or service development concepts | |
US11900240B2 (en) | Variable clock adaptation in neural network processors | |
EP4092896A1 (en) | Computational current sensor | |
Spantidi et al. | Positive/negative approximate multipliers for DNN accelerators | |
US11016840B2 (en) | Low-overhead error prediction and preemption in deep neural network using apriori network statistics | |
US11837958B2 (en) | Multiphase power converter | |
CN201796292U (zh) | 一种共轴式无人直升机的双余度姿态控制系统 | |
CN103927220A (zh) | 一种客户端中输入法的自适应调整方法及装置 | |
US11740687B2 (en) | Variable power mode inferencing | |
US20220300608A1 (en) | Apparatus and method to detect power supply security attack and risk mitigation | |
WO2022081596A1 (en) | 5-phase latch-based clocking and glitch-power aware clock apparatus | |
KR102566824B1 (ko) | 장단기 메모리 네트워크 모델을 학습시키는 방법 및 학습된 장단기 메모리 네트워크 모델을 이용하여 에너지 비용을 최소화하는 방법 | |
CN202085121U (zh) | 一种基于NiosII的直流电动机预测控制调速系统 | |
CN112187894A (zh) | 一种基于负载相关性预测的容器动态调度方法 | |
KR100956639B1 (ko) | 컴퓨팅 디바이스의 전력 감소 장치 및 그 방법 | |
Wang et al. | DyCE: Dynamic Configurable Exiting for Deep Learning Compression and Scaling | |
Li et al. | A 681 GOPS/W~ 3.59 TOPS/W CNN Accelerator Based on Novel Data Flow Scheduling Scheme | |
CN113657059B (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 |