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

文档序号:16247512发布日期:2018-12-11 23:43阅读:227来源:国知局
计算设备的芯片调频方法、装置、算力板、计算设备及存储介质与流程

本发明涉及计算设备的芯片调频技术领域,尤其涉及一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。

背景技术

用于海量数据运算的计算设备中,通常集成了大量运算芯片,由于运算芯片制造工艺的限制,不同运算芯片的工作性能、算力、频率不尽相同;同时,单颗运算芯片也通常由多个相互独立的内核(core)组成,运算芯片内不同位置工艺偏差、压降等差异也使得各个内核的实际工作性能不尽相同。针对不同运算芯片及其内核的工作性能差异,如何动态调节运算芯片实际所需频率并设定各个内核的自适应方案,为亟待解决的问题。现有计算设备中为每颗运算芯片及其内核提供的频率一致,无法发挥性能较优的内核的计算优势,性能较弱内核影响运算芯片的运算性能,进而影响整体计算设备的运算性能。

另外,中国专利申请cn201611169618.6公开了一种串联供电芯片、系统、虚拟数字挖矿机及服务器,包括调整电路,分别与各串联供电芯片连接,对各串联供电芯片进行电压、温度或频率调整。所述调整单元对各串联供电芯片进行频率调整时,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。根据待供电单元的状态寄存器指示的状态判断待供电单元的工作状态是否正常,所述状态寄存器指示的状态包括:电压状态、温度状态、工作频率状态;或者根据待供电单元对发送给该待供电单元的数据的反馈数据,判断待供电单元的工作状态是否正常。

中国专利申请cn201611169618.6公开的一个实施例中,调整电路对各串联供电芯片进行频率调整时,作为频率调整电路,具体可以通过一个检测器,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,具体可以通过一个调节器,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。可见,cn201611169618.6公开了调节器可以对芯片进行频率调整,但其仅仅是根据待供电单元的是否正常收发数据、电压状态、温度状态、频率状态等工作状态来调整芯片的工作频率,频率调整机制缺乏准确性,并不能充分发挥芯片的运算性能。

综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。



技术实现要素:

针对上述的缺陷,本发明的目的在于提供一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质,其能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。

本发明提供一种计算设备的芯片调频方法,所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核,其特征在于,包括步骤有:

为所述计算设备的所述运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;

在预定的调整周期内,分析所述内核在当工作前频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与所述第二正确率阈值相同或者不相同;

若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调;和/或

若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调。

根据本发明所述的芯片调频方法,所述为所述计算设备的所述运算芯片设置多个所述工作频点,将所述运算芯片中的多个所述内核分别工作于各所述工作频点的步骤还包括:

通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;

所述若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调的步骤还包括:

若所述内核的所述计算正确率达到所述第一正确率阈值,通过所述锁相环电路对所述内核的所述当前工作频点进行上调;

所述若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调的步骤还包括:

若所述内核的所述计算正确率未达到所述第二正确率阈值,通过所述锁相环电路将所述内核的所述当前工作频点进行下调。

根据本发明所述的芯片调频方法,所述锁相环电路设置于所述运算芯片的内部或外部。

根据本发明所述的芯片调频方法,相邻的所述工作频点之间的频差为1~10%。

根据本发明所述的芯片调频方法,所述若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调的步骤还包括:

若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;

所述若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调的步骤还包括:

若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。

根据本发明所述的芯片调频方法,还包括步骤有:

若工作于预定的至少一个优化工作频点的所述内核超过预定比率,停止对所述内核进行调频;或者

若工作于至少一所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。

根据本发明所述的芯片调频方法,所述在预定的所述调整周期内,分析所述内核在当工作前频点的所述计算正确率是否达到所述第一正确率阈值和/或第二正确率阈值的步骤还包括:

在所述调整周期内,分析所述内核在所述当前工作频点提交的随机数是否正确;

统计所述内核在所述调整周期内提交的正确随机数的个数和错误随机数的个数;

