使用动态电压和频率缩放进行功率调制的制作方法


使用动态电压和频率缩放进行功率调制
1.相关申请的交叉引用
2.本发明要求于2021年9月10日提交的发明人为马克
·
艾伦
·
洛弗尔和罗伯特
·
迈克尔
·
穆克塞尔且名称为“power modulation using dynamic voltage and frequency scaling[使用动态电压和频率缩放进行功率调制]”的共同未决的且共同受让的美国非临时专利申请号17/472,113的优先权权益。上述专利文献通过引用以其全文结合在此。
[0003]
背景
技术领域
[0004]
本披露总体上涉及机器学习应用中的数据处理。更具体地,本披露涉及用于高效使用执行大量算术运算的机器学习计算电路的功率控制系统和方法。


背景技术:



[0005]
机器学习是人工智能的子领域,其使得计算机可以通过示例进行学习,而无需在常规意义上进行显式编程。许多机器学习应用利用卷积神经网络(cnn),其是能够解决复杂图像分类和语义分割任务的监督式网络。cnn使用大量多维训练数据(例如,图像或传感器数据)作为输入,通过使用和重复使用具有可学习参数的被应用于输入数据的滤波器来学习这些数据中的突出特征。在随后的推理阶段,cnn使用非监督式操作在新输入数据中检测或插入先前未见的特征或事件,以分类对象或计算输出(比如回归),或将其输出与输入相结合来完成比如噪声抑制等任务。
[0006]
为了对卷积执行大量算术计算,通常会使用比如嵌入式硬件机器学习加速器等硬件加速器。这种设备的功耗需求在宽动态范围内变化,这高度依赖于各种因素,比如加速器在其中运行的系统的拓扑、正在处理的cnn的大小和执行的卷积计算的数量、正在处理的数据的类型和维度、执行计算的时钟速度等。
[0007]
比如线性调节器或开关电源等常用于驱动高功耗硬件加速器的内部电源和外部电源的尺寸被确定为在一个或多个固定轨电压上输出功率。由于硬件加速器必须在相对较短的时间量内执行大量计算,这通常会导致不希望的瞬时电流和功率尖峰,因而往往会对计算硬件的寿命产生负面影响。
[0008]
虽然配备了一些方法以通过将电路的至少某些部分设置为低功率模式(例如,睡眠模式)来降低功率,但所有可用的电源轨通常会继续以其标称输出电压(即,最大容量)操作。因此,现有方法不能利用较低的存储器电源电压和本文提出的使用系统知识来智能地降低总体功耗的其他特征。与缺乏对硬件加速器和类似计算电路在任何时刻正在执行的计算步骤的类型和强度以及每组操作的功率需求的上下文感知的方法不同,本文中的某些实施例主动调整功率相关参数,其方式有益于机器学习电路并且避免浪费的宝贵的功率资源,尤其是在嵌入式系统中。
附图说明
[0009]
将参考本发明的实施例,附图中可以展示这些实施例的示例。这些附图旨在为说明性的,并非限制性的。尽管总体上在这些实施例的背景下描述了本发明,但是应当理解的是,其不旨在将本发明的范围限制于这些特定实施例。
[0010]
图1是常规的嵌入式机器学习加速器系统的一般图示。
[0011]
图2展示了根据本披露的各种实施例的用于提高机器学习电路中的计算资源利用率的控制系统的示例性框图。
[0012]
图3是根据本披露的各种实施例的用于提高cnn中的计算资源利用率的说明性过程的流程图。
[0013]
图4是根据本披露的各种实施例的用于提高cnn中的计算资源利用率的替代性过程的流程图。
[0014]
图5描绘了根据本披露的实施例的计算设备/信息处置系统的简化框图。
具体实施方式
[0015]
在以下描述中,出于解释的目的,阐述了具体细节以便提供对本发明的理解。然而将明显的是,本领域技术人员可以在不具有这些细节的情况下实践本发明。此外,本领域技术人员将认识到,以下所描述的本发明的实施例可以在有形计算机可读介质上以诸如过程、装置、系统、设备、或方法等各种方式实施。
[0016]
在图中示出的部件或模块展示了本发明的示例性实施例并且意在避免模糊本发明。还应理解,贯穿本讨论,部件可以被描述为可以包括子单元的单独功能单元,但是本领域技术人员将认识到,各种部件或其部分可以被划分成单独的部件或者可以被集成在一起,包括集成在单个系统或部件中。应注意,本文所讨论的功能或操作可以被实施为部件。部件可以以软件、硬件或其组合来实施。
[0017]
此外,附图内的部件或系统之间的连接不旨在限于直接连接。相反,这些部件之间的数据可以通过中间部件进行修改、重新格式化或以其他方式改变。而且,可以使用附加的连接或更少的连接。还应注意,术语“耦接”、“连接”或“通信地耦接”应被理解为包括直接连接、通过一个或多个中间设备的间接连接以及无线连接。
[0018]
在本说明书中,对“一个实施例(one embodiment)”、“优选实施例(preferred embodiment)”、“实施例(an embodiment)”、或“多个实施例(embodiments)”的引用意味着结合实施例所描述的具体特征、结构、特性或功能包括在本发明的至少一个实施例中并且可以在多于一个实施例中。而且,在本说明书中各个地方出现的上述短语不一定都是指同一个实施例或相同实施例。
[0019]
在本说明书中各个不同地方使用某些术语是用于说明的并且不应被解释为限制性的。服务、功能或资源不限于单个服务、功能或资源;对这些术语的使用可以指相关的分组,这些服务、功能或资源可以是分布式的或聚合的。词语“最优”、“优化(optimize)”、“优化(optimization)”等是指结果或过程的改善,并且不要求指定的结果或过程已经达到“最优”或峰值状态。在本文档中,术语“包括(include)”、“包括(including)”、“包括(comprise)”和“包括(comprising)”应被理解为是开放性术语并且其后的任何列出项是示例,且不打算限于所列出的项。术语“存储器”、“存储器设备”和“寄存器”可互换使用。类似
地,术语内核、滤波器、权重、参数和权重参数可互换使用。术语“层”是指神经网络层。“神经网络”包括本领域已知的任何神经网络。“硬件加速器”是指可用于执行数学运算和相关功能(包括辅助控制功能)的任何电路或光学回路。“电路”包括“子电路”,并且既可以指定制电路(比如特殊硬件),也可以指通用电路。术语“计算性能”和“电路性能”是指计算系统和其他电路中的计算速度、网络容量、数据处理效率、功率效率和类似参数(以及衡量性能和计算资源的指标)。术语“安全裕度”、“裕度”、“误差裕度”和“余量”可互换使用。
[0020]
应当注意,尽管本文所描述的实施例是在cnn的背景下给出的,但本领域技术人员应当认识到,本披露的传授内容并不如此受限制,且同样可以提高其他计算系统和电路中的计算资源利用率。
[0021]
图1展示了常规的嵌入式机器学习加速器系统,该系统在多个阶段中处理数据。系统100包含易失性存储器102、非易失性存储器104、时钟106、时钟i/o外围设备、微控制器110、电源112和机器学习加速器114。微控制器110可以是传统的dsp或通用计算设备,机器学习加速器114可以被实施为包括数百个寄存器(未示出)的cnn加速器。如图1所描绘的,机器学习加速器114与嵌入式机器学习加速器系统100的其他部分进行接口连接。
[0022]
在操作中,微控制器110在软件中或使用一个或多个硬件加速器执行卷积算数运算。机器学习加速器114通常使用权重数据,以对使用权重数据的输入数据执行矩阵乘法和相关的卷积计算。权重数据可以从加速器114被卸载,例如以在加速器114使用新的一组权重数据执行新的一组操作之前加载新的或不同的权重数据。更常见的是,权重数据保持不变,并且对于每个新的计算,将新的输入数据加载到加速器114中以执行计算。机器学习加速器114通常在短时间内执行数百万次计算,因而可能导致电源112遇到例如呈电流尖峰的形式的功率尖峰(这会对系统100的长期性能产生不利影响),或导致系统故障,除非电源112及其支持电路系统被设计为处理在系统100在其生命周期内可能遇到的所有环境条件(例如,较高的夏季温度)下功率需求的最快增长。
[0023]
随着经受卷积操作的数据量增加并且操作的复杂性不断增长,功耗也增大。电源112的缺点之一是其缺乏利用关于机器学习加速器114的信息来适应高功率和低功率操作的任何反馈机制。因此,电源112无法基于系统100的计算资源的实际功率需求来控制功率以降低功耗。因此,需要这样的系统和方法,其允许硬件加速器以低功耗高效地处理神经网络的大量复杂算术运算,并且理想地不增加硬件成本。
[0024]
通常,取决于使用情况,电子设备被设计为在多种不同的环境下操作,并能承受不同的环境影响,比如温度波动。即使在实践中很少见,电子设备也理想地被设计为即使在“最坏情况”条件下也能操作。另外,从统计上看,性能最差的电路部件或子电路通常支配着电子电路的整体性能。因此,实现期望规格的电路设计在保持低电路故障可能性的同时,必须考虑广泛的可能场景,包括比如晶圆间(以及甚至芯片间)偏差等影响。
[0025]
在实践中,这需要为电路参数设置相对保守的安全裕度(通常为20%和更多的裕度),以补偿预期和意外的变化。然而,比如强制性安全裕度要求等设计约束导致大部分电路降额,这使得大量可用计算能力未得到利用。例如,当功率随电压呈二次方增大时,增加ic电源电压的余量会导致不期望的更高功率耗散,从而降低整体电路效率。因此,在大多数情况下,必须在针对最坏情况进行设计与实现期望的电路性能之间做出影响深远的权衡。
[0026]
存在许多设计技术,用于在电路中建立余量以考虑至少一些最坏情况场景,并在
努力获得良好电路性能的同时补偿制造相关部件变化。一种动态电压缩放技术涉及使用自测试电路来检测在施加到测试电路的电压变得太低时出现的故障。例如,测量电路将维持其功能的最小核心电源电压可以帮助确定电压可以设置得多接近产生能量节省同时确保可靠操作的边界条件(例如,添加了安全裕度的标称最小电压)。
[0027]
然而,这些方法控制比如温度、电压、电流等物理参数和环境条件,这些物理参数和环境条件是在例如电路上或附近的有限数量的测量点处测得的并在查表中被编制索引。因此,现有技术本身不适合软件和机器学习应用。
[0028]
另外,由于设计人员无法了解用户将会使电路遭遇的所有情况,因此此类方法必会选择相对保守的设计约束,从而导致设计出相对较大的安全裕度以覆盖较宽范围的可能场景。进一步地,间接的测试和测量不仅使问题区域的故障排除变得更加困难,还不允许设计人员充分利用可用的计算资源,因为间接获得的参数仅作为代理,只能粗略估计最终执行计算以提供期望输出的例如微控制器或机器学习硬件(比如cnn电路)在特定条件下将如何表现。
[0029]
例如,特定感兴趣区域(比如裸片上的热点)被逻辑电路系统覆盖,并且因此无法接近以允许精确测量来从中得出关于余量的可靠结论,从而保证电路可靠地操作而不会出现故障。另外,测量电路系统的实施需要为几个电路部件提供额外的裸片空间,每个电路部件都有自己的余量和余量要求,因此部分地违背了其自己的目的。
[0030]
相比之下,cnn应用及其使用情况有利地更加直接和可预测,从而允许更好地近似实际电路/操作条件。本文中的各种实施例提供了非侵入式、低成本的系统和方法,其允许设计人员在无需牺牲计算能力或其他宝贵资源的情况下,在机器学习的背景下建立考虑最坏情况场景的余量和安全裕度。相比于机器学习硬件本身尺寸相对较小的低成本控制器或逻辑节省了裸片空间,因为无需为唯一目的是进行测量的电路系统提供额外的空间。在各种实施例中,测试网络利用机器学习电路的(多个)实际输出并利用机器学习电路的特定特性来充分利用可用计算资源。
[0031]
详细地,机器学习电路的一个已知特性是,在具有特定复杂性的已知网络处给定已知输入,事件链中相对较小的变化通常会放大至输出处的相对较大的变化。结果,可以很容易检测出沿着逻辑链或计算路径的潜在问题。相比而言,这种放大并不像加密应用中加密方案的已知特性那样剧烈,平均来说,在加密算法的输入处翻转单个位会导致输出处的一半位也被翻转。
[0032]
本文中的各种实施例使用机器学习电路本身的部分或全部作为诊断工具来评估电路行为并调整电路的操作参数以最终优化电源资源利用率,从而提高计算效率。如果机器学习电路(例如,cnn)在其上操作的、电路的至少某个部分超过临界温度或操作速度过快,则cnn将在操作期间改变行为。在这种情况下,cnn可能无法按预期操作并输出可观察或可测量的不正确结果。各种实施例通过使用已知输入(比如测试模式或测试程序)来利用这一点,以测试cnn的行为并控制一个或多个操作参数(例如,时钟速度)来降低安全裕度(例如,降低至尽可能低的时钟速度),从而提高整体计算能力。
[0033]
如下文参考图2所讨论的,在实施例中,为了确定一个或多个合适的电路参数以实现较低的误差裕度,例如以使cnn尽可能接近边缘操作,控制电路可以考虑一些ic可以比其他ic更快地操作,或者甚至ic的一部分可以比同一ic的另一部分更快地操作。
[0034]
图2展示了根据本披露的各种实施例的用于提高机器学习电路中的计算资源利用率的控制系统的示例性框图。如所描绘的,控制系统200可以包括控制器208、电源204、传感器202(例如,设备上温度传感器)和电路206,在实施例中,该电路可以包括存储器设备210、预处理器212和机器学习处理器214。本领域技术人员将理解图2中的一个或多个部件可以设置在asic、ic、半导体芯片等上。
[0035]
在实施例中,控制器208可以被实施为包括微控制器或状态机、比较器(未示出)和任何数量的本领域已知的控制电路元件,这些电路元件比如为逻辑电路、转换器、放大器和可以(在一次性可编程存储器中)存储测量、感测和计算得到的信息(比如机器学习处理器214的电路配置参数)的存储器。电路206中的机器学习处理器214可以被实施为例如操作cnn的任何部分的机器学习硬件加速器,该部分可以经历训练过程以执行一个或多个任务。电源204可以包括外部电源和内部电源的任何组合以向多个电路部件提供功率。设备上传感器202可以包括用于监测和/或测量与控制系统200相关联的参数的电路系统。示例性参数包括硬件相关参数,比如电流或电压以及环境参数(例如,温度)。定时相关参数可以包括时钟周期、处理时间等。注意,控制系统200内的子电路可以各自包括其自己的一组传感器202和相关联的监测电路系统。
[0036]
在操作中,控制器208可以促进控制系统200内和超出其的适当通信。在实施例中,控制器208可以实施功率管理方案,该方案考虑关于与电路206及其操作相关的测量数据或建模数据的信息,例如与机器学习处理器214相关的操作数据和/或配置数据,以通过调整操作参数来动态降低余量要求。在实施例中,控制器208可以通过使电源204降低电源电压或通过降低可变时钟速度来减小余量,理想地实现高度的计算资源利用,同时满足电路规格,而无论电路和环境条件如何改变。
[0037]
在实施例中,控制器208可以直接或间接控制电路206例如以开始在初始电源电压下操作,在该初始电源电压下,已知的输入数据216可以被应用于cnn或专用测试网络的至少一部分以产生输出218,该输出可以是推理结果或一些其他电路响应。初始电压可能已被选择为满足旨在确保电路206、尤其是机器学习处理器214的正常运行的余量要求或安全裕度。输入数据216可以包括可以用于验证电路206在特定设置或参数下可操作的测试模式或其他测试数据。在实施例中,一旦机器学习处理器214在输出218处生成推理结果,控制器208可以将该结果或其有效性与对应的参考结果进行比较以确定机器学习处理器214或电路206的任何部分是否按预期操作(例如,根据设计规格,测试模式是否产生令人满意的结果)。
[0038]
在实施例中,一旦控制器208确定电路206在该初始电源电压下正常工作,控制器208就可以指示电源204输出更低的电压,从而降低余量或安全裕度以换取电路效率的提高。有利地,在许多应用中,消耗更少的功率会延长电池寿命,增加mtbf,并具有由于芯片上的功率和功率密度降低而产生的各种其他令人期望的特性。
[0039]
在实施例中,控制器208可以使电源204以迭代方式(例如,使用本领域已知的各种统计方法以多个预定增量)降低其(多个)输出电压。在实施例中,控制器208可以重新加载相同或不同的输入数据并重复(多个)测试,例如直到实际上类似于金丝雀电路(canary circuit)的cnn不再生成令人满意的结果。换句话说,为了节省功率,可以在测试阶段降低电压,以(例如以通过/失败的方式)确定仍然返回正确测试结果的最低可接受操作电压或
最高可接受时钟速度。
[0040]
在实施例中,cnn可以使用与机器学习处理器214将在常规操作期间的实际推理中使用的参数相同或基本上相等的一组参数。以这种方式,与仅使用微控制器本身中不一定存在的逻辑表示的现有动态电压缩放方法不同,本文中的各种实施例使用cnn本身上的已知测试数据与操作参数相结合来模拟真实条件,这些操作参数与电路206在常规操作期间操作时的那些参数几乎相同,即,实施例使用cnn在执行实际推理操作时将使用的网络参数。
[0041]
本领域技术人员将理解,测试可以包括加速测试、可靠性测试和其他方法,并且对于给定电路,为了考虑可能在一段时间内发生的相对缓慢的漂移,可以在周期性或随机间隔中(例如,在后台和/或当机器学习处理器214未在使用中时)自动执行测试。
[0042]
在实施例中,一旦控制器208检测到被认为是不可接受的结果,例如,当机器学习处理器214生成结果与预期结果偏离一定量的推理时(该推理表明电路206中的一个或多个部件出现故障),控制器208可以指示电源将输出电压、频率等恢复为不会导致错误结果或cnn出现故障的适当修改值。在实施例中,控制器208可以向该修改值添加安全裕度以获得这样的电压:该电压满足余量规格,并且当在该电压下操作时能提高例如cnn的电路效率,该电压低于初始电压。
[0043]
在实施例中,可以编程的添加的安全裕度可以包括至少一个电路特定的部件,比如以考虑电路206的至少某个部分的独特特性。添加的安全裕度的另一部分可以考虑噪声(例如,开关噪声和其他不确定性)和其他动态或固定变量(例如,电路阻抗),这些变量可以在例如误差或裕度计算中被表征并加以考虑,在实施例中,该计算可以使用多个设备的统计采样并应用满足一种或多种电路规格的合适的统计数据分布模型。通常,添加的安全裕度应当尽可能小,但足以确保可靠操作。
[0044]
在实施例中,控制器208可以通过使用一组参数来减少或最小化迭代次数以确定或归零操作电压,并使用一组不同的参数来考虑电路特性(例如,温度偏移)的变化、状态的变化(例如,转换形成睡眠状态)、时间变化,并且响应于检测到其他变化。
[0045]
在实施例中,控制器208可以相对快速且频繁地获得推理结果并使用该信息,例如以跟踪环境条件。然后,基于该信息,控制电路可以迅速调整任何相关参数以调整误差裕度。在实施例中,控制器208可以使用最长逻辑链或主导路径作为测试网络。在实施例中,控制器208可以有利地使用cnn本身作为设计中的最长路径,以获得更准确的测试结果。以这种方式,电压和裕度都可以动态地调整到允许电路206或任何子电路物理地运行同时仍然满足上升时间和其他设计参数的最低水平。
[0046]
本领域技术人员将理解,尽管对于每个单独的部分或器件而言的(多个)最长路径是恒定的,但因为路径长度会由于制造的差异(例如,取决于每个器件在晶圆上的位置或制造过程中的批次)而发生变化,所以导致了芯片间变化的分布。因此,在实施例中,可以单独测试每个电路206以消除器件可变性对结果的影响,从而允许进一步减少余量并提高电路效率。
[0047]
相反,在实施例中,控制器208可以调整电路参数,比如功率输出、处理速度或其他性能指标,以利用可能由制造差异或环境因素导致的电路206的变化,这允许利用在某些器件中未充分利用的容量。一旦例如针对宽泛的电压范围确定了电路206的裕度,电路206就
可以开始对先前未“见到”的输入数据216执行常规推理操作。
[0048]
各种实施例利用机器学习处理器214的许多功能是高度确定性的这一事实来预测给定时间段内电路206的部分或全部的能量需求,并以比如优化输出功率的方式(例如,通过基于实际能量需求调整电源电压)控制电源204。在实施例中,控制器208可以基于预定参数和瞬时数据(比如操作类型和预期或计算的计算次数)预测电路206的任何部分的能量需求,并以能量高效的方式调整任何数量的电源的参数(比如电源电压和输出电流),例如以降低控制系统200中部件的余量或安全裕度。
[0049]
作为示例,给定经训练的神经网络模型,特定类型的计算操作(比如乘积和或乘法操作)的发生相对容易预测,因为与之相关的读取/写入和存储器访问操作相对容易确定。结果,对于给定的架构,可以相对准确地估计电路206的功耗,即,可以针对给定数量的操作预定功耗。
[0050]
在实施例中,控制器208可以利用这种可预定的网络相关和/或硬件相关信息来估计和调整比如电源电压裕度等裕度,以在情况允许时优化功率节省。类似地,控制器208可以利用硬件相关数据,比如时钟频率、输入和输出电流或电压,这些数据可以从其他可用源获得或检索并反馈到控制器208以使控制器208能够例如基于估计电压来调整裕度。应当理解,控制器208可以有利地将估计裕度与根据经验确定的裕度相结合以获得最终的操作裕度。
[0051]
注意,控制器208可以操纵任何类型的其他和/或附加指标来控制资源利用率,包括一个或多个机器学习配置参数。示例性指标可以包括定量和/或定性、局部或全局指标,并且可以包括操作参数,比如:数据相关参数,例如,读取操作、写入操作、存储操作、检索操作、计算中的步骤等的数量;定时相关参数,比如,时钟周期、处理时间;环境参数,比如温度数据。计算参数可以包括:数学运算的类型;正在处理的数据的类型或维度等。另外,可以直接从任何计算单元或任何辅助设备(例如,传感器202)或间接从系统200内部或外部的源获得、测量或得出任何数量的指标。本领域技术人员将理解,电路相关数据可以包括瞬时的、平均的或以其他方式操纵的数据。在实施例中,可以使用任何数量的指标例如通过使用根据经验或通过算法得出的公式来计算余量。
[0052]
本领域技术人员将理解,各种实施例可以利用任何已知的资源利用方法来提高效率、速度和其他电路特性。作为示例,电源204可以被控制为在待机模式下操作以降低控制系统200的功耗并增强其节能特征。
[0053]
图3是根据本披露的各种实施例的用于提高cnn中的计算资源利用率的说明性过程的流程图。在实施例中,用于增强计算能力的示例性过程300可以开始于在特定电压下操作(302)与一个或多个电路参数相关联并且包括cnn的至少一部分的电路。
[0054]
可以将已知的输入数据应用(304)于cnn的这部分例如以获得推理结果,可以将推理结果与参考进行比较(306),例如以确定电路是否正确操作。
[0055]
响应于确定(308)电路正确操作,可以降低(312)电压以获得包括降低的电压的一组操作参数的一个或多个值,并且过程300可以返回到步骤302以在现在降低的电压下操作电路。
[0056]
响应于确定电路未正确操作,可以确定(310)要添加到降低的电压的安全裕度以获得操作电压。
[0057]
最后,可以在操作电压下操作(314)cnn以获得cnn输出。注意,虽然示例性过程300是在降低电压的背景下给出的,但是本领域技术人员将认识到,同样可以使用提高计算资源利用率的其他手段。例如,本领域技术人员将理解,等效过程可以修改频率以获得本披露的目标。
[0058]
应当注意的是,在本文中:(1)可以可选地执行某些步骤;(2)步骤可以不限于本文所阐述的特定顺序;(3)可以按不同的顺序执行某些步骤;并且(4)可以同时完成某些步骤。在一个或多个实施例中,本文中的停止条件可以包括:(1)已经执行了设定次数的迭代;(2)已经达到一定量的处理时间;(3)收敛(例如,连续迭代之间的差小于第一阈值);(4)发散(例如,性能恶化);以及(5)已经达到可接受的结果。
[0059]
图4是根据本披露的各种实施例的用于提高cnn中的计算资源利用率的替代性过程的流程图。在实施例中,用于提高计算能力的过程400可以开始于使用已知会影响电路的数据处理效率的比如时钟频率或电源电压等感兴趣的参数来操作(402)cnn的部分或全部以获得推理结果。
[0060]
可以在一个或多个步骤中调整(404)该感兴趣的参数,例如,直到推理结果超过阈值(比如使推理结果出错的阈值)。
[0061]
然后,可以选择(406)与刚好在推理结果超过阈值之前的步骤相关联的感兴趣的参数作为电路参数,可以使用电路参数以提高的数据处理效率操作(408)cnn,例如以获得包括整个cnn的接口结果。
[0062]
图5描绘了根据本披露的实施例的信息处置系统(或计算系统)的简化框图。将理解的是,系统500的所示功能可以操作以支持计算系统的各种实施例,但是应当理解的是,计算系统可以以不同方式配置并且包括不同的部件、包括具有如图5中描绘的更少或更多的部件。
[0063]
如图5所展示的,计算系统500包括一个或多个cpu 501,该一个或多个cpu提供计算资源并且控制计算机。cpu 501可以利用微处理器等来实施,并且还可以包括一个或多个图形处理单元519和/或用于数学计算的浮点协处理器。系统500还可以包括系统存储器502,该系统存储器可以采用随机存取存储器(ram)、只读存储器(rom)或这两者的形式。
[0064]
还可以提供多个控制器和外围设备,如图5所示。输入控制器503表示到诸如键盘、鼠标、触摸屏和/或触笔等各种输入设备504的接口。计算系统500还可以包括用于与一个或多个存储设备508进行接口连接的存储控制器507,其中的每个存储设备包括诸如磁带或磁盘等存储介质,或者可以用于记录操作系统、实用程序和应用的指令程序的光学介质,这些程序可以包括实施本披露的各个方面的程序的实施例。(多个)存储设备506还可以用于存储经处理数据或者将根据本披露进行处理的数据。系统500还可以包括用于提供到显示设备511的接口的显示控制器509,该显示设备可以是阴极射线管(crt)、薄膜晶体管(tft)显示器、有机发光二极管、电致发光板、等离子体面板或者其他类型的显示器。计算系统500还可以包括用于一个或多个外围设备506的一个或多个外围设备控制器或接口505。外围设备的示例可以包括一个或多个打印机、扫描仪、输入设备、输出设备、传感器等。通信控制器514可以与一个或多个通信设备515进行接口连接,这使得系统500能够通过包括互联网、云资源(例如,以太网云、以太网光纤通道(fcoe)/数据中心桥接(dcb)云等)、局域网(lan)、广域网(wan)、存储区域网络(san)的多种网络中的任一种或通过包括红外信号的任何合适的
电磁载波信号连接到远程设备。根据本披露的处理后的数据和/或要处理的数据可以通过通信设备515进行通信。例如,图5中的加载器电路505可以从通过总线516耦接到通信控制器514的一个或多个通信设备515接收配置信息。
[0065]
在所展示的系统中,所有主要系统部件可以连接到总线516,该总线可以表示多于一条物理总线。然而,各个系统部件可以或者可以不在物理上彼此靠近。例如,输入数据和/或输出数据可以远程地从一个物理位置传输到另一个。另外,可以通过网络从远程位置(例如,服务器)访问实施本披露的各个方面的程序。这种数据和/或程序可以通过包括例如以下各项的各种机器可读介质中的任何一种进行传送:磁性介质,比如硬盘、软盘和磁带;光学介质,比如cd-rom和全息设备;磁光介质;以及被专门配置用于存储或用于存储和执行程序代码的硬件设备,诸如asic、可编程逻辑器件(pld)、闪存设备、以及rom设备和ram设备。
[0066]
本披露的各方面可以利用用于一个或多个处理器或处理单元以使得步骤得以执行的指令编码在一个或多个非暂态计算机可读介质上。应注意,该一个或多个非暂态计算机可读介质应包括易失性存储器和非易失性存储器。应注意,替代性实施方式是可能的,包括硬件实施方式或软件/硬件实施方式。可以使用(多个)asic、可编程阵列、数字信号处理电路系统等来实现硬件实施的功能。因此,任何权利要求中的“手段”术语都旨在覆盖软件实施方式和硬件实施方式两者。类似地,如本文使用的术语“一种或多种计算机可读介质”包括具有在其上具体化的指令程序的软件和/或硬件或其组合。考虑到这些实施方式的替代方案,将理解,附图及随附描述提供了本领域技术人员写入程序代码(即,软件)和/或制造电路(即,硬件)以执行所需处理将需要的功能信息。
[0067]
应当注意的是,本披露的实施例可以进一步涉及具有非暂态有形计算机可读介质的计算机产品,该非暂态有形计算机可读介质在其上具有用于执行各种计算机实施的操作的计算机代码。介质和计算机代码可以是专门设计和构造用于本披露的目的的介质和计算机代码,或者其可以属于相关领域的技术人员熟知或可用的种类。有形计算机可读介质的示例包括但不限于:磁性介质,比如硬盘、软盘和磁带;光学介质,比如cd-rom和全息设备;磁光介质;以及被专门配置用于存储或用于存储和执行程序代码的硬件设备,诸如asic、pld、闪存设备、以及rom设备和ram设备。计算机代码的示例包括如由编译器产生的机器代码以及包含由计算机使用解释器执行的更高阶代码的文件。本披露的实施例可以全部或部分地实施为可以处于由处理设备执行的程序模块中的机器可执行指令。程序模块的示例包括库、程序、例程、对象、部件和数据结构。在分布式计算环境中,程序模块可以物理地位于本地、远程、或两者的环境中。
[0068]
本领域技术人员将认识到的是,没有计算系统或编程语言对于本披露的实践是至关重要的。本领域技术人员还将认识到,以上所描述的多个元件可以物理地和/或在功能上被分成多个子模块或组合在一起。
[0069]
本领域技术人员将理解,前述示例和实施例是示例性的并且不限于本披露内容的范围。在阅读本说明书和研究附图之后对本领域技术人员而言显而易见的所有排列、增强、等效物、组合以及对其的改进都旨在包括在本披露内容的真实精神和范围内。还应注意,任何权利要求的要素都可以以不同方式布置,包括具有多种依赖性、配置和组合。

