CN115048214A - 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质 - Google Patents

计算设备的芯片调频方法、装置、算力板、计算设备及存储介质 Download PDF

Info

Publication number
CN115048214A
CN115048214A CN202210566138.2A CN202210566138A CN115048214A CN 115048214 A CN115048214 A CN 115048214A CN 202210566138 A CN202210566138 A CN 202210566138A CN 115048214 A CN115048214 A CN 115048214A
Authority
CN
China
Prior art keywords
kernel
frequency point
working frequency
frequency
calculation
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
Application number
CN202210566138.2A
Other languages
English (en)
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.)
Canaan Creative Co Ltd
Original Assignee
Canaan Creative 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 Canaan Creative Co Ltd filed Critical Canaan Creative Co Ltd
Priority to CN202210566138.2A priority Critical patent/CN115048214A/zh
Publication of CN115048214A publication Critical patent/CN115048214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable 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/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3243Power saving in microcontroller unit
    • 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/58Random or pseudo-random number generators
    • 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)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Transmitters (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Credit Cards Or The Like (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明提供了一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核。所述芯片调频方法包括有:为所述计算设备的运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;分析每个所述内核在当前工作频点的计算性能指标;根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。

Description

计算设备的芯片调频方法、装置、算力板、计算设备及存储 介质
本申请为分案申请,原申请的申请日为:2018年06月06日;原申请的申请号为:201810576556.3;原申请的发明名称为:计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。
技术领域
本发明涉及计算设备的芯片调频技术领域,尤其涉及一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。
背景技术
用于海量数据运算的计算设备中,通常集成了大量运算芯片,由于运算芯片制造工艺的限制,不同运算芯片的工作性能、算力、频率不尽相同;同时,单颗运算芯片也通常由多个相互独立的内核(Core)组成,运算芯片内不同位置工艺偏差、压降等差异也使得各个内核的实际工作性能不尽相同。针对不同运算芯片及其内核的工作性能差异,如何动态调节运算芯片实际所需频率并设定各个内核的自适应方案,为亟待解决的问题。现有计算设备中为每颗运算芯片及其内核提供的频率一致,无法发挥性能较优的内核的计算优势,性能较弱内核影响运算芯片的运算性能,进而影响整体计算设备的运算性能。
另外,中国专利申请CN201611169618.6公开了调整电路,分别与各串联供电芯片连接,对各串联供电芯片进行电压、温度或频率调整。所述调整单元对各串联供电芯片进行频率调整时,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。根据待供电单元的状态寄存器指示的状态判断待供电单元的工作状态是否正常,所述状态寄存器指示的状态包括:电压状态、温度状态、工作频率状态;或者根据待供电单元对发送给该待供电单元的数据的反馈数据,判断待供电单元的工作状态是否正常。
中国专利申请CN201611169618.6公开的一个实施例中,调整电路对各串联供电芯片进行频率调整时,作为频率调整电路,具体可以通过一个检测器,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,具体可以通过一个调节器,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。可见,CN201611169618.6公开了调节器可以对芯片进行频率调整,但其仅仅是根据待供电单元的是否正常收发数据、电压状态、温度状态、频率状态等工作状态来调整芯片的工作频率,频率调整机制缺乏准确性,并不能充分发挥芯片的运算性能。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质,其能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
本发明提供一种计算设备的芯片调频方法,所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核,其特征在于,包括步骤有:
为所述计算设备的所述运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
分析每个所述内核在当前工作频点的计算性能指标;
根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
上述的芯片调频方法,其中,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点。
上述的芯片调频方法,其中,所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调包括:
根据所述内核的所述计算性能指标,使得工作于所述中间工作频点的内核的数量大于工作于所述低频工作频点的内核的数量和/或工作于所述高频工作频点的内核的数量。
上述的芯片调频方法,其中,多个所述内核按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
上述的芯片调频方法,其中,所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调包括:
统计被调频后的所述内核在各所述工作频点上的当前分布状态;
根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
上述的芯片调频方法,其中,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的至少部分分布图在其坐标系上移动。
上述的芯片调频方法,其中,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的分布图在其坐标系上向左或者向右移动。
上述的芯片调频方法,其中,所述根据所述内核的所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
上述的芯片调频方法,其中,所述若超过所述第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
若超过所述第二比率的所述内核工作于所述最高工作频点上,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
所述若超过预定的所述第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
若超过所述第三比率的所述内核工作于所述最低工作频点上,将一个所述工作频点修改设置为一个所述优化低频工作频点。
上述的芯片调频方法,其中,所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
上述的芯片调频方法,其中,所述若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
若工作于所述最高工作频点上的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
所述若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
若工作于所述最低工作频点的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化低频工作频点。
上述的芯片调频方法,其中,所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若超过预定的第四比率的所述内核工作于至少一所述中间工作频点上,停止调整设置所述工作频点的频率;或者
若工作于在至少一所述中间工作频点上的所述内核的数目最多,停止调整设置所述工作频点的频率。
上述的芯片调频方法,其中,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的计算结果是否达到预定的计算正确率。
上述的芯片调频方法,其中,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述计算性能指标达到所述第一指标阈值,将所述内核的所述当前工作频点上调;
若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调;和/或
若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调。
上述的芯片调频方法,其中,还包括步骤有:
若工作于预定的至少一个优化工作频点的所述内核超过预定的第一比率,停止对所述内核进行调频;或者
若工作于至少一所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。
上述的芯片调频方法,其中,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调;和/或
若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到。
上述的芯片调频方法,其中,所述在预定的调整周期内,分析所述内核的所述计算正确率是否达到所述第一正确率阈值和/或第二正确率阈值的步骤还包括:
在所述调整周期内,分析所述内核提交的随机数是否正确;
统计所述内核在所述调整周期内提交的正确随机数的个数和错误随机数的个数;
根据所述正确随机数的个数和所述错误随机数的个数,计算出所述内核在所述调整周期内的随机数计算正确率,并判断所述随机数计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述随机数计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
若所述内核的所述随机数计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
上述的芯片调频方法,其中,所述在预定的所述调整周期内,分析所述内核的所述计算正确率是否达到预定的所述正确率阈值的步骤还包括:
根据预设的实时调整指令,实时分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;或者
根据接收的即时调整指令,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
根据接收的即时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
上述的芯片调频方法,其中,其包括步骤有:
频点设置步骤,为所述计算设备的所述运算芯片设置多个工作频点;
计算性能分析步骤,分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
频率调整步骤,若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,将所述内核的所述当前工作频点进行下调。
上述的芯片调频方法,其中,还包括参考节点值,所述计算性能分析步骤进一步包括:
在所述参考节点值上增加一次所述计算正确权重值,在所述参考节点值上减少一次所述计算错误权重值。
上述的芯片调频方法,其中,所述方法还包括:
判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
所述频率调整步骤进一步包括:
若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;
若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调。
上述的芯片调频方法,其中,所述方法还包括:
通过调整所述内核的所述参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和/或所述计算错误阈值,控制所述内核的调整周期或所述内核期望容忍的驻留差错率。
上述的芯片调频方法,其中,所述方法还包括:
通过控制所述计算正确权重值和所述计算错误权重值的比值控制所述内核期望容忍的驻留差错率。
上述的芯片调频方法,其中,所述方法还包括:
通过控制所述计算正确权重值和所述计算错误权重值的绝对值大小控制调整周期。
上述的芯片调频方法,其中,所述方法还包括:
通过控制所述计算正确阈值和所述计算错误阈值的绝对值大小控制所述调整周期。
上述的芯片调频方法,其中,所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
上述的芯片调频方法,其中,所述内核在所述当前工作频点的计算错误率小于驻留差错率时,所述内核的所述当前工作频点将被上调;所述内核在所述当前工作频点的计算错误率大于驻留差错率时,所述内核的所述当前工作频点将被下调。
上述的芯片调频方法,其中,所述分析所述内核的每次计算是否正确的步骤还包括:
分析所述内核每次提交的随机数是否正确;
所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上增加一次所述计算错误权重值的步骤还包括:
所述内核每提交至少一次正确随机数,在所述参考节点值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述参考节点值上减少一次所述计算错误权重值。
上述的芯片调频方法,其中,所述分析所述内核每次提交的所述随机数是否正确的步骤还包括:
所述内核递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;
若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
上述的芯片调频方法,其中,所述判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值的步骤还包括:
根据预设的实时调整指令,实时判断所述内核的所述当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,判断所述内核的所述当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;或者
根据接收的即时调整指令,分析所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
所述根据所述内核的所述计算性能指标,将所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述当前参考节点值达到所述计算正确阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
根据接收的即时调整指令,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
上述的芯片调频方法,其中,将所述运算芯片中的多个所述内核分别工作于各所述工作频点,多个所述工作频点的频点个数、频率之间差距为可调节式设置。
上述的芯片调频方法,其中,所述为所述计算设备的所述运算芯片设置多个所述工作频点,将所述运算芯片中的多个所述内核分别工作于各所述工作频点的步骤还包括:
通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
根据所述内核的所述计算性能指标,通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
上述的芯片调频方法,其中,所述锁相环电路设置于所述运算芯片的内部或外部。
上述的芯片调频方法,其中,相邻的所述工作频点之间的频差为1~10%。
本发明还提供一种计算设备的芯片调频装置,基于上述任意一项所述的芯片调频方法,所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核,其特征在于,所述芯片调频装置包括:
频点设置模块,用于为所述计算设备的运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
计算性能分析模块,用于分析每个所述内核在当前工作频点的计算性能指标;
频率调整模块,用于根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
上述的芯片调频装置,其中,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点。
上述的芯片调频装置,其中,根据所述内核的所述计算性能指标,使得工作于所述中间工作频点的内核的数量大于工作于所述低频工作频点的内核的数量和/或工作于所述高频工作频点的内核的数量。
上述的芯片调频装置,其中,多个所述内核按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
上述的芯片调频装置,其中,进一步包括:
频点统计模块,用于统计被调频后的所述内核在各所述工作频点上的当前分布状态;
频点调整模块,用于根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
上述的芯片调频装置,其中,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的至少部分分布图在其坐标系上移动。
上述的芯片调频装置,其中,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的分布图在其坐标系上向左或者向右移动。
上述的芯片调频装置,其中,所述频点调整模块还包括:
第一频点调整子模块,用于若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
第二频点调整子模块,用于若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
上述的芯片调频装置,其中,所述频点调整模块还包括:
第三频点调整子模块,用于若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
第四频点调整子模块,用于若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
上述的芯片调频装置,其中,所述计算性能分析模块还用于在预定的调整周期内,分析所述内核的计算结果是否达到预定的计算正确率。
上述的芯片调频装置,其中,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值;
所述频率调整模块用于若所述内核的所述计算性能指标达到所述第一指标值,将所述内核的所述当前工作频点上调;
所述频率调整模块用于若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调;和/或
所述频率调整模块用于若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调。
上述的芯片调频装置,其中,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
所述频率调整模块用于若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调;和/或用于若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调。
上述的芯片调频装置,其中,所述计算性能分析模块还用于分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
所述频率调整模块用于若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,将所述内核的所述当前工作频点进行下调。
本发明还提供一种包括有上述任意一种所述芯片调频装置的算力板。
本发明还提供一种包括有上述任意一种所述芯片调频装置的计算设备。
本发明还提供一种存储介质,用于存储一种用于上述任意一种所述计算设备的芯片调频方法的计算机程序。
本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算性能指标,对内核的当前工作频点进行上调或下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
附图说明
图1是本发明计算设备的芯片调频装置的结构示意图;
图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图;
图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图;
图4是本发明第三实施例中计算设备的芯片调频装置的结构示意图;
图5是本发明第三实施例中参数设置的实例图;
图6是本发明第四实施例中计算设备的芯片调频装置的结构示意图;
图7是本发明第四实施例中内核在各个工作频点工作的分布状态图;
图8是本发明计算设备的芯片调频方法的流程图;
图9是本发明第一实施例中计算设备的芯片调频方法的流程图;
图10是本发明第二实施例中计算设备的芯片调频方法的流程图;
图11是本发明第二实施例中计算设备的优选芯片调频方法的流程图;
图12是本发明第三实施例中计算设备的芯片调频方法的流程图;
图13是本发明第三实施例中计算设备的优选芯片调频方法的流程图;
图14是本发明第四实施例中计算设备的芯片调频方法的流程图;
图15是本发明第四实施例中计算设备的优选芯片调频方法的流程图之一;
图16是本发明第四实施例中计算设备的优选芯片调频方法的流程图之二;
图17是本发明计算设备的结构示意图。
附图标记:
100-计算设备的芯片调频装置
10-频点设置模块
20-计算性能分析模块
21-第一分析子模块
211-第一计算单元 212-第一验算单元
22-统计子模块 23-第一判断子模块
24-设置子模块 25-第二分析子模块
251-第二计算单元 252-第二验算单元
26-计数子模块 27-第二判断子模块
30-频率调整模块
31-频率调整子模块 32-停止频率调整子模块
50-频点统计模块 60-频点调整模块
61-第一频点调整子模块 62-第二频点调整子模块
63-第三频点调整子模块 64-第四频点调整子模块
65-第一停止调整子模块 66-第二停止调整子模块
70-锁相环电路 80-内核
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的,本说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但是不是每个实施例必须包含这些特定特征、结构或特性。此外,这样的表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,不管有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。
此外,在说明书及后续的权利要求当中使用了某些词汇来指称特定组件或部件,所属领域中具有通常知识者应可理解,制造商可以用不同的名词或术语来称呼同一个组件或部件。本说明书及后续的权利要求并不以名称的差异来作为区分组件或部件的方式,而是以组件或部件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求书中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此系包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。
图1是本发明计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算。所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核(Core)80。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。
需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片的频率调整机制和内核层面的频率调整机制。所述运算芯片的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核 80工作于各个工作频点,充分发挥每个内核80的工作性能。所述内核层面的频率调整机制是指根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20 和频率调整模块30,其中:
所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。
即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点: 500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路(PhaseLocked Loop,PPL)70为运算芯片设置多个工作频点,当然频点设置模块10 也可以通过其他硬件或软件为运算芯片设置多个工作频点。
所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
所述频率调整模块30,用于根据内核80在当前工作频点的计算性能指标,对内核80的当前工作频点进行上调或下调。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。优选的是,周期性地对内核80的频率进行调节,若内核80在频率的调整周期内的计算正确率达到第一正确率阈值,表明该内核80 尚未达到最佳计算性能,因此将内核80的当前工作频点上调到较高的上一个工作频点;若内核80在频率的调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到较低的下一个工作频点。
本发明芯片调频装置100可设置于运算芯片的内部或外部。本发明根据运算芯片中各个内核80的实际计算性能评价内核80的工作性能,调节内核80对应频率,充分发挥性能较优内核80的计算优势,并避免性能较弱内核80影响运算芯片的运算性能,最大程度发挥各个内核80的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核80 不会在不同频率间跳转,工作频率相对稳定。
图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核 (Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
所述频点设置模块10,用于通过多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,各个工作频点的频率不同,且所述工作频点与锁相环电路70为一一对应关系。优选的是,锁相环电路70设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz。因此,本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。优选的是,计算性能分析模块20用于在预定的调整周期内,分析内核80的计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,其中,第一指标阈值与第二指标阈值相同或者不相同。
所述频率调整模块30,用于根据内核80的计算性能指标,通过锁相环电路 70对内核80的当前工作频点进行上调或下调。当然,频率调整模块30也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。优选的是,频率调整模块30用于若内核80的计算性能指标达到第一指标阈值,将内核80 的当前工作频点上调到上一个工作频点;和/或,频率调整模块30用于若内核 80的计算性能指标未达到第二指标阈值,将内核80的当前工作频点下调到下一个工作频点;和/或频率调整模块30用于若内核80的计算性能指标达到第三指标阈值,将内核80的当前工作频点下调到下一个工作频点。
例如,结合上述“例如设置6个工作频点,500MHz,550MHz,600MHz, 650MHz,700MHz,750MHz。”,以及内核80的当前工作频点为600MHz为例,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值和第二指标阈值均为90%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到90%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核80的当前工作频点 600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz 下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为 1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。
再例如,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值为90%,第二指标阈值为80%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz 上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到 80%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz 下调到下一个工作频点550MHz。
又例如,所述计算性能指标为内核80在调整周期内的正确计算次数和错误结算次数,第一指标阈值为100,第二指标阈值为10。若内核80在调整周期内的正确计算次数达到100,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的错误计算次数达到10,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
优选的是,所述频率调整模块30还包括有频率调整子模块31和停止频率调整子模块32,其中:
所述频率调整子模块31,用于根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。优选的是,频率调整子模块31根据内核80的计算性能指标,通过锁相环电路70对内核80的当前工作频点进行上调或下调。当然,频率调整子模块31也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。
所述停止频率调整子模块32,用于若工作于预定的至少一个优化工作频点的内核80超过预定的第一比率,停止对内核80进行调频;或者用于若工作于至少一所述优化工作频点上的内核80的数目最多,停止对内核80进行调频。
例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核80的工作频率已经到达该优化工作频点,表明运算芯片中个内核80的工作频率已经处于优化状态,可充分发挥各个内核80的计算性能,不再需要进一步调频,因此停止内核80工作频率的调整。例如设置6个工作频点,500MHz, 550MHz,600MHz,650MHz,700MHz,750MHz,选择其中两个优化工作频点 600Mhz和650Mhz为优化工作频点,若超过80%的内核80工作于工作频点 600Mhz和650Mhz,则停止对内核80进行调频。
图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核 (Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点: 500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,工作频点与锁相环电路70为一一对应关系。本发明可以设置更多的锁相环电路 70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
所述计算性能分析模块20,用于在预定的调整周期内,分析内核80的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。若内核80的计算正确率达到预定的第一正确率阈值,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算正确率未达到预定的第二正确率阈值,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
所述频率调整模块30,用于若内核80的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点;和/或用于若内核80的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。所述频率调整模块30可通过如图2所示的锁相环电路 70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核 80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核 80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
例如,第一正确率阈值和第二正确率阈值均为90%。当内核80工作在 600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点600MHz上调到上一个工作频点,即提高其工作频率至650MHz;若内核80的计算正确率低于 90%(表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至550MHz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。
再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核80工作在600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点上调到上一个工作频点,即提高其工作频率至650MHz;若内核80的计算正确率低于80% (表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至 550MHz。
优选的是,所述计算正确率可为内核80在调整周期内提交的Nonce(Number once,随机数)的计算正确率。即预定时间内,内核80所提交的全部Nonce中,正确Nonce所占的比率。区域链中的区块头包括所述Nonce(4字节),Nonce 是一个随机值,运算的作用其实就是猜出Nonce的值,使得区块头的哈希(Hash) 可以小于目标值Target,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则计算成功。
优选的是,图3中的计算性能分析模块20进一步包括有:
第一分析子模块21,用于在预定的调整周期内,分析内核80提交的Nonce 是否正确。
统计子模块22,用于统计内核80在调整周期内提交的正确Nonce的个数和错误Nonce的个数。
第一判断子模块23,用于根据正确Nonce的个数和错误Nonce的个数,计算出内核80在调整周期内的Nonce计算正确率,并判断Nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值。
频率调整模块30用于若内核80的Nonce计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;和/或用于若内核80的Nonce 计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。
更好的是,第一分析子模块21进一步包括:
第一计算单元211,用于在调整周期内,内核80每递交一个Nonce后,将 Nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征,第一计算单元211优选设置于内核80中。每个内核80提交的Nonce中,包含Nonce 的标识信息(ID),从而可实现对每个内核80的计算结果进行统计。
第一验算单元212,用于将内核80递交的所述Nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征,若第一特征与第二特征相同,则判定所述Nonce是正确Nonce,否则判定所述Nonce是错误Nonce。第一验算单元212优选设置于运算芯片中。
例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第一验算单元212也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前 20位的也是0(第二特征),则认为该Nonce是一次正确提交。
需指出的是,为了提高单个内核80计算出可满足写入区块链的nonce值的概率,也可以采用比上述“目标值Target”要容易的多Target_Lite来判断Hash,每个内核80要提交可以更加频繁的提交nonce,第一验算单元212对内核80提交的nonce进行验算,如果其使用内核80提交的nonce计算出的Hash同样通过 Target_Lite的判定,即认为内核80的正确提交,否则即为错误提交。本发明并不局限于使用可写入最终区块链的nonce。第一验算单元212和内核80之间交互的nonce是满足更低门限,提交密度高,可利于频率调整。
优选的是,所述计算性能分析模块20用于根据预设的实时调整指令,实时分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
所述频率调整模块30用于若内核80在调整周期内的计算正确率达到第一正确率阈值,实时将内核80的当前工作频点上调到上一个工作频点。若内核80 在调整周期内的计算正确率未达到第二正确率阈值,实时将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到实时动态调整。
优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
所述频率调整模块30用于在调整时间段内,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;在调整时间段内,若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到定时调整。如设定每周仅设置周六(24小时)统计内核80计算正确率,并根据计算正确率进行频率调整。
优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
所述频率调整模块30用于根据接收的即时调整指令,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点。若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核80的计算正确率,若在调整周期(例如10 分钟)内,若内核80的计算正确率超过第一正确率阈值(例如高于99%),则将内核80的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核 80的计算正确率低于第二正确率阈值(例如低于99%),则将内核80的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
图4是本发明第三实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核 (Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100包括频点设置模块10、计算性能分析模块20、频率调整模块30,其中:
所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能分析模块20进一步包括有:
设置子模块24,用于预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
第二分析子模块25,用于分析内核80的每次计算是否正确。内核80可以进行各种不同的计算,可分析内核80的每次某种或几种计算是否正确。优选为分析内核80计算出的Nonce是否正确。
计数子模块26,用于内核80每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核80每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核80每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,可以设置为内核80每正确计算N次(N为大于1 的自然数),在参考节点值上增加一次计算正确权重值。内核80每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核80每错误计算N次(N为大于1的自然数),在参考节点值上减少一次计算错误权重值。
第二判断子模块27,用于判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若当前参考节点值达到计算正确阈值,则表示所述内核 80的计算性能较高且可能还有提升空间;若当前参考节点值达到计算错误阈值,则表示所述内核80的计算性能较弱,可能不足以在当前工作频点对应的频率下工作。
所述频率调整模块30,用于若内核80的当前参考节点值达到计算正确阈值,表明该内核80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点;以及用于若内核80的当前参考节点值达到计算错误阈值,表明该内核80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。所述频率调整模块30可通过如图2所示的锁相环电路 70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核 80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核 80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。
例如,如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
内核80每正确计算一次,在该参考节点值上加180(计算正确权重值);内核80每错误计算一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是 maker的初始值,如果有正确提交则maker+180,每次错误提交则maker–9000。经过N次正确(N为大于或等于1的自然数),M次错误后(M为大于或等于 1的自然数),marker应该处在400000+N*180–M*9000的位置,如果Marker 超过某侧门限则进行相应频率调整(即上调或下调)。然后每次频率调整到新的频点上都初始化该值,即将当前参考节点值重新设置为初始的参考节点值。
优选的是,所述设置子模块24用于根据实际需求设置和调整内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或者不相同,计算正确阈值和计算错误阈值相同或者不相同。
优选的是,设置子模块24用于通过控制计算正确权重值和计算错误权重值的比值控制内核80期望容忍的驻留差错率S。驻留差错率S的计算公式为:驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值)。
优选的是,设置子模块24用于通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
优选的是,设置子模块24用于通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
优选的是,所述正确计算可为内核80正确计算Nonce。
所述第二分析子模块25用于分析内核80每次提交的Nonce是否正确。
所述计数子模块26用于在内核80每提交至少一次正确Nonce,在参考节点值上增加一次计算正确权重值;内核80每提交至少一次错误Nonce,在参考节点值上减少一次计算错误权重值。优选的是,在内核80每提交一次正确Nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每提交 N(N为大于1的自然数)次正确Nonce,在参考节点值上增加一次计算正确权重值。内核80每提交一次错误Nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次错误Nonce,在参考节点值上减少一次计算错误权重值。
更好的是,第二分析子模块25进一步包括:
第二计算单元251,用于内核80递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征。
第二验算单元252,用于将Nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征。若第一特征与第二特征相同,则判定Nonce是正确 Nonce,否则判定Nonce是错误Nonce。
例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第二验算单元252也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前 20位的也是0(第二特征),则认为该Nonce是一次正确提交。
需指出的是,为了提高单个内核80计算出可满足写入区块链的nonce值的概率,也可以采用比上述“目标值Target”要容易的多Target_Lite来判断Hash,每个内核80要提交可以更加频繁的提交nonce,第一验算单元212对内核80提交的nonce进行验算,如果其使用内核80提交的nonce计算出的Hash同样通过 Target_Lite的判定,即认为内核80的正确提交,否则即为错误提交。本发明并不局限于使用可写入最终区块链的nonce。第一验算单元212和内核80之间交互的nonce是满足更低门限,提交密度高,可利于频率调整。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
首先,结合数据进一步说明机制。根据驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核80的驻留差错率S(理解为可长期驻留在某个频点)为180/(180+9000)=1.96%,此时内核80长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核80的计算错误率小于1.96%(驻留差错率S),其工作频率将被上调;若内核80的计算错误率大于1.96%(驻留差错率S),其工作频率将被下调。
依据设置的难度(该难度与检验基准有关,对内核80计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个Nonce的期望步长为:
(1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
以650MHz计算,内核80提交单个Nonce的期望为1.3个/秒(即1秒递交 1.3个Nonce)。以e为0.5%的场景进行解释,即在746次的Nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
优选的是,所述计算性能分析模块20用于根据预设的实时调整指令,实时判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
所述频率调整模块30用于若内核80的当前参考节点值达到计算正确阈值,实时将内核80的当前工作频点上调到上一个工作频点;若内核80的当前参考节点值达到计算错误阈值,实时将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到实时动态调整。
优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
所述频率调整模块30用于在调整时间段内,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点;在调整时间段内,若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到定时调整。如设定每周仅设置周六的24小时内统计内核80出正确Nonce的个数,并根据计算正确率进行频率调整。
优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
所述频率调整模块30用于根据接收的即时调整指令,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点。若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点。以及用于根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核 80每计算正确Nonce一次,在参考节点上增加权重A,内核80每计算错误Nonce 一次,在该参考节点上减少权重B。当前增加数值达到计算正确数量阈值C时,将内核80向上一频点进阶。当前减少数值达到计算错误数阈值D时,将内核 80向下一个频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
图6是本发明第四实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核 (Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100包括频点设置模块10、计算性能分析模块20、频率调整模块30、频点统计模块50以及频点调整模块60,其中:
所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片层面的频率调整机制为每个运算芯片设置若干不同的频点,并让运算芯片的内核80工作于各个工作频点。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz, 700MHz,750MHz。各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频之前),内核80可以按照预定规则平均分布、不平均分布或随机分布于所述工作频点。频点设置模块10可以通过如图2所示的多个锁相环电路(Phase Locked Loop,PPL)70为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
所述频率调整模块30,用于根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。即根据内核层面的频率调整机制,将根据内核80 的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80 的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。所述频率调整模块30可通过如图2所示的锁相环电路70或软件对内核 80进行调频。优选的是,若内核80在调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到上一个工作频点;若内核80在调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核 80的当前工作频点下调到下一个工作频点。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核80 的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核 80的计算性能的受益应大于损失。
所述频点统计模块50,用于统计被调频后的内核80在各工作频点上的当前分布状态。内核80的工作频点根据自身计算性能被自动调频后,会分布在各工作频点上工作,频点统计模块50统计被调频后的内核80在各工作频点上的分布个数可得出当前分布状态。优选的是,可将工作频点划分为包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。例如一共有1000个内核80,设置6个工作频点,500MHz,550MHz,600MHz,650MHz, 700MHz,750MHz,依次其分布在上述6个工作频点的个数分别为:100,200, 100,100,200,300。其中,500MHz,550MHz为低频工作频点,600MHz,650MHz 为中间工作频点,700MHz,750MHz为高频工作频点,500MHz为最低工作频点,750MHz为最高工作频点。
所述频点调整模块60,用于根据内核80的所述当前分布状态和预定的频点调整机制,调整设置工作频点的频率。所述频点调整机制是内核分布状态与频点调整的对应关系。所述内核分布状态是指内核80在各个工作频点上工作的分布状态。所述调整设置工作频点的频率,是指直接将工作频点的频率进行调整。所述频点调整模块60优选通过如图2所示的锁相环电路70调整设置工作频点的频率。本领域技术人员可以理解的是,频点调整模块50的调整设置工作频点的调整方式并不仅限于此。本发明理想状态是希望超过预定的比率(如50%) 或最多数目的内核80落到中间工作频点,这样内核80的频率有更大的上调空间。
例如,若超过预定的比率(如30%)的内核80工作于最高工作频点(750MHz) 上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),则需要将一工作频点(600MHz)修改设置为至少一优化高频工作频点(800MHz),原工作于工作频点(600MHz)上的内核80将全部转移到最高工作频点(750MHz) 上工作。所述优化高频工作频点的频率高于所述最高工作频点的频率,以充分发挥各内核80的计算性能。
在本发明一具体实例中,所述频点调整模块60还包括第一频点调整子模块61和/或第二频点调整子模块62,其中:
所述第一频点调整子模块61,用于若超过预定的第二比率的内核80工作于至少一高频工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,超过30%(第二比率)的内核80工作在两个高频工作频点(700MHz 和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz) 和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz 和850MHz)。
优选的是,第一频点调整子模块61用于若超过第二比率的内核80工作于最高工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将一个工作频点修改设置为一个优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,超过30%(第二比率)的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
所述第二频点调整子模块62,用于若超过预定的第三比率的内核80工作于至少一低频工作频点上,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算性能差的内核 80影响运算芯片的整体计算性能。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,超过30%(第三比率)的内核80工作在两个低频工作频点(500MHz 和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz) 和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz 和450MHz)。
优选的是,第二频点调整子模块62用于若超过第三比率的内核80工作于最低工作频点上,说明所述内核80的计算能力过差不足以工作在所述最低工作频点上,因此将一个工作频点修改设置为一个优化低频工作频点。优化低频工作频点的频率低于最低工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,超过30%(第三比率)的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累超过预定比率(例如50%)的内核80,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3 个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
以算力板0~1为例,可以看出,若将600Mhz频点去除,此时若采用整体左移,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,不利于充分发挥内核80的计算性能。故更适合整体右移,即采用整体偏移方式,通过如图2所示的锁相环电路70将550Mhz频点整体向右设置为 800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体计算性能的提升。
在本发明另一具体实例中,所述频点调整模块60还包括第三频点调整子模块63和/或第四频点调整子模块64,其中:
所述第三频点调整子模块63,用于若工作于至少一高频工作频点的内核80 的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,最多数目的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
优选的是,所述第三频点调整子模块63用于若工作于最高工作频点上的内核80的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将一个工作频点修改设置为一个优化高频工作频点。优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,数目最多的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
所述第四频点调整子模块64,用于若工作于至少一低频工作频点的内核80 的数目最多,说明所述内核80的计算能力过差,其不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算能力差的内核80影响运算芯片的整体计算性能。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,数目最多的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
优选的是,第四频点调整子模块64用于若工作于最低工作频点的内核80 的数目最多,说明所述内核80的计算能力过差不足以工作在所述最低工作频点上,因此将一个工作频点修改设置为一个优化低频工作频点。优化低频工作频点的频率低于最低工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,数目最多的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累的内核80的数目最多,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点 (600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
以算力板0~1为例,可以看出,如果将600Mhz频点去除,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,更适合整体右移,即采用整体偏移方式,通过如图2所示的锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体性能的提升。
在本发明又一具体实例中,所述频点调整模块60还包括第一停止调整子模块65或者第二停止调整子模块66,其中:
第一停止调整子模块65,用于若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率。因为比较理想状态就是超过预定的第四比率(如50%)的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
第二停止调整子模块66,用于若工作于在至少一中间工作频点上的内核80 的数目最多,停止调整设置工作频点的频率。因为比较理想状态就是最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
本发明还提供一种包括有如所述芯片调频装置100的算力板。
本发明还提供一种包括有所述芯片调频装置100的计算设备。
图8是本发明计算设备的芯片调频方法的流程图,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片层面的频率调整机制和内核层面的频率调整机制。所述运算芯片层面的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核80工作于各个工作频点,充分发挥每个内核80的工作性能。所述内核层面的频率调整机制是指根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。所述方法包括步骤有:
步骤S801,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
本步骤根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点: 500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,本步骤可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
步骤S802,分析每个内核80在当前工作频点的计算性能指标。
所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
步骤S803,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
本步骤根据内核的频率调整机制,将根据内核80的实际计算性能,将内核 80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。优选的是,若内核 80在调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到上一个工作频点;若内核80 在调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到下一个工作频点。
本发明根据运算芯片中各个内核80的实际计算性能评价内核80的工作性能,调节内核80对应频率,充分发挥性能较优内核80的计算优势,并避免性能较弱内核80影响运算芯片的运算性能,最大程度发挥各个内核80的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核80不会来回变动频率,工作频率相对稳定。
图9是本发明第一实施例中计算设备的芯片调频方法的流程图,其可通过如图2所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。
所述方法包括步骤有:
步骤S901,通过多个锁相环电路70为运算芯片设置多个工作频点,工作频点与锁相环电路70为一一对应关系。
优选的是,如图2所示的锁相环电路70设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。例如设置6个工作频点,500MHz, 550MHz,600MHz,650MHz,700MHz,750MHz。因此,本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
步骤S902,分析每个内核80在当前工作频点的计算性能指标。
所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
本步骤优选的是,在预定的调整周期内,分析内核80的计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,第一指标阈值与第二指标阈值相同或者不相同。
步骤S903,根据内核80的计算性能指标,通过如图2所示的锁相环电路 70对内核80的当前工作频点进行上调或下调。当然,本步骤也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。
本步骤优选进一步包括:
(1)若内核80的计算性能指标达到第一指标阈值,将内核80的当前工作频点上调到上一个工作频点;
(2)若内核80的计算性能指标未达到第二指标阈值,将内核80的当前工作频点下调到下一个工作频点;和/或
(3)若内核80的计算性能指标达到第三指标阈值,将内核80的当前工作频点下调到下一个工作频点。
例如,结合上述“例如设置6个工作频点,500MHz,550MHz,600MHz, 650MHz,700MHz,750MHz。”,以及内核80的当前工作频点为600MHz为例,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值和第二指标阈值均为90%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到90%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为 1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。即为,将内核80的当前工作频点 600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz 下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
再例如,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值为90%,第二指标阈值为80%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz 上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到 80%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz 下调到下一个工作频点550MHz。
又例如,所述计算性能指标为内核80在调整周期内的正确计算次数和错误结算次数,第一指标阈值为100,第二指标阈值为10。若内核80在调整周期内的正确计算次数达到100,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的错误计算次数达到10,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
步骤S904,若工作于预定的至少一个优化工作频点的内核80超过预定的第一比率,停止对内核80进行调频;或者若工作于至少一优化工作频点上的内核 80的数目最多,停止对内核80进行调频。
例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核80的工作频率已经到达该优化工作频点,表明运算芯片中个内核80的工作频率已经处于优化状态,可充分发挥各个内核80的计算性能,不再需要进一步调频,因此停止内核80工作频率的调整。例如设置6个工作频点,500MHz, 550MHz,600MHz,650MHz,700MHz,750MHz,选择其中两个优化工作频点 600Mhz和650Mhz为优化工作频点,若超过50%的内核80工作于工作频点 600Mhz和650Mhz,则停止对内核80进行调频。
图10是本发明第二实施例中计算设备的芯片调频方法的流程图,其可通过如图3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。
所述方法包括步骤有:
步骤S1001,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
本步骤优选的是,通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,工作频点与锁相环电路70为一一对应关系。本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
步骤S1002,在预定的调整周期内,分析内核80的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值。所述第一正确率阈值与第二正确率阈值相同或者不相同。若内核80的计算正确率达到预定的第一正确率阈值,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算正确率未达到预定的第二正确率阈值,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
优选的是,本步骤S1002进一步包括:
(1)根据预设的实时调整指令,实时分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;
(2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;或者
(3)根据接收的即时调整指令,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值。
步骤S1003,若内核80的计算正确率达到第一正确率阈值,表明该内核80 尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点。
优选的是,本步骤进一步包括:
(1)若内核80在调整周期内的计算正确率达到第一正确率阈值,实时将内核80的当前工作频点上调到上一个工作频点;
(2)在调整时间段内,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;或者
(3)根据接收的即时调整指令,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点。并根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核80的计算正确率,若在调整周期(例如10 分钟)内,若内核80的计算正确率超过第一正确率阈值(例如高于99%),则将内核80的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核 80的计算正确率低于第二正确率阈值(例如低于99%),则将内核80的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
步骤S1004,若内核80的计算正确率未达到第二正确率阈值,表明该内核 80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。
优选的是,本步骤进一步包括:
(1)若内核80在调整周期内的计算正确率未达到第二正确率阈值,实时将内核80的当前工作频点下调到下一个工作频点;
(2)在调整时间段内,若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点;或者
(3)若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。并根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
本发明可通过如图2所示的锁相环电路70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
例如,第一正确率阈值和第二正确率阈值均为90%。当内核80工作在 600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点600MHz上调到上一个工作频点,即提高其工作频率至650MHz;若内核80的计算正确率低于 90%(表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至550MHz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80 的计算性能的受益应大于损失。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核80工作在600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点上调到上一个工作频点,即提高其工作频率至650MHz;若内核80的计算正确率低于80% (表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至 550MHz。
图11是本发明第二实施例中计算设备的优选芯片调频方法的流程图,其可通过如图3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。优选的是,所述计算正确率可为内核80在调整周期内提交的Nonce的计算正确率。即预定时间内,内核80所提交的全部Nonce中,正确Nonce所占的比率。区块头包括所述Nonce(4字节),Nonce是一个随机值,运算的作用其实就是猜出Nonce的值,使得区块头的哈希(Hash)可以小于目标值,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则计算成功。所述方法包括步骤有:
步骤S1101,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
步骤S1102,在调整周期内,分析内核80提交的Nonce是否正确。
本步骤优选包括:
(1)在调整周期内,内核80每递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。每个内核80提交的 Nonce中,包含Nonce的标识信息(ID),从而可实现对每个内核80的计算结果进行统计。
(2)运算芯片的验算单元将Nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。
(3)若第一特征与第二特征相同,则验算单元判定Nonce是正确Nonce,否则判定Nonce是错误Nonce。
例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第一验算单元212也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前 20位的也是0(第二特征),则认为该Nonce是一次正确提交。
步骤S1103,统计内核80在调整周期内提交的正确Nonce的个数和错误 Nonce的个数。
步骤S1104,根据正确Nonce的个数和错误Nonce的个数,计算出内核80 在调整周期内的Nonce计算正确率。
步骤S1105,判断Nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,若内核80的Nonce计算正确率达到第一正确率阈值则执行步骤S1106,若内核80的Nonce计算正确率未达到第二正确率阈值则执行步骤 S1107。
步骤S1106,若内核80的Nonce计算正确率达到第一正确率阈值,将内核 80的当前工作频点上调到上一个工作频点。
步骤S1107,若内核80的Nonce计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。
图12是本发明第三实施例中计算设备的芯片调频方法的流程图,其可通过如图4所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。
所述方法包括步骤有:
步骤S1201,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
步骤S1202,预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。
优选的是,所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
优选的是,根据实际需求设置和调整内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或者不相同,计算正确阈值和计算错误阈值相同或者不相同。
通过控制计算正确权重值和计算错误权重值的比值控制内核80期望容忍的驻留差错率。驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
步骤S1203,分析内核80的每次计算是否正确。
内核80可以进行各种不同的计算,可分析内核80的每次某种或几种计算是否正确。优选为分析内核80计算出的Nonce是否正确。
步骤S1204,内核80每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核80每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核80每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每正确计算N次(N为大于1的自然数),在参考节点值上增加一次计算正确权重值。内核80每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核80每错误计算 N次(N为大于1的自然数),在参考节点值上减少一次计算错误权重值。
步骤S1205,判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核80的当前参考节点值达到计算正确阈值,则执行步骤S1206,若内核80的当前参考节点值达到计算错误阈值,则执行步骤S1207。
本步骤优选包括:
(1)根据预设的实时调整指令,实时判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
(2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
(3)根据接收的即时调整指令,分析内核80的当前参考节点是否达到计算正确阈值或计算错误阈值。
步骤S1206,若内核80的当前参考节点值达到计算正确阈值,表明该内核 80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点。
本步骤优选包括:
(1)若内核80的当前参考节点值达到计算正确阈值,实时将内核80的当前工作频点上调到上一个工作频点;或者
(2)在调整时间段内,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点;或者
(3)根据接收的即时调整指令,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点。并且根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
步骤S1207,若内核80的当前参考节点值达到计算错误阈值,表明该内核 80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。
本步骤优选包括:
(1)若内核80的当前参考节点值达到计算错误阈值,实时将内核80的当前工作频点下调到下一个工作频点;或者
(2)在调整时间段内,若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点;或者
(3)若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点。并且根据接收的停止调整指令,停止对内核80 的当前工作频点的调整。
例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核 80每计算正确Nonce一次,在参考节点上增加权重A,内核80每计算错误Nonce 一次,在该参考节点上减少权重B。当前增加数值达到计算正确数量阈值C时,将内核80向上一频点进阶。当前减少数值达到计算错误数阈值D时,将内核 80向下一个频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80 从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
本步骤优选可通过如图2所示的锁相环电路70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80 调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
例如,如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
内核80每正确计算至少一次,在该参考节点值上加180(计算正确权重值);内核80每错误计算至少一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是 maker的初始值,如果有正确提交则maker+180,每次错误提交则maker–9000。经过N次正确(N为大于或等于1的自然数),M次错误后(M为大于或等于 1的自然数),marker应该处在400000+N*180–M*9000的位置,如果Marker 超过某侧门限则进行相应频率调整(上调或下调)。然后每次频率调整到新的频点上都初始化该值,即将当前参考节点值重新设置为初始的参考节点值。
图13是本发明第三实施例中计算设备的优选芯片调频方法的流程图,其可通过如图4所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。所述方法包括步骤有:
步骤S1301,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
步骤S1302,预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。
步骤S1303,分析内核80每次提交的Nonce是否正确。
优选的是,本步骤进一步包括:
(1)内核80递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。
(2)运算芯片的验算单元将Nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。
(3)若第一特征与第二特征相同,则验算单元判定Nonce是正确Nonce,否则判定Nonce是错误Nonce。
例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第二验算单元252也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前 20位的也是0(第二特征),则认为该Nonce是一次正确提交。
步骤S1304,内核80每提交至少一次正确Nonce,在参考节点值上增加一次计算正确权重值,内核80每提交至少一次错误Nonce,在参考节点值上减少一次计算错误权重值。优选的是,在内核80每提交一次正确Nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次正确Nonce,在参考节点值上增加一次计算正确权重值。内核80每提交一次错误Nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次错误Nonce,在参考节点值上减少一次计算错误权重值。
步骤S1305,判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核80的当前参考节点值达到计算正确阈值,则执行步骤S1206,若内核80的当前参考节点值达到计算错误阈值,则执行步骤S1207。
步骤S1306,若内核80的当前参考节点值达到计算正确阈值,将内核80 的当前工作频点上调到上一个工作频点。
步骤S1307,若内核80的当前参考节点值达到计算错误阈值,将内核80 的当前工作频点下调到下一个工作频点。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。如图5所示,并设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
首先,结合数据进一步说明机制。根据驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核80的驻留差错率S(理解为可长期驻留在某个频点)为180/(180+9000)=1.96%,此时内核80长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核80的计算错误率小于1.96%(驻留差错率S),其工作频率将被上调;若内核80的计算错误率大于1.96%(驻留差错率S),其工作频率将被下调。
依据设置的难度(该难度与检验基准有关,对内核80计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个Nonce的期望步长为: (1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
以650MHz计算,内核80提交单个Nonce的期望为1.3个/秒(即1秒递交 1.3个Nonce)。以e为0.5%的场景进行解释,即在746次的Nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
图14是本发明第四实施例中计算设备的芯片调频方法的流程图,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。所述方法包括步骤有:
步骤S1401,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的内核80工作于各个工作频点。例如设置6个工作频点, 500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频之前),内核80可以按照预定规则平均分布、不平均分布或随机分布于所述工作频点。本步骤可以通过多个如图2所示的锁相环电路70为运算芯片设置多个工作频点,当然本步骤也可以通过其他硬件或软件为运算芯片设置多个工作频点。
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10 应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
步骤S1402,分析每个内核80在当前工作频点的计算性能指标。
所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
步骤S1403,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
本步骤根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。本步骤可通过如图2所示的锁相环电路70或软件对内核80进行调频。优选的是,若内核 80在调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到上一个工作频点;若内核80 在调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到下一个工作频点。
本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80 从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
步骤S1404,统计被调频后的内核80在各工作频点上的当前分布状态。
内核80的工作频点根据自身计算性能被自动调频后,会分布在各工作频点上工作,统计被调频后的内核80在各工作频点上的分布个数可得出当前分布状态。优选的是,可将工作频点划分为包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。例如一共有1000个内核80,设置 6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,依次其分布在上述6个工作频点的个数分别为:100,200,100,100,200,300。其中,500MHz,550MHz为低频工作频点,600MHz,650MHz为中间工作频点, 700MHz,750MHz为高频工作频点,500MHz为最低工作频点,750MHz为最高工作频点。
步骤S1405,根据当前分布状态和预定的频点调整机制,调整设置工作频点的频率,所述频点调整机制是内核80分布状态与频点调整的对应关系。
所述频点调整机制是内核分布状态与频点调整的对应关系。所述内核分布状态是指内核80在各个工作频点上工作的分布状态。所述调整设置工作频点的频率,是指直接将工作频点的频率进行调整。优选通过如图2所示的锁相环电路70调整设置工作频点的频率。本发明理想状态是希望超过预定的比率(如 50%)或最多数目的内核80落到中间工作频点,这样内核80的频率有更大的上调空间。
例如,若超过预定的比率(如30%)的内核80工作于最高工作频点(750MHz) 上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),则需要将一工作频点(600MHz)修改设置为至少一优化高频工作频点(800MHz),原工作于工作频点(600MHz)上的内核80将全部转移到最高工作频点(750MHz) 上工作。所述优化高频工作频点的频率高于所述最高工作频点的频率,以充分发挥各内核80的计算性能。
优选的是,所述步骤S1405之后可进一步包括:
若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;或者,若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。比较理想状态是超过预定的第四比率 (如50%)或数目最多的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),故此时不需要再对内核80进行调频。
图15是本发明第四实施例中计算设备的优选芯片调频方法的流程图之一,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。
所述方法包括步骤有:
步骤S1501,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
步骤S1502,分析每个内核80在当前工作频点的计算性能指标。
步骤S1503,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
步骤S1504,统计被调频后的内核80在各工作频点上的当前分布状态。工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。
步骤S1505,若超过预定的第二比率的内核80工作于至少一高频工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,超过30%(第二比率)的内核80工作在两个高频工作频点(700MHz 和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz) 和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz 和850MHz)。
本步骤优选的是,若超过第二比率的内核80工作于最高工作频点上,将一个工作频点修改设置为一个优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,超过30%(第二比率)的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
步骤S1506,若超过预定的第三比率的内核80工作于至少一低频工作频点上,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率。值得注意的是,本步骤可以省略,即并不将至少一工作频点修改设置为至少一优化低频工作频点。
被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,超过30%(第三比率)的内核80工作在两个低频工作频点(500MHz 和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz) 和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz 和450MHz)。
本步骤优选的是,若超过第三比率的内核80工作于最低工作频点上,将一个工作频点修改设置为一个优化低频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,超过30%(第三比率)的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz) 修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz) 修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz) 修改设置为优化低频工作频点(450MHz)。
优选的是,所述步骤S1506之后进一步包括:
若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;因为比较理想状态就是超过预定的第四比率(如50%) 的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。或者
若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。因为比较理想状态就是最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累超过预定比率(例如50%)的内核80,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3 个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
以算力板0~1为例,可以看出,若将600Mhz频点去除,此时若采用整体左移,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,不利于充分发挥内核80的计算性能。故更适合整体右移,即采用整体偏移方式,通过锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体计算性能的提升。
图16是本发明第四实施例中计算设备的优选芯片调频方法的流程图之二,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算。
所述方法包括步骤有:
步骤S1601,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
步骤S1602,分析每个内核80在当前工作频点的计算性能指标。
步骤S1603,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
步骤S1604,统计被调频后的内核80在各工作频点上的当前分布状态。工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。
步骤S1605,若工作于至少一高频工作频点的内核80的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,最多数目的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
本步骤优选的是,若工作于最高工作频点上的内核80的数目最多,将一个工作频点修改设置为一个优化高频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,数目最多的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
步骤S1606,若工作于至少一低频工作频点的内核80的数目最多,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算能力差的内核80影响运算芯片的整体计算性能。本步骤可以省略,即并不将至少一工作频点修改设置为至少一优化低频工作频点。
被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz, 750MHz,数目最多的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
本步骤优选的是,若工作于最低工作频点的内核80的数目最多,将一个工作频点修改设置为一个优化低频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,数目最多的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
优选的是,所述步骤S1606之后进一步包括:
若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;或者
若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。
在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
按照4块算力板统计出的各对应频率上分布的内核数目如下:
算力板0:[294 26 96 224 1023 1665]
算力板1:[274 47 111 212 963 1721]
算力板2:[350 25 153 369 1381 1050]
算力板3:[488 33 184 367 1342 950]
以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累的内核80的数目最多,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点 (600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
以算力板0~1为例,可以看出,如果将600Mhz频点去除,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,更适合整体右移,即采用整体偏移方式,通过锁相环电路70将550Mhz频点整体向右设置为 800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体性能的提升。
本发明还提供一种存储介质,用于存储如图8~图16所述任意一种计算设备的芯片调频方法的计算机程序。例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的存储介质中,和/ 或通过广播或其他信号承载媒体中的数据流而被传输和/或被存储在根据程序指令运行的计算设备的存储器中。在此,根据本申请的一个实施例包括一个如图 17所示的计算设备,所述计算设备优选包括控制板、与所述控制板连接的至少一算力板,所述控制板设置有处理器,所述算力板上设置有多个用于运算的运算芯片,所述运算芯片中设置有多个内核;该设备包括用于存储计算机程序指令的存储介质和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该计算设备执行基于前述多个实施例中的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。
在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
综上所述,本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算性能指标,对内核的当前工作频点进行上调或下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (50)

1.一种计算设备的芯片调频方法,所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核,其特征在于,包括步骤有:
为所述计算设备的所述运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
分析每个所述内核在当前工作频点的计算性能指标;
根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
2.根据权利要求1所述的芯片调频方法,其特征在于,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点。
3.根据权利要求2所述的芯片调频方法,其特征在于,
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调包括:
根据所述内核的所述计算性能指标,使得工作于所述中间工作频点的内核的数量大于工作于所述低频工作频点的内核的数量和/或工作于所述高频工作频点的内核的数量。
4.根据权利要求1所述的芯片调频方法,其特征在于,多个所述内核按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
5.根据权利要求1所述的芯片调频方法,其特征在于,所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调包括:
统计被调频后的所述内核在各所述工作频点上的当前分布状态;
根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
6.根据权利要求5所述的芯片调频方法,其特征在于,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的至少部分分布图在其坐标系上移动。
7.根据权利要求6所述的芯片调频方法,其特征在于,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的分布图在其坐标系上向左或者向右移动。
8.根据权利要求5所述的芯片调频方法,其特征在于,所述根据所述内核的所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
9.根据权利要求8所述的芯片调频方法,其特征在于,所述若超过所述第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
若超过所述第二比率的所述内核工作于所述最高工作频点上,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
所述若超过预定的所述第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
若超过所述第三比率的所述内核工作于所述最低工作频点上,将一个所述工作频点修改设置为一个所述优化低频工作频点。
10.根据权利要求5所述的芯片调频方法,其特征在于,
所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
11.根据权利要求10所述的芯片调频方法,其特征在于,所述若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
若工作于所述最高工作频点上的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
所述若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
若工作于所述最低工作频点的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化低频工作频点。
12.根据权利要求5所述的芯片调频方法,其特征在于,
所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
若超过预定的第四比率的所述内核工作于至少一所述中间工作频点上,停止调整设置所述工作频点的频率;或者
若工作于在至少一所述中间工作频点上的所述内核的数目最多,停止调整设置所述工作频点的频率。
13.根据权利要求1所述的芯片调频方法,其特征在于,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的计算结果是否达到预定的计算正确率。
14.根据权利要求13所述的芯片调频方法,其特征在于,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述计算性能指标达到所述第一指标阈值,将所述内核的所述当前工作频点上调;
若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调;和/或
若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调。
15.根据权利要求14所述的芯片调频方法,其特征在于,还包括步骤有:
若工作于预定的至少一个优化工作频点的所述内核超过预定的第一比率,停止对所述内核进行调频;或者
若工作于至少一所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。
16.根据权利要求14所述的芯片调频方法,其特征在于,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
在预定的调整周期内,分析所述内核的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调;和/或
若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到。
17.根据权利要求16所述的芯片调频方法,其特征在于,所述在预定的调整周期内,分析所述内核的所述计算正确率是否达到所述第一正确率阈值和/或第二正确率阈值的步骤还包括:
在所述调整周期内,分析所述内核提交的随机数是否正确;
统计所述内核在所述调整周期内提交的正确随机数的个数和错误随机数的个数;
根据所述正确随机数的个数和所述错误随机数的个数,计算出所述内核在所述调整周期内的随机数计算正确率,并判断所述随机数计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述随机数计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
若所述内核的所述随机数计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
18.根据权利要求14所述的芯片调频方法,其特征在于,所述在预定的所述调整周期内,分析所述内核的所述计算正确率是否达到预定的所述正确率阈值的步骤还包括:
根据预设的实时调整指令,实时分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;或者
根据接收的即时调整指令,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
根据接收的即时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
19.根据权利要求1所述的芯片调频方法,其特征在于,其包括步骤有:
频点设置步骤,为所述计算设备的所述运算芯片设置多个工作频点;
计算性能分析步骤,分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
频率调整步骤,若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,将所述内核的所述当前工作频点进行下调。
20.根据权利要求19所述的芯片调频方法,其特征在于,还包括参考节点值,所述计算性能分析步骤进一步包括:
在所述参考节点值上增加一次所述计算正确权重值,在所述参考节点值上减少一次所述计算错误权重值。
21.根据权利要求20所述的芯片调频方法,其特征在于,所述方法还包括:
判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值:
所述频率调整步骤进一步包括:
若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;
若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调。
22.根据权利要求21所述的芯片调频方法,其特征在于,所述方法还包括:
通过调整所述内核的所述参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和/或所述计算错误阈值,控制所述内核的调整周期或所述内核期望容忍的驻留差错率。
23.根据权利要求21所述的芯片调频方法,其特征在于,所述方法还包括:
通过控制所述计算正确权重值和所述计算错误权重值的比值控制所述内核期望容忍的驻留差错率。
24.根据权利要求21所述的芯片调频方法,其特征在于,所述方法还包括:
通过控制所述计算正确权重值和所述计算错误权重值的绝对值大小控制调整周期。
25.根据权利要求21所述的芯片调频方法,其特征在于,所述方法还包括:
通过控制所述计算正确阈值和所述计算错误阈值的绝对值大小控制所述调整周期。
26.根据权利要求21所述的芯片调频方法,其特征在于,所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
27.根据权利要求26所述的芯片调频方法,其特征在于,所述内核在所述当前工作频点的计算错误率小于驻留差错率时,所述内核的所述当前工作频点将被上调;所述内核在所述当前工作频点的计算错误率大于驻留差错率时,所述内核的所述当前工作频点将被下调。
28.根据权利要求21所述的芯片调频方法,其特征在于,所述分析所述内核的每次计算是否正确的步骤还包括:
分析所述内核每次提交的随机数是否正确;
所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上增加一次所述计算错误权重值的步骤还包括:
所述内核每提交至少一次正确随机数,在所述参考节点值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述参考节点值上减少一次所述计算错误权重值。
29.根据权利要求17或28所述的芯片调频方法,其特征在于,所述分析所述内核每次提交的所述随机数是否正确的步骤还包括:
所述内核递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;
若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
30.根据权利要求21所述的芯片调频方法,其特征在于,所述判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值的步骤还包括:
根据预设的实时调整指令,实时判断所述内核的所述当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,判断所述内核的所述当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;或者
根据接收的即时调整指令,分析所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
所述根据所述内核的所述计算性能指标,将所述内核的所述当前工作频点进行上调或下调的步骤还包括:
若所述内核的所述当前参考节点值达到所述计算正确阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
根据接收的即时调整指令,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
31.根据权利要求1所述的芯片调频方法,其特征在于,将所述运算芯片中的多个所述内核分别工作于各所述工作频点,多个所述工作频点的频点个数、频率之间差距为可调节式设置。
32.根据权利要求1所述的芯片调频方法,其特征在于,所述为所述计算设备的所述运算芯片设置多个所述工作频点,将所述运算芯片中的多个所述内核分别工作于各所述工作频点的步骤还包括:
通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
根据所述内核的所述计算性能指标,通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
33.根据权利要求30所述的芯片调频方法,其特征在于,所述锁相环电路设置于所述运算芯片的内部或外部。
34.根据权利要求1所述的芯片调频方法,其特征在于,相邻的所述工作频点之间的频差为1~10%。
35.一种计算设备的芯片调频装置,基于所述权利要求1至34中任意一项所述的芯片调频方法,所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核,其特征在于,所述芯片调频装置包括:
频点设置模块,用于为所述计算设备的运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
计算性能分析模块,用于分析每个所述内核在当前工作频点的计算性能指标;
频率调整模块,用于根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
36.根据权利要求35所述的芯片调频装置,其特征在于,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点。
37.根据权利要求36所述的芯片调频装置,其特征在于,根据所述内核的所述计算性能指标,使得工作于所述中间工作频点的内核的数量大于工作于所述低频工作频点的内核的数量和/或工作于所述高频工作频点的内核的数量。
38.根据权利要求35所述的芯片调频装置,其特征在于,多个所述内核按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
39.根据权利要求35所述的芯片调频装置,其特征在于,进一步包括:
频点统计模块,用于统计被调频后的所述内核在各所述工作频点上的当前分布状态;
频点调整模块,用于根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
40.根据权利要求39所述的芯片调频装置,其特征在于,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的至少部分分布图在其坐标系上移动。
41.根据权利要求40所述的芯片调频装置,其特征在于,所述根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率包括:
根据所述内核的所述当前分布状态和预定的频点调整机制,将当前所述分布状态的分布图在其坐标系上向左或者向右移动。
42.根据权利要求39所述的芯片调频装置,其特征在于,所述频点调整模块还包括:
第一频点调整子模块,用于若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
第二频点调整子模块,用于若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
43.根据权利要求39所述的芯片调频装置,其特征在于,所述频点调整模块还包括:
第三频点调整子模块,用于若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
第四频点调整子模块,用于若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
44.根据权利要求35所述的芯片调频装置,其特征在于,所述计算性能分析模块还用于在预定的调整周期内,分析所述内核的计算结果是否达到预定的计算正确率。
45.根据权利要求44所述的芯片调频装置,其特征在于,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值;
所述频率调整模块用于若所述内核的所述计算性能指标达到所述第一指标值,将所述内核的所述当前工作频点上调;
所述频率调整模块用于若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调;和/或
所述频率调整模块用于若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调。
46.根据权利要求44所述的芯片调频装置,其特征在于,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
所述频率调整模块用于若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调;和/或用于若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调。
47.根据权利要求35所述的芯片调频装置,其特征在于,所述计算性能分析模块还用于分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
所述频率调整模块用于若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,将所述内核的所述当前工作频点进行下调。
48.一种包括有权利要求35~47中任意一种所述芯片调频装置的算力板。
49.一种包括有权利要求35~47中任意一种所述芯片调频装置的计算设备。
50.一种存储介质,用于存储一种用于执行权利要求1~34中任意一种所述计算设备的芯片调频方法的计算机程序。
CN202210566138.2A 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质 Pending CN115048214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210566138.2A CN115048214A (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210566138.2A CN115048214A (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN201810576556.3A CN109086130B (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810576556.3A Division CN109086130B (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN115048214A true CN115048214A (zh) 2022-09-13

Family

ID=64839454

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810576556.3A Active CN109086130B (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN202210566138.2A Pending CN115048214A (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810576556.3A Active CN109086130B (zh) 2018-06-06 2018-06-06 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

Country Status (6)

Country Link
US (1) US11502693B2 (zh)
EP (1) EP3805926A4 (zh)
CN (2) CN109086130B (zh)
CA (1) CA3102424A1 (zh)
EA (1) EA202092949A1 (zh)
WO (1) WO2019233206A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086130B (zh) 2018-06-06 2022-06-10 北京嘉楠捷思信息技术有限公司 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN112558507B (zh) * 2019-09-25 2022-03-01 北京比特大陆科技有限公司 频率自适应方法和装置、数据处理设备、介质和产品
CN111506154B (zh) * 2020-04-14 2021-05-25 深圳比特微电子科技有限公司 计算机提高算力和降低功耗算力比的方法及系统
CN111538382B (zh) * 2020-04-16 2021-08-27 深圳比特微电子科技有限公司 一种数字货币矿机的启动方法、装置和数字货币矿机
CN111685378B (zh) 2020-06-15 2023-07-28 上海复旦微电子集团股份有限公司 电子烟烟弹及电子烟
CN111966202B (zh) * 2020-08-18 2021-06-04 深圳比特微电子科技有限公司 数字货币矿机的电源电压控制方法、装置和数字货币矿机
US11797410B2 (en) * 2021-11-15 2023-10-24 Advanced Micro Devices, Inc. Chiplet-level performance information for configuring chiplets in a processor
US11768531B2 (en) * 2021-12-30 2023-09-26 Western Digital Technologies, Inc. Power management for storage controllers

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US7353421B1 (en) * 2004-04-08 2008-04-01 Sun Microsystems, Inc. Method and apparatus for determining and allocating clock frequencies for plurality of processing units on system start-up or resetting of the system
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US7562234B2 (en) * 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
TW200834422A (en) * 2007-02-07 2008-08-16 Asustek Comp Inc Performance enhancement method for a multi-processing core device
US7671627B1 (en) * 2007-04-23 2010-03-02 Iowa State University Research Foundation, Inc. Superscale processor performance enhancement through reliable dynamic clock frequency tuning
US8032772B2 (en) * 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8024590B2 (en) * 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US8122270B2 (en) * 2008-09-29 2012-02-21 Intel Corporation Voltage stabilization for clock signal frequency locking
US8429665B2 (en) * 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
US8751854B2 (en) * 2009-12-21 2014-06-10 Empire Technology Development Llc Processor core clock rate selection
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
WO2012054019A1 (en) * 2010-10-19 2012-04-26 Hewlett-Packard Development Company, L.P. Systems and methods for predictive control of power efficiency
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
JP5649728B2 (ja) * 2011-06-07 2015-01-07 三菱電機株式会社 回転電機
US9086883B2 (en) * 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US8862926B2 (en) * 2011-08-16 2014-10-14 Apple Inc. Hardware controlled PLL switching
US9026815B2 (en) * 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
CN103426453B (zh) * 2012-05-25 2015-12-16 华为技术有限公司 动态电压频率调节方法以及系统
US9600382B2 (en) * 2012-09-03 2017-03-21 Southeast University Error recovery circuit oriented to CPU pipeline
US9513688B2 (en) * 2013-03-16 2016-12-06 Intel Corporation Measurement of performance scalability in a microprocessor
US9495001B2 (en) * 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US9519330B2 (en) * 2013-10-22 2016-12-13 Wisconsin Alumni Research Foundation Energy-efficient multicore processor architecture for parallel processing
US9791904B2 (en) * 2014-08-15 2017-10-17 Intel Corporation Balanced control of processor temperature
US20160070327A1 (en) * 2014-09-08 2016-03-10 Qualcomm Incorporated System and method for peak current management to a system on a chip
JP6236572B2 (ja) * 2014-09-17 2017-11-22 聯發科技股▲ふん▼有限公司Mediatek Inc. マルチプロセッサシステムにおける動的周波数スケーリング
CN104360822A (zh) * 2014-10-22 2015-02-18 深圳芯邦科技股份有限公司 芯片以及芯片工作频率的控制方法
US9811143B2 (en) * 2014-12-23 2017-11-07 Intel Corporation Systems and methods for dynamic spatial power steering
CN107430423A (zh) * 2015-03-03 2017-12-01 联发科技股份有限公司 控制多个硬件模块的方法与相应控制器及系统
US9971565B2 (en) * 2015-05-07 2018-05-15 Oracle International Corporation Storage, access, and management of random numbers generated by a central random number generator and dispensed to hardware threads of cores
US9660799B1 (en) * 2015-11-24 2017-05-23 Intel Corporation Changing the clock frequency of a computing device
CN105898405A (zh) * 2015-12-18 2016-08-24 乐视致新电子科技(天津)有限公司 智能电视动态调整系统性能模式的方法及智能电视
US10168758B2 (en) * 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
CN106528049B (zh) * 2016-11-17 2019-06-11 上海兆芯集成电路有限公司 在多存储体条件分支预测器中用于更新事件的随机数产生
CN106774767A (zh) * 2016-12-16 2017-05-31 算丰科技(北京)有限公司 串联供电芯片和系统、虚拟数字币挖矿机、及服务器
CN106855838A (zh) * 2016-12-29 2017-06-16 杭州嘉楠耘智信息科技有限公司 一种工作频率调整方法、装置及系统
US10423209B2 (en) * 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
US10782729B2 (en) * 2017-11-30 2020-09-22 Intel Corporation Clock signal modulation for processors
CN107947566A (zh) * 2017-12-21 2018-04-20 北京比特大陆科技有限公司 串联供电电路、方法及计算设备
CN109086130B (zh) * 2018-06-06 2022-06-10 北京嘉楠捷思信息技术有限公司 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
WO2020057180A1 (zh) * 2018-09-20 2020-03-26 北京嘉楠捷思信息技术有限公司 片内无源电源补偿电路及应用其的运算单元、芯片、算力板和计算设备
US11106267B2 (en) * 2019-11-27 2021-08-31 Amazon Technologies, Inc. Dynamic processor core frequency adjustment
US20210373961A1 (en) * 2020-05-28 2021-12-02 Qualcomm Incorporated Neural network graph partitioning for improved use of hardware resources

Also Published As

Publication number Publication date
CN109086130B (zh) 2022-06-10
US11502693B2 (en) 2022-11-15
EP3805926A1 (en) 2021-04-14
CN109086130A (zh) 2018-12-25
US20210203328A1 (en) 2021-07-01
EA202092949A1 (ru) 2021-03-18
WO2019233206A1 (zh) 2019-12-12
EP3805926A4 (en) 2022-03-09
CA3102424A1 (en) 2019-12-12

Similar Documents

Publication Publication Date Title
CN109086130B (zh) 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN109002356B (zh) 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN111061560B (zh) 云渲染资源调度方法、装置、电子设备及存储介质
US10754609B2 (en) Enhancing a rendering system to distinguish presentation time from data time
US20190204922A1 (en) Method and apparatus for generating motor brake signal
US9218044B2 (en) Computing system frequency target monitor
CN108984360B (zh) 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
US7725759B2 (en) System and method of managing clock speed in an electronic device
WO2006062538A2 (en) Adaptive power management in portable entertainment device
CN108475099A (zh) 用于控制工作电压的系统及方法
CN107948090A (zh) 一种Ceph存储集群卷的带宽控制方法及装置
CN108984469A (zh) 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
CN105491434A (zh) 一种场同步信号的处理方法以及控制电路
US20070257713A1 (en) Clock frequency variation of a clocked current consumer
CN110018789A (zh) 动态适配NAND的Tr和Tprom时间的方法、装置及存储介质
EA041302B1 (ru) Способ и приспособление для модуляции частоты микросхемы вычислительного устройства, хеш-плата, вычислительное устройство и носитель данных
CN112596601B (zh) 使计算设备产生定量功耗的方法及装置
CN116431545B (zh) 通信速率自适应调节方法、装置、计算机设备及存储介质
US7421382B2 (en) Data analysis techniques for dynamic power simulation of a CPU
TWI470402B (zh) 行動裝置cpu工作頻率控制方法
US8797083B2 (en) Methods of operating timers to inhibit timing error accumulation
JP3736511B2 (ja) 時刻変更方法およびそれを用いた時計回路
CN113938936A (zh) 通信管理方法、装置、网络设备及存储介质
US20100176859A1 (en) Self-Protecting Core System
CN111084985A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40084124

Country of ref document: HK