根据所述正确随机数的个数和所述错误随机数的个数,计算出所述内核在所述调整周期内的随机数计算正确率,并判断所述随机数计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;

所述若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调的步骤还包括:

若所述内核的所述随机数计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调;

所述若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调的步骤还包括:

若所述内核的所述随机数计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调。

根据本发明所述的芯片调频方法,所述在所述调整周期内,分析所述内核提交的所述随机数是否正确的步骤还包括:

在所述调整周期内,所述内核每递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;

所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;

若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。

根据本发明所述的芯片调频方法,所述在预定的调整周期内,分析所述内核在当工作前频点的所述计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值的步骤还包括:

根据预设的实时调整指令,实时分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值和/或所述第二正确率阈值;或者

根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值和/或所述第二正确率阈值;或者

根据接收的即时调整指令,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值和/或所述第二正确率阈值;

所述若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调的步骤还包括:

根据所述实时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,实时将所述内核的所述当前工作频点进行上调;或者

根据所述定时调整指令,在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调;或者

根据所述即时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调;

所述若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调的步骤还包括:

根据所述实时调整指令,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,实时将所述内核的所述当前工作频点进行下调;或者

根据所述定时调整指令,在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调;或者

根据所述即时调整指令,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调;并根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。

根据本发明所述的芯片调频方法,所述计算设备用于挖掘虚拟数字货币的运算。

本发明还提供一种计算设备的芯片调频装置,所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核,所述芯片调频装置包括:

频点设置模块,用于为所述计算设备的所述运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;

计算性能分析模块,用于在预定的调整周期内,分析所述内核在当工作前频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与所述第二正确率阈值相同或者不相同;

频率调整模块,用于若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点进行上调;和/或用于若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点进行下调。

本发明还提供一种包括有上述任意一种所述芯片调频装置的算力板。

本发明还提供一种包括有上述任意一种所述芯片调频装置的计算设备。

本发明还提供一种存储介质,用于存储一种用于上述任意一种所述计算设备的芯片调频方法的计算机程序。

本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算正确率,若达到预定的第一正确率阈值,则将内核的当前工作频点进行上调;和/或若未达到预定的第二正确率阈值,则将内核的当前工作频点进行下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。

附图说明

图1是本发明计算设备的芯片调频装置的结构示意图;

图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图;

图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图;

图4是本发明计算设备的芯片调频方法的流程图;

图5是本发明第一实施例中计算设备的芯片调频方法的流程图;

图6是本发明第二实施例中计算设备的芯片调频方法的流程图;

图7是本发明计算设备的结构示意图。

附图标记:

100-计算设备的芯片调频装置

10-频点设置模块

20-计算性能分析模块30-频率调整模块

21-分析子模块

211-计算单元212-验算单元

22-统计子模块23-判断子模块

40-锁相环电路50-内核

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明的,本说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但是不是每个实施例必须包含这些特定特征、结构或特性。此外,这样的表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,不管有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。

此外,在说明书及后续的权利要求当中使用了某些词汇来指称特定组件或部件,所属领域中具有通常知识者应可理解,制造商可以用不同的名词或术语来称呼同一个组件或部件。本说明书及后续的权利要求并不以名称的差异来作为区分组件或部件的方式,而是以组件或部件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求书中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此系包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。

图1是本发明计算设备的芯片调频装置的结构示意图,所述计算设备可用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核(core)50。所述计算设备可包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核50。当然,所述计算设备还可以包括散热器、连接板、电源模块等。

需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片的频率调整机制和内核层面的频率调整机制。所述运算芯片的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核50工作于各个工作频点,充分发挥每个内核50的工作性能。所述内核层面的频率调整机制是指根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。

所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:

所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核50分别工作于各工作频点。

即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:

500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路(phaselockedloop,ppl)40为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。

值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核50提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。与此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核50从当前工作频点上调到上一个工作频点时,内核50的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。