技术特征:


1.一种用于提高计算资源利用率的方法,该方法包括:迭代地执行包括以下步骤的步骤:在一定电压下操作电路,该电路与一个或多个电路参数相关联并且包括卷积神经网络(cnn)的至少一部分;在该电压下,将已知的输入数据应用于cnn的该部分以获得推理结果;将该推理结果与对应的参考结果进行比较,以确定该电路是否满足一个或多个指标;响应于确定该电路满足该一个或多个指标,降低该电压以获得包括降低的电压的一组操作参数的一个或多个值;响应于确定该电路不满足该一个或多个指标中的至少一些,确定要添加到该降低的电压的安全裕度以获得操作电压;以及在该操作电压下操作cnn以获得cnn输出。2.如权利要求1所述的方法,进一步包括响应于该电路满足该一个或多个指标,使用耦接到该电路的控制器使该电压增大预定量。3.如权利要求2所述的方法,进一步包括使用该控制器基于至少一个测得的物理参数来调整该一个或多个电路参数。4.如权利要求1所述的方法,其中,该用于提高cnn计算能力的方法是响应于目标应用的变化而执行的。5.一种用于提高计算资源利用率的系统,该系统包括:具有电压的电源;具有一个或多个电路参数的电路,该电路包括:存储器设备;以及卷积神经网络(cnn),该cnn耦接到该存储器设备;控制器,该控制器耦接到该cnn和该电源并且包括比较器;以及一个或多个传感器,该传感器耦接到该电路,该控制器迭代地执行包括以下步骤的步骤:在该电压下,将已知的输入数据应用于cnn的至少一部分以获得推理结果;使用该比较器来确定该推理结果是否与对应的参考结果基本上相同,以确定该电路是否满足一个或多个指标;响应于确定该电路满足该一个或多个指标,降低该电压以获得包括降低的电压的一组操作参数的一个或多个值;以及响应于确定该电路不满足该一个或多个指标中的至少一些,确定要添加到该降低的电压的安全裕度以获得生成cnn结果的cnn的操作电压。6.如权利要求5所述的系统,其中,响应于该电路满足该一个或多个指标,控制器使该电压增大预定量。7.如权利要求5所述的系统,其中,该已知的输入数据包括被配置为测试该cnn的该部分的测试模式,并且进一步包括为提高数据处理效率而选择的配置数据或权重数据中的至少一者。8.如权利要求5所述的系统,其中,该控制器基于从一个或多个检测电路获得的至少一个测得的物理参数来调整该一个或多个电路参数。
9.一种用于提高计算资源利用率的方法,该方法包括:使用已知会提高电路的数据处理效率的感兴趣的参数来操作卷积神经网络(cnn)的至少一部分以获得推理结果;在一个或多个步骤中调整该感兴趣的参数,直到该推理结果超过阈值;选择与该一个或多个步骤中在该推理结果超过该阈值之前的步骤相关联的感兴趣的参数作为电路参数;以及使用该电路参数操作cnn以获得cnn输出。10.如权利要求9所述的方法,其中,该感兴趣的参数包括频率或电压中的至少一者。

技术总结


提供了用于使用动态电压和频率缩放进行功率调制的非侵入式、低成本的系统和方法,其允许设计人员降低比如机器学习电路等计算电路背景下的余量和安全裕度要求,而不增加占用空间或无需牺牲计算能力和其他宝贵资源。各种实施例通过利用机器学习电路的特定特性并使用CNN作为用于评估电路行为和调整电路参数以充分利用可用计算资源的诊断工具来实现这一点。点。点。


技术研发人员:

M

受保护的技术使用者:

马克西姆综合产品公司

技术研发日:

2022.09.13

技术公布日:

2023/3/24

本文发布于:2024-09-22 19:30:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/79896.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电路   多个   电压   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议