CN116136752A - 阵列输入策略的确定方法和系统 - Google Patents

阵列输入策略的确定方法和系统 Download PDF

Info

Publication number
CN116136752A
CN116136752A CN202310416891.8A CN202310416891A CN116136752A CN 116136752 A CN116136752 A CN 116136752A CN 202310416891 A CN202310416891 A CN 202310416891A CN 116136752 A CN116136752 A CN 116136752A
Authority
CN
China
Prior art keywords
array
power consumption
multiply
accumulate
module
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
CN202310416891.8A
Other languages
English (en)
Other versions
CN116136752B (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 Denglin Technology Co ltd
Original Assignee
Shanghai Denglin 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 Denglin Technology Co ltd filed Critical Shanghai Denglin Technology Co ltd
Priority to CN202310416891.8A priority Critical patent/CN116136752B/zh
Publication of CN116136752A publication Critical patent/CN116136752A/zh
Application granted granted Critical
Publication of CN116136752B publication Critical patent/CN116136752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/46Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
    • G06F7/462Multiplying; dividing
    • G06F7/463Multiplying; dividing by successive additions or subtractions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Abstract

本申请提供了一种阵列输入策略的确定方法和系统,其中,该方法包括:根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率,若当前功耗值不满足预设功耗条件,和/或以功耗变化率不满足预设功耗变化率条件,则调整多个阵列模块中至少一个阵列模块的指示标记,根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略,输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算。在本申请中,通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

Description

阵列输入策略的确定方法和系统
技术领域
本申请涉及电路控制技术领域,具体而言,涉及一种阵列输入策略的确定方法和系统。
背景技术
大规模乘法累加阵列硬件通常用来实现矩阵运算或者卷积计算,是人工智能(Artificial Intelligence,AI)加速器和图形处理器(graphicsprocessing unit,GPU)中占比较大的功能模块。
目前,因数据量规模较大,乘法累加阵列硬件启动时往往在极短的时间内提高整个电路的功耗,形成剧烈变化的电流变化率(current change rate),造成电器条件失衡,进而导致电路功能错误。然而,目前尚未提供针对上述问题的改进方案。
发明内容
有鉴于此,本申请实施例提供了一种阵列输入策略的确定方法和系统,以通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线。
第一方面,本申请实施例提供了一种阵列输入策略的确定方法,应用于阵列电路,所述阵列电路包括:控制模块和乘法累加阵列,所述控制模块和所述乘法累加阵列电连接,所述乘法累加阵列包括:多个阵列模块,所述控制模块用于记录所述多个阵列模块是否正在进行数据运算的指示标记;
所述方法包括:
根据所述指示标记,计算所述乘法累加阵列的当前功耗值和当前功耗变化率值;
若所述当前功耗值不满足预设功耗条件,和/或所述以功耗变化率值不满足预设功耗变化率条件,则调整所述多个阵列模块中至少一个阵列模块的指示标记;
根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的输入策略,所述输入策略用于指示阻塞所述至少一个阵列模块进行数据运算,或者,输入预设数据至所述至少一个阵列模块进行数据运算。
在该方案中,通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。
在一可选的实施方式中,所述根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的输入策略,包括:
根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的候选输入策略;
获取基于所述候选输入策略时,所述乘法累加阵列的下一功耗值和下一功耗变化率;
若所述下一功耗值满足预设功耗限制条件,且所述下一功耗变化率满足预设功耗变化率限制条件,则确定所述候选输入策略为所述乘法累加阵列的输入策略。
在该方案中,在确定出候选输入策略后,将功耗限制条件和功耗变化率限制条件作为考虑因素,能够根据实际控制需求确定乘法累加阵列的输入策略,灵活性好。
在一可选的实施方式中,所述根据所述指示标记,计算所述乘法累加阵列的当前功耗值和当前功耗变化率,包括:
获取所述多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据;
根据所述指示标记和所述目标数据,计算所述当前功耗值;
根据所述指示标记和所述目标数据,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记的基础上,进一步将正在运算的目标数据作为考虑因素,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述根据所述指示标记和所述目标数据,计算所述当前功耗值,包括:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗值;
根据所述模块功耗值和所述指示标记,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗变化率;
根据所述模块功耗变化率和所述指示标记,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记的基础上,进一步将正在运算的目标数据作为考虑因素,计算正在进行数据运算的阵列模块的模块功耗值,再基于模块功耗值和指示标记计算功耗值和功耗变化率,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述根据所述指示标记和所述目标数据,计算所述当前功耗值,包括:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记和目标数据的基础上,进一步将正在运算的阵列结构作为考虑因素,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述乘法累加阵列包括:多个子乘法累加阵列,所述调整所述多个阵列模块中至少一个阵列模块的指示标记,包括:
调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记。
在该方案中,在调整阵列模块的指示标记时,将子乘法累加阵列作为考虑因素,使得指示标记的调整更加灵活。
在一可选的实施方式中,所述调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记,包括:
根据所述多个子乘法累加阵列的预设选择概率,从所述多个子乘法累加阵列中确定第一子乘法累加阵列;
对所述第一子乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
在该方案中,在应用场景对各子乘法累加阵列的性能需求不同的情况下,通过预设选择概率来选择第一子乘法阵列,能够满足不同性能要求或应用场景下的需求。
在一可选的实施方式中,所述调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记,包括:
依次轮询所述多个子乘法累加阵列,以从所述多个子乘法累加阵列中确定第二子乘法累加阵列;
对所述第二子乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
在该方案中,在应用场景通过轮询方式对选择第二子乘法阵列,能够满足不同性能要求或应用场景下的需求,并且更加灵活。
在一可选的实施方式中,所述依次轮询所述多个子乘法累加阵列,以从所述多个子乘法累加阵列中确定第二子乘法累加阵列,包括:
若所述多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询所述多个子乘法累加阵列,以确定所述第二子乘法累加阵列。
在该方案中,在两个子乘法累加阵列之间的功耗权重满足预设条件的情况下,通过轮询确定第二子乘法累加阵列,这样可以进一步保证多个子乘法累加阵列的平均选择。
第二方面,本申请实施例还提供了一种阵列输入策略的确定系统,包括:阵列电路和电子设备;
所述阵列电路包括:控制模块和乘法累加阵列,所述控制模块和所述乘法累加阵列电连接,所述乘法累加阵列包括:多个阵列模块,所述控制模块用于记录所述多个阵列模块是否正在进行数据运算的指示标记;
所述电子设备用于执行第一方面任一所述的阵列输入策略的确定方法。
在该方案中,阵列输入策略的确定系统中的电子设备通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。
第三方面,本申请实施例还提供了一种阵列输入策略的确定装置,应用于阵列电路,所述阵列电路包括:控制模块和乘法累加阵列,所述控制模块和所述乘法累加阵列电连接,所述乘法累加阵列包括:多个阵列模块,所述控制模块用于记录所述多个阵列模块是否正在进行数据运算的指示标记;
所述装置包括:
计算模块,用于根据所述指示标记,计算所述乘法累加阵列的当前功耗值和当前功耗变化率值;
调整模块,用于若所述当前功耗值不满足预设功耗条件,和/或所述以功耗变化率值不满足预设功耗变化率条件,则调整所述多个阵列模块中至少一个阵列模块的指示标记;
确定模块,用于根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的输入策略,所述输入策略用于指示阻塞所述至少一个阵列模块进行数据运算,或者,输入预设数据至所述至少一个阵列模块进行数据运算。
在该方案中,通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求
在一可选的实施方式中,所述确定模块,具体用于:
根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的候选输入策略;
获取基于所述候选输入策略时,所述乘法累加阵列的下一功耗值和下一功耗变化率;
若所述下一功耗值满足预设功耗限制条件,且所述下一功耗变化率满足预设功耗变化率限制条件,则确定所述候选输入策略为所述乘法累加阵列的输入策略。
在该方案中,在确定出候选输入策略后,将功耗限制条件和功耗变化率限制条件作为考虑因素,能够根据实际控制需求确定乘法累加阵列的输入策略,灵活性好。
在一可选的实施方式中,所述计算模块,具体用于:
获取所述多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据;
根据所述指示标记和所述目标数据,计算所述当前功耗值;
根据所述指示标记和所述目标数据,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记的基础上,进一步将正在运算的目标数据作为考虑因素,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述计算模块,具体用于:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗值;
根据所述模块功耗值和所述指示标记,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗变化率;
根据所述模块功耗变化率和所述指示标记,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记的基础上,进一步将正在运算的目标数据作为考虑因素,计算正在进行数据运算的阵列模块的模块功耗值,再基于模块功耗值和指示标记计算功耗值和功耗变化率,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述计算模块,具体用于:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗变化率。
在该方案中,在阵列模块的指示标记和目标数据的基础上,进一步将正在运算的阵列结构作为考虑因素,提高了功耗值和功耗变化率的准确度。
在一可选的实施方式中,所述乘法累加阵列包括:多个子乘法累加阵列,所述调整模块,具体用于:
调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记。
在该方案中,在调整阵列模块的指示标记时,将子乘法累加阵列作为考虑因素,使得指示标记的调整更加灵活。
在一可选的实施方式中,所述调整模块,具体用于:
根据所述多个子乘法累加阵列的预设选择概率,从所述多个子乘法累加阵列中确定第一子乘法累加阵列;
对所述第一子乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
在该方案中,在应用场景对各子乘法累加阵列的性能需求不同的情况下,通过预设选择概率来选择第一子乘法阵列,能够满足不同性能要求或应用场景下的需求。
在一可选的实施方式中,所述调整模块,具体用于:
依次轮询所述多个子乘法累加阵列,以从所述多个子乘法累加阵列中确定第二子乘法累加阵列;
对所述第二子乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
在该方案中,在应用场景通过轮询方式对选择第二子乘法阵列,能够满足不同性能要求或应用场景下的需求,并且更加灵活。
在一可选的实施方式中,所述调整模块,具体用于:
若所述多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询所述多个子乘法累加阵列,以确定所述第二子乘法累加阵列。
在该方案中,在两个子乘法累加阵列之间的功耗权重满足预设条件的情况下,通过轮询确定第二子乘法累加阵列,这样可以进一步保证多个子乘法累加阵列的平均选择。
第四方面,本申请实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面中任一所述的阵列输入策略的确定方法。
在该方案中,电子设备通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。
第五方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面中任一所述的阵列输入策略的确定方法。
在该方案中,处理器执行阵列输入策略的确定方法时,通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。
本申请提供了一种阵列输入策略的确定方法和系统,其中,该方法包括:根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率,若当前功耗值不满足预设功耗条件,和/或以功耗变化率不满足预设功耗变化率条件,则调整多个阵列模块中至少一个阵列模块的指示标记,根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略,输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算。在本申请中,通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线更,使大规模乘法累加阵列满足电器物理设计要求。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的阵列电路的结构示意图;
图2为本申请实施例提供的阵列输入策略的确定方法的流程示意图一;
图3为现有电流曲线的示意图;
图4为本申请的电流曲线的示意图;
图5为本申请实施例提供的阵列输入策略的确定方法的流程示意图二;图6为本申请实施例提供的阵列输入策略的确定方法的流程示意图三;
图7为本申请实施例提供的阵列输入策略的确定方法的流程示意图四;
图8为本申请实施例提供的乘法累加阵列的示意图;
图9为本申请实施例提供的阵列输入策略的确定方法的流程示意图五;
图10为本申请实施例提供的阵列输入策略的确定方法的流程示意图六;
图11为本申请实施例提供的阵列输入策略的确定系统的结构示意图;
图12为本申请实施例提供的电子设备的结构示意图;
图13为本申请实施例提供的阵列输入策略的确定装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
大规模乘累加阵列可以是大量乘加器堆积,也可以是脉动阵列,因为规模大,逻辑复杂,一般可以分为多个通道,各个通道为多级流水线设计。针对数据量规模较大时,乘法累加阵列硬件启动时往往在极短的时间内提高整个电路的功耗,形成剧烈的电流变化率(一般记作DIDT)变化,造成电器条件失衡,进而导致电路功能错误的问题,本申请提供了一种阵列电路控制方法,通过计算乘法累加阵列的功耗值和功耗变化率,并在功耗值不满足预设功耗条件,功耗变化率不满足预设功耗变化率条件的情况下,调整指示标记中的至少一个数据,以根据调整后的指示标记确定乘法累加阵列的输入策略,从而提供了一种基于功耗值和功耗变化率的风险控制方案,减小了电路功耗和电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。
在介绍本申请的技术方案之前,首先对电路功耗的仿真计算进行说明。
数字电路芯片设计一般由逻辑设计,物理设计两个流程,逻辑设计一般只关心电路功能,不关心物理实现方法,电子设计自动化(Electronic design automation,EDA)工具会把逻辑设计转换成具体的物理电路组合。
其中,设计电路类似搭积木,电路库里只有一些最简单的电路,逻辑设计时只需要描述具体的功能,比如完成一个8位的乘法,EDA工具通过编译,能将8位乘法这样的功能描述,具体转换成电路库单元(一定结构的与非门和寄存器组合)来实现,通过功能仿真,EDA工具能根据电路的结构,统计电路工作时这些库单元的功耗情况,可以得到整个电路的功耗结果。
本申请中乘累加阵列一般做流水线设计,本申请的功耗模型按照流水线的运算时序和电路结构构建,在特定的时间,通过EDA仿真流水线各级的功耗,得到该时刻整个电路的功耗和功耗变化率估计,用来作为控制电路的决策依据,降低DIDT风险。
下面结合几个具体实施例对本申请提供的阵列输入策略的确定方法进行说明。
图1为本申请实施例提供的阵列电路的结构示意图,图2为本申请实施例提供的阵列输入策略的确定方法的流程示意图一。
如图1所示,阵列电路包括:控制模块10和乘法累加阵列11,控制模块10和乘法累加阵列11电连接,乘法累加阵列11包括:多个阵列模块。
控制模块10用于记录多个阵列模块是否正在进行数据运算的指示标记,其中,该指示标记可以为数据形式,例如0、1,0可以用于指示对应阵列模块未正在进行数据运算,1可以用于指示对应阵列模块正在进行数据运算。
乘法累加阵列11可以为流水线阵列,控制模块将待进行乘法累加运算的数据序列输入至乘法累加阵列,经由多个阵列模块进行数据运算,在该过程中,控制模块可确定各阵列模块是否正在进行数据运算,并记录各阵列模块是否正在进行数据运算的指示标记。
可以理解的是,乘累加阵列11由流水线设计,流水线的每一级有相同或者不同的电路结构,它们由电路单元库里的子电路组合而成。
如图2所示,该方法可以包括:
S101、根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率。
其中,当前功耗值可以为乘法累加阵列当前的功耗值,当前功耗变化率可以为乘法累加阵列当前的功耗变化率。
由于指示标记用于指示对应阵列模块是否正在进行数据运算,由此可知多个阵列模块中正在进行数据运算的阵列模块,以及当前未在进行数据运算的阵列模块,然后可计算正在进行数据运算的阵列模块的当前功耗值和当前功耗变化率,并根据正在进行数据运算的阵列模块的当前功耗值和当前功耗变化率,计算乘法累加阵列的当前功耗值和当前功耗变化率。
S102、若当前功耗值不满足预设功耗条件,和/或以功耗变化率不满足预设功耗变化率条件,则调整多个阵列模块中至少一个阵列模块的指示标记。
其中,预设功耗条件可以为功耗值不超过第一预设功耗值且大于第二预设功耗值,即电路功耗和电流平滑上升或下降,预设功耗变化率条件可以为功耗变化率不超过第一预设功耗变化率且大于第二预设功耗变化率,即电路功耗变化率和电流变化率平滑上升或下降。
若当前功耗值不满足预设功耗条件,和/或当前功耗变化率不满足预设功耗变化率条件,说明乘法累加阵列的功耗和电流未平滑上升或下降,则调整多个阵列模块中至少一个阵列模块的指示标记,至少一个阵列模块可以为从多个阵列模块中随机选取的,也可以是按照阵列模块的预设功耗权重选取的,预设功耗权重用于指示阵列模块的功耗占乘法累加阵列总功耗的权重,本实施例对此不做特别限定。
需要说明的是,调整至少一个阵列模块的指示标记可以理解为将阵列模块的指示标记由0调整为1,或者由1调整为0,其中,若当前功耗值大于第一预设功耗值,和/或当前功耗变化率大于第一预设功耗变化率,说明乘法累加阵列的功耗和/或功耗变化率过大,为平滑电路曲线,则可将阵列模块的指示标记由1调整为0。
相应地,若当前功耗值大于第二预设功耗值,和/或当前功耗变化率大于第二预设功耗变化率,说明乘法累加阵列的功耗和/或功耗变化率过小,为平滑电流曲线,则可将阵列模块的指示标记由0调整为1。
S103、根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略。
阵列模块的指示标记用于决定乘法累加阵列的输入策略,将至少一个阵列模块的指示标记进行调整后,可对应确定乘法累加阵列的输入策略,该输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算。基于该输入策略可使得乘法累加阵列的功耗值满足预设功耗条件且功耗变化率满足预设功耗变化率条件,其中,控制模块可执行该输入策略,以使乘法累加阵列阻塞或无效填充。
阻塞至少一个阵列模块进行数据运算可以理解为暂停输入数据序列至至少一个阵列模块,这样至少一个阵列模块即不进行数据运算,从而不产生功耗,也就是说,在电路的低负载状态和高负载状态之间插入一个过度阶段,使低负载到高负载,变成低负载到过度状态到高负载,在功耗上升的过渡过程中,间歇性暂停输入数据序列来平滑功耗曲线,使之缓慢上升,直到最大负载,进而改善电路产生剧烈变化的电流变化率(一般记作DIDT)状态,既平滑了功耗变化。
输入预设数据至至少一个阵列模块进行数据运算可以理解额外输入预设数据至至少一个阵列模块,这样可使至少一个阵列模块对该预设数据进行数据运算,从而产生功耗,预设数据可以为无效数据,即输入至乘法累加阵列后用于维持功耗和电流,不输出运算结果,也就是说,在功耗下降的过度过程中,间歇性按需插入无效数据来维持乘累加阵列功耗,使之缓慢下降,通过控制过渡阶段的数据序列,来逐步改变乘法累加阵列的负载,进而改善电路产生DIDT状态。
以功耗上升阶段为例,图3为现有电流曲线的示意图,图4为本申请的电流曲线的示意图,如图3、图4所示,电流曲线的横坐标为时间,纵坐标为电流值,可以看出,现有电流曲线由低负载状态到高负载状态的时间段(0-10)小于本申请的电流曲线从低负载状态到高负载状态的时间段(0-20),由于本申请的电流曲线在低负载状态和高负载状态具有过渡阶段,加入过渡阶段后,电流变化平滑,通过增加过度时间降低了电流变化率,而现有电流曲线的电流变化率较大。
在本实施例的阵列输入策略的确定方法中,根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率,若当前功耗值不满足预设功耗条件,和/或以功耗变化率不满足预设功耗变化率条件,则调整多个阵列模块中至少一个阵列模块的指示标记,根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略,输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算。通过阻塞或输入预设数据至乘法累加阵列来减小电流变化率,平滑电流变化曲线更,使大规模乘法累加阵列满足电器物理设计要求。
图5为本申请实施例提供的阵列输入策略的确定方法的流程示意图二,如图5所示,根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略,包括:
S201、根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的候选输入策略。
根据调整后的至少一个阵列模块的指示标记,可确定乘法累加阵列的候选输入策略,候选输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算,基于该候选输入策略可使得乘法累加阵列的功耗值满足预设功耗条件且功耗变化率满足预设功耗变化率条件。
S202、获取基于候选输入策略时,乘法累加阵列的下一功耗值和下一功耗变化率。
下一功耗值可以为基于候选输入策略输入数据序列时,乘法累加阵列的功耗值,下一功耗变化率可以为基于候选输入策略输入数据序列时,乘法累加阵列的功耗变化率。
候选输入策略用于决定乘法累加阵列的下一功耗值和下一功率变化率,因此可获取基于该候选输入策略时,乘法累加阵列的下一功耗值和下一功耗变化率。
S203、若下一功耗值满足预设功耗限制条件,且下一功耗变化率满足预设功耗变化率限制条件,则确定候选输入策略为乘法累加阵列的输入策略。
预设功耗限制条件可以包括不超过预设最大功耗值且超过预设最小功耗值,预设功耗变化率限制条件可以包括不超过预设最大功耗变化率。
判断下一功耗值是否满足预设功耗限制条件,下一功耗变化率是否满足预设功耗变化率限制条件,若下一功耗值满足预设功耗限制条件,且下一功耗变化率满足预设功耗变化率限制条件,则确定候选输入策略为乘法累加阵列的输入策略。
其中,下一功耗值可以为当前功耗值和该候选输入策略造成的功耗增减值的和值,下一功耗变化率可以为当前功耗变化率和该候选输入策略造成的功耗变化率增减值的和值,即:预设最大功耗值>当前功耗值+候选输入策略造成的功耗增减值>预设最小功耗值,预设最大功耗变化率>当前功耗变化率+候选输入策略造成的功耗变化率增减值。
当然,可以理解的是,可以结合实际控制需求,设置预设功耗限制条件和预设功耗变化率条件,例如一段时间内的平均功耗值在一定功耗范围内,一段时间内的平均功耗变化率在一定功耗变化率范围内,也可以是周期级的具体功耗、功耗变化率限制等。
在本实施例的阵列输入策略的确定方法中,在确定出候选输入策略后,将功耗限制条件和功耗变化率限制条件作为考虑因素,能够根据实际控制需求确定乘法累加阵列的输入策略,灵活性好。
图6为本申请实施例提供的阵列输入策略的确定方法的流程示意图三,如图6所示,根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率,包括:
S301、获取多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据。
控制模块可确定各阵列模块是否正在进行数据运算,并记录多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据,例如,输入至乘法累加阵列的数据序列为A和B,且A和B均为64维的向量,则第一个阵列模块对A和B的第1-8维进行乘法运算,第二个阵列模块对A和B的第9-16维进行乘法运算,其它阵列模块依次类推,由此可以确定,第一个阵列模块所运算的目标数据为A和B的第1-8维数据,第二个阵列模块所运算的目标数据为A和B的第9-16维数据。
需要说明的是,控制模块可持续记录各时刻乘法累加阵列的多个阵列模块的指示标记,例如记录当前时刻之前多个时刻的各阵列模块的指示标记,这样在当前时刻,可确定输入的数据序列在乘法累加阵列中的位置,进而确定正在进行数据运算的阵列模块所运算的目标数据。
S302、根据指示标记和目标数据,计算当前功耗值。
S303、根据指示标记和目标数据,计算当前功耗变化率。
根据多个阵列模块的指示标记和目标数据,计算乘法累加阵列的当前功耗值,可以采用功耗值仿真模型,将多个阵列模块的指示标记和目标数据作为考虑因素,计算得到乘法累加阵列的当前功耗值。其中,功耗值仿真模型可以通过EDA工具实现。
类似地,根据多个阵列模块的指示标记和目标数据,计算乘法累加阵列的当前功耗变化率,可以采用功耗变化率模型,将多个阵列模块的指示标记和目标数据作为考虑因素,计算得到乘法累加阵列的当前功耗变化率。
在一种可能的实施方式中,根据指示标记和目标数据,计算当前功耗值,包括:根据指示标记和目标数据,计算正在进行数据运算的阵列模块的模块功耗值;根据模块功耗值和指示标记,计算当前功耗值。
根据多个阵列模型的指示标记和目标数据,可以仿真计算正在进行数据运算的阵列模块的模块功耗值,该模块功耗值为正在进行数据运算的阵列模块在运算目标数据时所对应的功耗值,然后可以根据模块功耗值的和值作为乘法累加阵列的当前功耗值,或者还可以对模块功耗值进行加权和运算得到乘法累加阵列的当前功耗值,本实施例对此不做特别限定。
可以理解的是,对于阵列模块而言,所运算数据的复杂度不同,其所对应的功耗可能不同,例如,对A和B的第1-2维进行乘法运算,和对对A和B的第1-8维进行乘法运算所对应的功耗不同。
类似地,根据指示标记和目标数据,计算当前功耗变化率,包括:根据指示标记和目标数据,计算正在进行数据运算的阵列模块的模块功耗变化率;根据模块功耗变化率和指示标记,计算当前功耗变化率。
根据多个阵列模型的指示标记和目标数据,可以仿真确定正在进行数据运算的阵列模块的模块功耗变化率,该模块功耗变化率为正在进行数据运算的阵列模块在运算目标数据时所对应的功耗变化率,然后可以根据模块功耗变化率的和值作为乘法累加阵列的当前功耗值,或者还可以对模块功耗变化率进行加权和运算得到乘法累加阵列的当前功耗变化率,本实施例对此不做特别限定。
该乘法累加阵列包括n部分(即n个阵列模块),每一部分由一定数据的电路单元组成,采用功耗模型计算正在进行数据运算的阵列模块的功耗,将所有正在进行数据运算的阵列模块的功耗值和功耗变化率分别加起来可得到整个乘法累加阵列的功耗值和功耗变化率,其中,n为大于0的整数。
表1为功耗值和功耗变化率的一种示例,参考表1,乘法累加阵列包括n个阵列模块,在t时刻,乘法累加阵列对应一个n维的指示标记,各指示标记分别对应一个阵列模块,用于指示对应阵列模块是否正在进行数据运算,若是,则为1,若否,则为0,通过功耗模型计算得到各阵列模块的功耗为10、5、3、15……,采用功耗变化率模型计算得到各阵列模块的功耗变化率(即功耗的一阶导数)为10、-5、-2、12……。其中,一阶导数近似为阵列模块的模块功耗值与上一个阵列模块的模块功耗值的差值,第一个阵列模块的功耗变化率为第一个阵列模块的功耗值与0的差值。
Figure SMS_1
表1
在本实施例的阵列输入策略的确定方法中,在阵列模块的指示标记的基础上,进一步将正在运算的目标数据作为考虑因素,提高了功耗值和功耗变化率的准确度。
图7为本申请实施例提供的阵列输入策略的确定方法的流程示意图四,如图7所示,根据指示标记和目标数据,计算当前功耗值,包括:
S401、根据指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,计算当前功耗值。
对于阵列模块而言,其阵列结构不同,其在进行数据运算时所对应的功耗可能不同,因此,根据多个阵列模块的指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,计算乘法累加阵列的当前功耗值,其中,可以采用功耗仿真模型,计算正在进行数据运算的阵列模块在运算目标数据时所对应的功耗值,然后将模块功耗值的和值作为乘法累加阵列的当前功耗值,或者将模块功耗值的加权和作为乘法累加阵列的当前功耗值,本实施例对此不做特别限定。
其中,该阵列结构可以为阵列模块的电路结构,例如对A和B的第1-8维进行乘法运算,对A和B的第1-16维进行乘法运算,所对应的两个阵列模块的阵列结构不同。
相应地,采用预设的功耗变化率模型,根据指示标记和目标数据,计算当前功耗变化率,包括:
S402、根据指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,计算当前功耗变化率。
对于阵列模块而言,其阵列结构不同,其在进行数据运算时所对应的功耗变化率可能不同,因此,采用功耗变化率模型,根据多个阵列模块的指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,可仿真确定乘法累加阵列的当前功耗变化率,其中,可以采用功耗变化率仿真模型,计算正在进行数据运算的阵列模块在运算目标数据时所对应的功耗变化率,然后将模块功耗变化率的和值作为乘法累加阵列的当前功耗值,或者将模块功耗变化率的加权和作为乘法累加阵列的当前功耗变化率,本实施例对此不做特别限定。
在本实施例的阵列输入策略的确定方法中,在阵列模块的指示标记和目标数据的基础上,进一步将正在运算的阵列结构作为考虑因素,提高了功耗值和功耗变化率的准确度。
在一些实施例中,乘法累加阵列可以由不同数据运算通道(子乘法累加阵列)组成,每个通道被分解为一定级数的流水线来设计,将每个通道的每级流水线作为一个单元(一个阵列模块),最终组合成为完整的乘法累加阵列。图8为本申请实施例提供的乘法累加阵列的示意图,如图8所示,乘法累加阵列包括n个子乘法累加阵列,各子乘法累加阵列包括多个阵列模块,n为正整数。
其中,调整多个阵列模块中至少一个阵列模块的指示标记,包括:调整多个子乘法累加阵列中至少一个子乘法累加阵列的至少一个阵列模块的指示标记。
乘法累加阵列包括多个子乘法累加阵列,在调整乘法累加阵列的至少一个阵列模块的指示标记时,可先确定多个子乘法累加阵列中的至少一个子乘法累加阵列,然后对该至少一个子乘法累加阵列的至少一个阵列模块的指示标记进行调整,其中,至少一个子乘法累加阵列可以为从多个子乘法累加阵列中随机选取的,也可以是按照设定规则选取的,本实施例对此不做特别限定。
图9为本申请实施例提供的阵列输入策略的确定方法的流程示意图五,如图9所示,调整多个子乘法累加阵列中至少一个子乘法累加阵列的至少一个阵列模块的指示标记,包括:
S501、根据多个子乘法累加阵列的预设选择概率,从多个子乘法累加阵列中确定第一子乘法累加阵列。
S502、对第一子乘法累加阵列的至少一个阵列模块的指示标记进行调整。
其中,子乘法累加阵列的预设选择概率为子乘法累加阵列被选择为阻塞或输入预设数据序列的概率,以阻塞为例,各子乘法累加阵列对应一阻塞概率,在需要阻塞时,可根据预设阻塞概率,从多个子乘法累加阵列中确定第一子乘法累加阵列,第一子乘法累加阵列可以为多个子乘法累加阵列中阻塞概率靠前的至少一个子乘法累加阵列。
然后,对第一子乘法累加阵列的至少一个阵列模块的指示标记进行调整,第一子乘法累加阵列的至少一个阵列模块可以为从第一子乘法累加阵列的多个阵列模块中随机选取的,也可以是按照设定规则选取的,本实施例对此不做特别限定。
可以理解的是,在应用场景对各子乘法累加阵列的性能需求不同的情况下,通过预设选择概率来选择第一子乘法阵列,能够满足不同性能要求或应用场景下的需求。
图10为本申请实施例提供的阵列输入策略的确定方法的流程示意图六,如图10所示,调整多个乘法累加阵列中至少一个乘法累加阵列的至少一个阵列模块的指示标记,包括:
S601、依次轮询多个子乘法累加阵列,以从多个子乘法累加阵列中确定第二子乘法累加阵列。
S602、对第二子乘法累加阵列的至少一个阵列模块的指示标记进行调整。
为实现多个子乘法累加阵列的平均选择,依次轮询多个子乘法累加阵列,以从多个子乘法累加阵列中确定第二子乘法累加阵列,使得多个子乘法累加阵列被平均选择,以阻塞为例,多个子乘法累加阵列包括:子乘法累加阵列1、子乘法累加阵列2、子乘法累加阵列3,子乘法累加阵列1在当前时刻之前的第一时刻被阻塞,子乘法累加阵列3在当前时刻之前的第二时刻被阻塞,子乘法累加阵列2未被阻塞过,则通过轮询确定子乘法累加阵列2为第二子乘法累加阵列。
然后,对第二子乘法累加阵列的至少一个阵列模块的指示标记进行调整,第二子乘法累加阵列的至少一个阵列模块可以为从第二子乘法累加阵列的多个阵列模块中随机选取的,也可以是按照设定规则选取的,本实施例对此不做特别限定。
在一些实施例中,依次轮询多个子乘法累加阵列,以从多个子乘法累加阵列中确定第二子乘法累加阵列,包括:若多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询多个子乘法累加阵列,以确定第二子乘法累加阵列。
预设功耗权重用于指示子乘法累加阵列的功耗站占乘法累加阵列总功耗的权重。
若多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询多个子乘法累加阵列,以从多个子乘法累加阵列中确定第二子乘法累加阵列,其中,预设条件可以包括:两个子乘法累加阵列之间的功耗权重不超过预设阈值,也就是说,在两个子乘法累加阵列之间的功耗权重不超过预设阈值的情况下,通过轮询确定第二子乘法累加阵列,这样可以进一步保证多个子乘法累加阵列的平均选择。
基于同一发明构思,本申请实施例中还提供了与阵列输入策略的确定方法对应的阵列输入策略的确定系统,由于本申请实施例中的系统解决问题的原理与本申请实施例上述阵列输入策略的确定方法相似,因此系统的实施可以参见方法的实施,重复之处不再赘述。
图11为本申请实施例提供的阵列输入策略的确定系统的结构示意图,如图11所示,该系统包括:包括:阵列电路100和电子设备200。
阵列电路100包括:控制模块10和乘法累加阵列11,控制模块10和乘法累加阵列11电连接,乘法累加阵列11包括:多个阵列模块,控制模块10用于记录多个阵列模块是否正在进行数据运算的指示标记。
电子设备200用于上述方法实施例提供的阵列输入策略的确定方法。
图12为本申请实施例提供的电子设备的结构示意图,如图12所示,电子设备200包括:处理器20、存储器21和总线22,存储器21存储有处理器20可执行的机器可读指令,当电子设备200运行时,处理器20与存储器21之间通过总线22通信,处理器20执行机器可读指令,以执行上述方法实施例提供的阵列输入策略的确定方法。
图13为本申请实施例提供的阵列输入策略的确定装置的结构示意图,该装置应用于阵列电路,阵列电路包括:控制模块和乘法累加阵列,控制模块和乘法累加阵列电连接,乘法累加阵列包括:多个阵列模块,控制模块用于记录多个阵列模块是否正在进行数据运算的指示标记。
如图13所示,该装置包括:
计算模块30,用于根据指示标记,计算乘法累加阵列的当前功耗值和当前功耗变化率值;
调整模块31,用于若当前功耗值不满足预设功耗条件,和/或以功耗变化率值不满足预设功耗变化率条件,则调整多个阵列模块中至少一个阵列模块的指示标记;
确定模块32,用于根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的输入策略,输入策略用于指示阻塞至少一个阵列模块进行数据运算,或者,输入预设数据至至少一个阵列模块进行数据运算。
在一可选的实施方式中,确定模块32,具体用于:
根据调整后的至少一个阵列模块的指示标记,确定乘法累加阵列的候选输入策略;
获取基于候选输入策略时,乘法累加阵列的下一功耗值和下一功耗变化率;
若下一功耗值满足预设功耗限制条件,且下一功耗变化率满足预设功耗变化率限制条件,则确定候选输入策略为乘法累加阵列的输入策略。
在一可选的实施方式中,计算模块30,具体用于:
获取多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据;
根据指示标记和目标数据,计算当前功耗值;
根据指示标记和目标数据,计算当前功耗变化率。
在一可选的实施方式中,计算模块30,具体用于:
根据指示标记和目标数据,计算正在进行数据运算的阵列模块的模块功耗值;
根据模块功耗值和指示标记,计算当前功耗值;
根据指示标记和目标数据,计算当前功耗变化率,包括:
根据指示标记和目标数据,计算正在进行数据运算的阵列模块的模块功耗变化率;
根据模块功耗变化率和指示标记,计算当前功耗变化率。
在一可选的实施方式中,计算模块30,具体用于:
根据指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,计算当前功耗值;
根据指示标记和目标数据,计算当前功耗变化率,包括:
根据指示标记、目标数据以及正在进行数据运算的阵列模块的阵列结构,计算当前功耗变化率。
在一可选的实施方式中,乘法累加阵列包括:多个子乘法累加阵列,调整模块31,具体用于:
调整多个子乘法累加阵列中至少一个子乘法累加阵列的至少一个阵列模块的指示标记。
在一可选的实施方式中,调整模块31,具体用于:
根据多个子乘法累加阵列的预设选择概率,从多个子乘法累加阵列中确定第一子乘法累加阵列;
对第一子乘法累加阵列的至少一个阵列模块的指示标记进行调整。
在一可选的实施方式中,调整模块31,具体用于:
依次轮询多个子乘法累加阵列,以从多个子乘法累加阵列中确定第二子乘法累加阵列;
对第二子乘法累加阵列的至少一个阵列模块的指示标记进行调整。
在一可选的实施方式中,调整模块31,具体用于:
若多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询多个子乘法累加阵列,以确定第二子乘法累加阵列。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法实施例提供的阵列输入策略的确定方法。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种阵列输入策略的确定方法,其特征在于,应用于阵列电路,所述阵列电路包括:控制模块和乘法累加阵列,所述控制模块和所述乘法累加阵列电连接,所述乘法累加阵列包括:多个阵列模块,所述控制模块用于记录所述多个阵列模块是否正在进行数据运算的指示标记;
所述方法包括:
根据所述指示标记,计算所述乘法累加阵列的当前功耗值和当前功耗变化率值;
若所述当前功耗值不满足预设功耗条件,和/或所述以功耗变化率值不满足预设功耗变化率条件,则调整所述多个阵列模块中至少一个阵列模块的指示标记;
根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的输入策略,所述输入策略用于指示阻塞所述至少一个阵列模块进行数据运算,或者,输入预设数据至所述至少一个阵列模块进行数据运算。
2.根据权利要求1所述的方法,其特征在于,所述根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的输入策略,包括:
根据调整后的所述至少一个阵列模块的指示标记,确定所述乘法累加阵列的候选输入策略;
获取基于所述候选输入策略时,所述乘法累加阵列的下一功耗值和下一功耗变化率;
若所述下一功耗值满足预设功耗限制条件,且所述下一功耗变化率满足预设功耗变化率限制条件,则确定所述候选输入策略为所述乘法累加阵列的输入策略。
3.根据权利要求1所述的方法,其特征在于,所述根据所述指示标记,计算所述乘法累加阵列的当前功耗值和当前功耗变化率,包括:
获取所述多个阵列模块中正在进行数据运算的阵列模块所运算的目标数据;
根据所述指示标记和所述目标数据,计算所述当前功耗值;
根据所述指示标记和所述目标数据,计算所述当前功耗变化率。
4.根据权利要求3所述的方法,其特征在于,所述根据所述指示标记和所述目标数据,计算所述当前功耗值,包括:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗值;
根据所述模块功耗值和所述指示标记,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记和所述目标数据,计算所述正在进行数据运算的阵列模块的模块功耗变化率;
根据所述模块功耗变化率和所述指示标记,计算所述当前功耗变化率。
5.根据权利要求3所述的方法,其特征在于,所述根据所述指示标记和所述目标数据,计算所述当前功耗值,包括:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗值;
所述根据所述指示标记和所述目标数据,计算所述当前功耗变化率,包括:
根据所述指示标记、所述目标数据以及所述正在进行数据运算的阵列模块的阵列结构,计算所述当前功耗变化率。
6.根据权利要求1所述的方法,其特征在于,所述乘法累加阵列包括:多个子乘法累加阵列,所述调整所述多个阵列模块中至少一个阵列模块的指示标记,包括:
调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记。
7.根据权利要求6所述的方法,其特征在于,所述调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记,包括:
根据所述多个子乘法累加阵列的预设选择概率,从所述多个子乘法累加阵列中确定第一子乘法累加阵列;
对所述第一子乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
8.根据权利要求6所述的方法,其特征在于,所述调整所述多个子乘法累加阵列中至少一个子乘法累加阵列的所述至少一个阵列模块的指示标记,包括:
依次轮询所述多个子乘法累加阵列,以从所述多个子乘法累加阵列中确定第二子乘法累加阵列;
对所述第二乘法累加阵列的所述至少一个阵列模块的指示标记进行调整。
9.根据权利要求8所述的方法,其特征在于,所述依次轮询所述多个子乘法累加阵列,以从所述多个子乘法累加阵列中确定第二子乘法累加阵列,包括:
若所述多个子乘法累加阵列的功耗权重满足预设条件,则依次轮询所述多个子乘法累加阵列,以确定所述第二子乘法累加阵列。
10.一种阵列输入策略的确定系统,其特征在于,包括:阵列电路和电子设备;
所述阵列电路包括:控制模块和乘法累加阵列,所述控制模块和所述乘法累加阵列电连接,所述乘法累加阵列包括:多个阵列模块,所述控制模块用于记录所述多个阵列模块是否正在进行数据运算的指示标记;
所述电子设备用于执行权利要求1-9任一所述的阵列输入策略的确定方法。
CN202310416891.8A 2023-04-19 2023-04-19 阵列输入策略的确定方法和系统 Active CN116136752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310416891.8A CN116136752B (zh) 2023-04-19 2023-04-19 阵列输入策略的确定方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310416891.8A CN116136752B (zh) 2023-04-19 2023-04-19 阵列输入策略的确定方法和系统

Publications (2)

Publication Number Publication Date
CN116136752A true CN116136752A (zh) 2023-05-19
CN116136752B CN116136752B (zh) 2023-06-30

Family

ID=86334733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310416891.8A Active CN116136752B (zh) 2023-04-19 2023-04-19 阵列输入策略的确定方法和系统

Country Status (1)

Country Link
CN (1) CN116136752B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463453B1 (en) * 1998-01-12 2002-10-08 Motorola, Inc. Low power pipelined multiply/accumulator with modified booth's recoder
US20150185799A1 (en) * 2013-12-30 2015-07-02 Netapp, Inc. Power management techniques for computer-readable storage devices
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN110673824A (zh) * 2018-07-03 2020-01-10 赛灵思公司 矩阵向量乘电路以及循环神经网络硬件加速器
US20210064373A1 (en) * 2019-08-27 2021-03-04 Neuchips Corporation Matrix multiplication device and operation method thereof
CN112652333A (zh) * 2019-10-10 2021-04-13 三星电子株式会社 采用存储器中处理的半导体存储器装置及其操作方法
CN113076083A (zh) * 2021-06-04 2021-07-06 南京后摩智能科技有限公司 数据乘加运算电路
CN113302629A (zh) * 2019-01-18 2021-08-24 硅存储技术股份有限公司 用于在深度学习人工神经网络的模拟神经存储器中将神经元电流转换成基于神经元电流的时间脉冲的系统
US20220036123A1 (en) * 2021-10-20 2022-02-03 Intel Corporation Machine learning model scaling system with energy efficient network data transfer for power aware hardware
CN114424198A (zh) * 2019-09-17 2022-04-29 安纳富来希股份有限公司 乘法累加器
CN114442795A (zh) * 2021-01-19 2022-05-06 沐曦集成电路(上海)有限公司 多核处理装置及其功耗控制方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463453B1 (en) * 1998-01-12 2002-10-08 Motorola, Inc. Low power pipelined multiply/accumulator with modified booth's recoder
US20150185799A1 (en) * 2013-12-30 2015-07-02 Netapp, Inc. Power management techniques for computer-readable storage devices
CN110673824A (zh) * 2018-07-03 2020-01-10 赛灵思公司 矩阵向量乘电路以及循环神经网络硬件加速器
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN113302629A (zh) * 2019-01-18 2021-08-24 硅存储技术股份有限公司 用于在深度学习人工神经网络的模拟神经存储器中将神经元电流转换成基于神经元电流的时间脉冲的系统
US20210064373A1 (en) * 2019-08-27 2021-03-04 Neuchips Corporation Matrix multiplication device and operation method thereof
CN114424198A (zh) * 2019-09-17 2022-04-29 安纳富来希股份有限公司 乘法累加器
CN112652333A (zh) * 2019-10-10 2021-04-13 三星电子株式会社 采用存储器中处理的半导体存储器装置及其操作方法
CN114442795A (zh) * 2021-01-19 2022-05-06 沐曦集成电路(上海)有限公司 多核处理装置及其功耗控制方法
CN113076083A (zh) * 2021-06-04 2021-07-06 南京后摩智能科技有限公司 数据乘加运算电路
US20220036123A1 (en) * 2021-10-20 2022-02-03 Intel Corporation Machine learning model scaling system with energy efficient network data transfer for power aware hardware

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAROJU SAIKUMAR等: ""Design and Performance Analysis of Multiply-Accumulate (MAC) Unit"", 《2014 INTERNATIONAL CONFERENCE ON CIRCUITS, POWER AND COMPUTING TECHNOLOGIES [ICCPCT-2014]》, pages 1084 - 1089 *
李道通;夏银水;钱立波;: "基于信号阻断的可配置低功耗乘法器设计", 无线通信技术, no. 03, pages 48 - 53 *

Also Published As

Publication number Publication date
CN116136752B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
US20180262205A1 (en) Techniques for floating-point number conversion
US7725519B2 (en) Floating-point processor with selectable subprecision
US10491239B1 (en) Large-scale computations using an adaptive numerical format
CN102566964B (zh) 矢量浮点变元缩减
EP0424086B1 (en) Arithmetic processing apparatus and method used thereby
EP2645199A1 (en) Transcendental and non-linear functions using series expansion
MX2008010873A (es) Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable.
CN114341892A (zh) 具有用于高效参数更新的降低精度参数分量的机器学习硬件
CN107038014B (zh) 舍入反平方根结果
EP3769208B1 (en) Stochastic rounding logic
US8504954B1 (en) Methodology for automatically generating series-approximated components
EP3745314A1 (en) Method, apparatus and computer program for training deep networks
CN116136752B (zh) 阵列输入策略的确定方法和系统
CN113703840A (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
CN113126954B (zh) 浮点数乘法计算的方法、装置和算术逻辑单元
CN109241784A (zh) 一种ssd的国密sm2签名验证方法及系统
CN106528050B (zh) 尾随或前导数字预测器
US7689642B1 (en) Efficient accuracy check for Newton-Raphson divide and square-root operations
CN114296682A (zh) 浮点数处理装置、方法、电子设备、存储介质及芯片
US9612800B2 (en) Implementing a square root operation in a computer system
US10831445B1 (en) Multimodal digital multiplication circuits and methods
US20210064976A1 (en) Neural network circuitry having floating point format with asymmetric range
CN113971453A (zh) 一种数据归一化处理方法、存储介质和计算机设备
EP4310730A1 (en) Processing data using a neural network "nn" implemented in hardware
CN111124361A (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