所述计算性能分析模块20,用于在预定的调整周期内,分析内核50在所述当前工作频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。若内核50的计算正确率达到预定的第一正确率阈值,则表示所述内核50的计算性能可能还有提升空间;若内核50的计算正确率未达到预定的第二正确率阈值,则表示所述内核50的计算性能可能不足以在当前工作频点对应的频率下工作。

所述频率调整模块30,用于若内核50的计算正确率达到第一正确率阈值,表明该内核50尚未达到最佳计算性能,则将内核50的当前工作频点进行上调;和/或,用于若内核50的计算正确率未达到第二正确率阈值,表明该内核50的计算性能不足以在当前工作频点上工作,则将内核50的当前工作频点进行下调。

优选的是,所述频率调整模块30可通过如图2所示的锁相环电路40或软件对内核50进行调频,本领域技术人员可以理解的是,此处频率调整模块30的调频方式不仅限于此。即根据内核层面的频率调整机制,将根据内核50的实际计算性能(即计算正确率),将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。

优选的是,频率调整模块30用于若内核50的计算正确率达到第一正确率阈值,将内核50的当前工作频点上调到上一个工作频点;和/或,用于若内核50的计算正确率未达到第二正确率阈值,将内核50的当前工作频点下调到下一个工作频点。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500mhz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。

本发明芯片调频装置100可设置于运算芯片的内部或外部。本发明根据运算芯片中各个内核50的实际计算正确率评价内核50的工作性能,调节内核50对应频率,充分发挥性能较优内核50的计算优势,并避免性能较弱内核50影响运算芯片的运算性能,最大程度发挥各个内核50的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核50不会在不同频率间跳转,工作频率相对稳定。

图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:

所述频点设置模块10,用于通过多个锁相环电路40为运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点,各个工作频点的频率不同,且所述工作频点与锁相环电路40为一一对应关系。优选的是,锁相环电路40设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。因此,本发明可以设置更多的锁相环电路40来设置更多的工作频点,以使得各个内核50的计算性能充分发挥。

所述计算性能分析模块20,用于在预定的调整周期内,分析内核50在所述当前工作频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。

所述频率调整模块30,用于通过锁相环电路40对内核50的当前工作频点进行上调或下调。当然,频率调整模块30也可以通过其他硬件或软件实现对内核50的当前工作频点进行上调或下调。优选的是,频率调整模块30用于若内核50的计算正确率达到第一正确率阈值,通过锁相环电路40对内核50的当前工作频点上调到上一个工作频点;和/或,用于若内核50的计算正确率未达到第二正确率阈值,通过锁相环电路40将内核50的当前工作频点下调到下一个工作频点。

例如,结合上述“例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。”,以及内核50的当前工作频点为600mhz为例,第一正确率阈值和第二正确率阈值均为90%。若内核50在调整周期内的计算正确率达到90%,表示所述内核50的计算性能较好,则将内核50的当前工作频点600mhz上调到上一个工作频点650mhz;若内核50在调整周期内的计算正确率未达到90%,表示所述内核50的计算性能较弱,则将内核50的当前工作频点600mhz下调到下一个工作频点550mhz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。

再例如,第一正确率阈值为90%,第二正确率阈值为80%。若内核50在调整周期内的计算正确率达到90%,表示所述内核50的计算性能较好,则将内核50的当前工作频点600mhz上调到上一个工作频点650mhz;若内核50在调整周期内的计算正确率未达到80%,表示所述内核50的计算性能较弱,则将内核50的当前工作频点600mhz下调到下一个工作频点550mhz。

优选的是,所述频率调整模块30还包括有频率调整子模块31和停止频率调整子模块32,其中:

所述频率调整子模块31,用于根据内核50的计算正确率,对内核50的当前工作频点进行上调或下调。优选的是,频率调整子模块31根据内核50的计算正确率,通过锁相环电路40对内核50的当前工作频点进行上调或下调。

所述停止频率调整子模块32,用于若工作于预定的至少一个优化工作频点的内核50超过预定比率,停止对内核50进行调频;或者用于若工作于至少一优化工作频点上的内核50的数目最多,停止对内核50进行调频。

例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核50的工作频率已经到达该优化工作频点,表明运算芯片中个内核50的工作频率已经处于优化状态,可充分发挥各个内核50的计算性能,不再需要进一步调频,因此停止内核50工作频率的调整。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz,选择其中两个优化工作频点600mhz和650mhz为优化工作频点,若超过80%的内核50工作于工作频点600mhz和650mhz,则停止对内核50进行调频。

图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核80。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:

所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核50分别工作于各工作频点。即根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:

500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。优选的是,频点设置模块10通过如图2所示的多个锁相环电路40为运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点,工作频点与锁相环电路40为一一对应关系。

所述计算性能分析模块20,用于在预定的调整周期内,分析内核50在所述当前工作频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。

所述频率调整模块30,用于若内核50的计算正确率达到第一正确率阈值,表明该内核50尚未达到最佳计算性能,将内核50的当前工作频点进行上调;和/或用于若内核50的计算正确率未达到第二正确率阈值,表明该内核50的计算性能不足以在当前工作频点上工作,将内核50的当前工作频点进行下调。所述频率调整模块30可通过如图2所示的锁相环电路40或软件对内核50进行调频。即根据内核层面的频率调整机制,将根据内核50的实际计算性能(计算正确率),将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。

例如,第一正确率阈值和第二正确率阈值均为90%。当内核50工作在600mhz时,若内核50在预定的调整周期内的计算正确率超过90%(表明该内核50尚未达到最佳计算性能),则将内核50的当前工作频点600mhz上调到上一个工作频点,即提高其工作频率至650mhz;若内核50的计算正确率低于90%(表明该内核50的计算性能不足以在该当前工作频点600mhz的频率下工作),则将内核50的当前工作频点下调到下一个工作频点,即降低其工作频率至550mhz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500mhz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。

再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核50工作在600mhz时,若内核50在预定的调整周期内的计算正确率超过90%(表明该内核50尚未达到最佳计算性能),则将内核50的当前工作频点上调到上一个工作频点,即提高其工作频率至650mhz;若内核50的计算正确率低于80%(表明该内核50的计算性能不足以在该当前工作频点600mhz的频率下工作),则将内核50的当前工作频点下调到下一个工作频点,即降低其工作频率至550mhz。

优选的是,所述计算正确率可为内核50在调整周期内提交的nonce(numberonce,随机数)的计算正确率。即预定时间内,内核50所提交的全部nonce中,正确nonce所占的比率。区域链中的区块头包括所述nonce(4字节),nonce是一个随机值,矿工的作用其实就是猜出nonce的值,使得区块头的哈希(hash)可以小于目标值target,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则挖矿成功。

优选的是,图3中的计算性能分析模块20进一步包括有:

分析子模块21,用于在预定的调整周期内,分析内核50在所述当前工作频点提交的nonce是否正确。

统计子模块22,用于统计内核50在调整周期内提交的正确nonce的个数和错误nonce的个数。

判断子模块23,用于根据正确nonce的个数和错误nonce的个数,计算出内核50在调整周期内的nonce计算正确率,并判断nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值。

所述频率调整模块30,用于若内核50的nonce计算正确率达到第一正确率阈值,将内核50的当前工作频点进行下调;和/或用于若内核50的nonce计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行上调。

更好的是,分析子模块21进一步包括:

计算单元211,用于在调整周期内,内核50每递交一个nonce后,将nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征,计算单元211优选设置于内核50中。每个内核50提交的nonce中,包含nonce的标识信息(id),从而可实现对每个内核50的计算结果进行统计。

验算单元212,用于将内核50递交的所述nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征,若第一特征与第二特征相同,则判定所述nonce是正确nonce,否则判定所述nonce是错误nonce。验算单元212优选设置于运算芯片中。

例如,内核50计算出一个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用于根据预设的实时调整指令,实时分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。

所述频率调整模块30用于根据实时调整指令,若内核50在调整周期内的计算正确率达到第一正确率阈值,实时将内核50的当前工作频点进行上调;和/或用于若内核50在调整周期内的计算正确率未达到第二正确率阈值,实时将内核50的当前工作频点进行下调,使得内核50的工作频率得到实时动态调整。

优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。

所述频率调整模块30用于根据定时调整指令,在调整时间段内,若内核50在调整周期内的计算正确率达到第一正确率阈值,将内核50的当前工作频点进行上调;和/或,用于在调整时间段内,若内核50在调整周期内的计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行下调,使得内核50的工作频率得到定时调整。如设定每周仅设置周六(24小时)统计内核50计算正确率,并根据计算正确率进行频率调整。

优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。

所述频率调整模块30用于根据接收的即时调整指令,若内核50在调整周期内的计算正确率达到第一正确率阈值,将内核50的当前工作频点进行上调;和/或用于若内核50在调整周期内的计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行下调。并根据接收的停止调整指令,停止对内核50的当前工作频点的调整。

例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核50的计算正确率,若在调整周期(例如10分钟)内,若内核50的计算正确率超过第一正确率阈值(例如高于99%),则将内核50的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核50的计算正确率低于第二正确率阈值(例如低于99%),则将内核50的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核50的调频。

本发明还提供一种包括有所述芯片调频装置100的算力板。

本发明还提供一种包括有所述芯片调频装置100的计算设备。

图4是本发明计算设备的芯片调频方法的流程图,其可通过如图1~3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片层面的频率调整机制和内核层面的频率调整机制。所述运算芯片层面的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核50工作于各个工作频点,充分发挥每个内核50的工作性能。所述内核层面的频率调整机制是指根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。所述方法包括步骤有:

步骤s401,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点。

本步骤根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,本步骤通过如图2所示的多个锁相环电路40为运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点,工作频点与锁相环电路40为一一对应关系。本发明可以设置更多的锁相环电路40来设置更多的工作频点,以使得各个内核50的计算性能充分发挥。当然本步骤也可以通过其他硬件或软件为运算芯片设置多个工作频点。

值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核50提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以应该合理控制相邻的工作频点之间的频差,使得内核50从当前工作频点上调到上一个工作频点时,内核50的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。

步骤s402,在预定的调整周期内,分析内核50在所述当前工作频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。

本步骤中,若内核50的计算正确率达到预定的第一正确率阈值,则表示所述内核50的计算性能可能还有提升空间;若内核50的计算正确率未达到预定的第二正确率阈值,则表示所述内核50的计算性能可能不足以在当前工作频点对应的频率下工作。

优选的是,所述步骤s402进一步包括:

(1)根据预设的实时调整指令,实时分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;

(2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;或者

(3)根据接收的即时调整指令,分析内核50在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值。

步骤s403,若内核50的计算正确率达到第一正确率阈值,表明该内核50尚未达到最佳计算性能,则将内核50的当前工作频点进行上调。

步骤s603,若内核50的计算正确率达到第一正确率阈值,表明该内核50尚未达到最佳计算性能,将内核50的当前工作频点上调到上一个工作频点。

优选的是,所述步骤s403进一步包括:

(1)根据实时调整指令,若内核50在调整周期内的计算正确率达到第一正确率阈值,实时将内核50的当前工作频点进行上调;

(2)根据定时调整指令,在调整时间段内,若内核50在调整周期内的计算正确率达到第一正确率阈值,将内核50的当前工作频点进行上调;或者

(3)根据即时调整指令,若内核50在调整周期内的计算正确率达到第一正确率阈值,将内核50的当前工作频点进行上调;并根据接收的停止调整指令,停止对内核50的当前工作频点的调整。

步骤s404,若内核50的计算正确率未达到第二正确率阈值,表明该内核50的计算性能不足以在当前工作频点上工作,则将内核50的当前工作频点进行下调。

优选的是,所述步骤s404进一步包括:

(1)根据实时调整指令,若内核50在调整周期内的计算正确率未达到第二正确率阈值,实时将内核50的当前工作频点进行下调;

(2)根据定时调整指令,在调整时间段内,若内核50在调整周期内的计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行下调;或者

(3)根据即时调整指令,若内核50在调整周期内的计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行下调。并根据接收的停止调整指令,停止对内核50的当前工作频点的调整。

例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核50的计算正确率,若在调整周期(例如10分钟)内,若内核50的计算正确率超过第一正确率阈值(例如高于99%),则将内核50的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核50的计算正确率低于第二正确率阈值(例如低于99%),则将内核50的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核50的调频。

优选的是,本发明计算设备的芯片调频方法中,可以包含步骤s403或步骤s404其中一个步骤,也可以同时包含步骤s403和步骤s404这两个步骤。即步骤s403和步骤s404之间是“和/或”的关系。所述步骤s403和步骤s404可通过如图2所示的锁相环电路40或软件对内核50进行调频。即根据内核层面的频率调整机制,将根据内核50的实际计算性能(计算正确率),将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。

优选的是,所述步骤s403中,若内核50的计算正确率达到第一正确率阈值,将内核50的当前工作频点上调到上一个工作频点;和/或,所述步骤s404中,若内核50的计算正确率未达到第二正确率阈值,将内核50的当前工作频点下调到下一个工作频点。

例如,第一正确率阈值和第二正确率阈值均为90%。当内核50工作在600mhz时,若内核50在预定的调整周期内的计算正确率超过90%(表明该内核50尚未达到最佳计算性能),则将内核50的当前工作频点600mhz上调到上一个工作频点,即提高其工作频率至650mhz;若内核50的计算正确率低于90%(表明该内核50的计算性能不足以在该当前工作频点600mhz的频率下工作),则将内核50的当前工作频点下调到下一个工作频点,即降低其工作频率至550mhz。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500mhz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。

再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核50工作在600mhz时,若内核50在预定的调整周期内的计算正确率超过90%(表明该内核50尚未达到最佳计算性能),则将内核50的当前工作频点上调到上一个工作频点,即提高其工作频率至650mhz;若内核50的计算正确率低于80%(表明该内核50的计算性能不足以在该当前工作频点600mhz的频率下工作),则将内核50的当前工作频点下调到下一个工作频点,即降低其工作频率至550mhz。

本发明根据运算芯片中各个内核50的实际计算性能评价内核50的工作性能,调节内核50对应频率,充分发挥性能较优内核50的计算优势,并避免性能较弱内核50影响运算芯片的运算性能,最大程度发挥各个内核50的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核50不会来回变动频率,工作频率相对稳定。

图5是本发明第一实施例中计算设备的芯片调频方法的流程图,其可通过如图2所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:

步骤s501,通过多个锁相环电路40为运算芯片设置多个工作频点,工作频点与锁相环电路40为一一对应关系。

优选的是,如图2所示的锁相环电路40设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。因此,本发明可以设置更多的锁相环电路40来设置更多的工作频点,以使得各个内核50的计算性能充分发挥。

步骤s502,分析每个内核50在当前工作频点的计算正确率。

优选的是,预定的调整周期内,分析内核50在所述当前工作频点的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。

步骤s503,根据内核50的计算正确率,通过如图2所示的锁相环电路40对内核50的当前工作频点进行上调或下调。当然,本步骤也可以通过其他硬件或软件实现对内核50的当前工作频点进行上调或下调。

优选的是,若内核50的计算正确率达到第一正确率阈值,通过锁相环电路40对内核50的当前工作频点上调到上一个工作频点;和/或,若内核50的计算正确率未达到第二正确率阈值,通过锁相环电路40将内核50的当前工作频点下调到下一个工作频点。

步骤s504,若工作于预定的至少一个优化工作频点的内核50超过预定的第一比率,停止对内核50进行调频;或者若工作于至少一优化工作频点上的内核50的数目最多,停止对内核50进行调频。

例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核50的工作频率已经到达该优化工作频点,表明运算芯片中个内核50的工作频率已经处于优化状态,可充分发挥各个内核50的计算性能,不再需要进一步调频,因此停止内核50工作频率的调整。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz,选择其中两个优化工作频点600mhz和650mhz为优化工作频点,若超过80%的内核50工作于工作频点600mhz和650mhz,则停止对内核50进行调频。

图6是本发明第二实施例中计算设备的优选芯片调频方法的流程图,其可通过如图3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。优选的是,所述计算正确率可为内核50在调整周期内提交的nonce(numberonce,随机数)的计算正确率。即预定时间内,内核50所提交的全部nonce中,正确nonce所占的比率。区域链中的区块头包括所述nonce(4字节),nonce是一个随机值,矿工的作用其实就是猜出nonce的值,使得区块头的哈希(hash)可以小于目标值target,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则挖矿成功。所述方法包括步骤有:

步骤s601,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点。

步骤s602,在调整周期内,分析内核50在所述当前工作频点提交的nonce是否正确。

本步骤优选进一步包括:

(1)在调整周期内,内核50每递交一个nonce后,内核50将nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。每个内核50提交的nonce中,包含nonce的标识信息(id),从而可实现对每个内核50的计算结果进行统计。

(2)运算芯片的验算单元212将nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。

(3)若第一特征与第二特征相同,则验算单元212判定nonce是正确nonce,否则判定nonce是错误nonce。

例如,内核50计算出一个nonce后提交,将所述nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。验算单元212也将该nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该nonce是一次正确提交。

步骤s603,统计内核50在调整周期内提交的正确nonce的个数和错误nonce的个数。

步骤s604,根据正确nonce的个数和错误nonce的个数,计算出内核50在调整周期内的nonce计算正确率。

步骤s605,判断nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,若内核50的nonce计算正确率达到第一正确率阈值则执行步骤s606,若内核50的nonce计算正确率未达到第二正确率阈值则执行步骤s607。

步骤s606,若内核50的nonce计算正确率达到第一正确率阈值,将内核50的当前工作频点进行上调,优选将内核50的当前工作频点上调到上一个工作频点。

步骤s607,若内核50的nonce计算正确率未达到第二正确率阈值,将内核50的当前工作频点进行下调,优选将内核50的当前工作频点下调到下一个工作频点。

优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500。

优选的是,本发明计算设备的芯片调频方法中,可以包含步骤s606或步骤s607其中一个步骤,也可以同时包含步骤s606和步骤s607这两个步骤。即步骤s606和步骤s607之间是“和/或”的关系。并且,所述步骤s606和步骤s607可通过如图2所示的锁相环电路40或软件对内核50进行调频。

本发明还提供一种存储介质,用于存储如图4~图6所述任意一种计算设备的芯片调频方法的计算机程序。例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的存储介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输和/或被存储在根据程序指令运行的计算设备的存储器中。在此,根据本申请的一个实施例包括一个如图7所示的计算设备,所述计算设备优选包括控制板、与所述控制板连接的至少一算力板,所述控制板设置有处理器,所述算力板上设置有多个用于运算的运算芯片,所述运算芯片中设置有多个内核;该设备包括用于存储计算机程序指令的存储介质和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该计算设备执行基于前述多个实施例中的方法和/或技术方案。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。

在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。

综上所述,本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算正确率,若达到预定的第一正确率阈值,则将内核的当前工作频点进行上调;和/或若未达到预定的第二正确率阈值,则将内核的当前工作频点进行下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1