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

文档序号:31069805发布日期:2022-08-09 20:55阅读:126来源:国知局
计算设备的芯片调频方法、装置、算力板、计算设备及存储介质与流程
计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
1.本技术为分案申请,原申请的申请日为:2018年06月06日;原申请的申请号为:201810576572.2;原申请的发明名称为:计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。
技术领域
2.本发明涉及计算设备的芯片调频技术领域,尤其涉及一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质。


背景技术:

3.用于海量数据运算的计算设备中,通常集成了大量运算芯片,由于运算芯片制造工艺的限制,不同运算芯片的工作性能、算力、频率不尽相同;同时,单颗运算芯片也通常由多个相互独立的内核(core)组成,运算芯片内不同位置工艺偏差、压降等差异也使得各个内核的实际工作性能不尽相同。针对不同运算芯片及其内核的工作性能差异,如何动态调节运算芯片实际所需频率并设定各个内核的自适应方案,为亟待解决的问题。现有计算设备中为每颗运算芯片及其内核提供的频率一致,无法发挥性能较优的内核的计算优势,性能较弱内核影响运算芯片的运算性能,进而影响整体计算设备的运算性能。
4.另外,中国专利申请cn201611169618.6公开了一种串联供电芯片、系统、虚拟数字挖矿机及服务器,包括调整电路,分别与各串联供电芯片连接,对各串联供电芯片进行电压、温度或频率调整。所述调整单元对各串联供电芯片进行频率调整时,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。根据待供电单元的状态寄存器指示的状态判断待供电单元的工作状态是否正常,所述状态寄存器指示的状态包括:电压状态、温度状态、工作频率状态;或者根据待供电单元对发送给该待供电单元的数据的反馈数据,判断待供电单元的工作状态是否正常。
5.中国专利申请cn201611169618.6公开的一个实施例中,调整电路对各串联供电芯片进行频率调整时,作为频率调整电路,具体可以通过一个检测器,分别针对各串联供电芯片,按照预设周期检测串联供电芯片中各待供电单元的工作状态是否正常;若有待供电单元的工作状态不正常,具体可以通过一个调节器,在预设频率范围内按照预设频率步长提高或降低工作状态不正常的待供电单元的工作频率。可见,cn201611169618.6公开了调节器可以对芯片进行频率调整,但其仅仅是根据待供电单元的是否正常收发数据、电压状态、温度状态、频率状态等工作状态来调整芯片的工作频率,频率调整机制缺乏准确性,并不能充分发挥芯片的运算性能。
6.综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。


技术实现要素:

7.针对上述的缺陷,本发明的目的在于提供一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质,其能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
8.本发明提供一种计算设备的芯片调频方法,所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核,其特征在于,包括步骤有:
9.频点设置步骤,为所述计算设备的所述运算芯片设置多个工作频点;
10.计算性能分析步骤,分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
11.频率调整步骤,若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,将所述内核的所述当前工作频点进行下调。
12.上述的芯片调频方法,其中,所述频点设置步骤进一步包括:
13.通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
14.所述频率调整步骤进一步包括:
15.通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
16.上述的芯片调频方法,其中,所述锁相环电路设置于所述运算芯片的内部或外部。
17.上述的芯片调频方法,其中,相邻的所述工作频点之间的频差为1~10%。
18.上述的芯片调频方法,其中,还包括步骤有:
19.根据工作于预定的至少一个或多个优化工作频点的所述内核的数目,停止对所述内核进行调频。
20.上述的芯片调频方法,其中,若工作于预定的至少一个或多个所述优化工作频点的所述内核超过预定的第一比率,停止对所述内核进行调频。
21.上述的芯片调频方法,其中,若工作于预定的至少一个或多个所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。
22.上述的芯片调频方法,其中,将所述运算芯片中的多个所述内核分别工作于各所述工作频点,多个所述工作频点的频点个数、频率之间差距为可调节式设置。
23.上述的芯片调频方法,其中,多个所述内核按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
24.上述的芯片调频方法,其中,所述频率调整步骤进一步包括:
25.若所述内核的所述当前值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
26.若所述内核的所述当前值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
27.上述的芯片调频方法,其中,所述计算性能分析步骤还包括:
28.根据预设的实时调整指令,实时判断所述内核的所述当前值是否达到所述计算正
确阈值或所述计算错误阈值;
29.所述频率调整步骤还包括:
30.根据预设的实时调整指令,若所述内核的所述当前值达到所述计算正确阈值,实时将所述内核的所述当前工作频点进行上调;若所述内核的所述当前值达到所述计算错误阈值,实时将所述内核的所述当前工作频点进行下调。
31.上述的芯片调频方法,其中,所述计算性能分析步骤还包括:
32.根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,判断所述内核的所述当前值是否达到所述计算正确阈值或所述计算错误阈值;
33.所述频率调整步骤还包括:
34.根据预设的定时调整指令,在所述调整时间段内,若所述内核的所述当前值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;在所述调整时间段内,若所述内核的所述当前值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调。
35.上述的芯片调频方法,其中,所述计算性能分析步骤还包括:
36.根据接收的即时调整指令,分析所述内核的所述当前值是否达到所述计算正确阈值或所述计算错误阈值;
37.所述频率调整步骤还包括:
38.根据接收的即时调整指令,若所述内核的所述当前值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;若所述内核的所述当前值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
39.上述的芯片调频方法,其中,还包括参考节点值,所述计算性能分析步骤进一步包括:
40.分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值。
41.上述的芯片调频方法,其中,所述计算性能分析步骤进一步包括:
42.分析所述内核在当前工作频点的每次计算是否正确,所述内核每错误计算至少一次,在所述参考节点值上减少一次所述计算错误权重值。
43.上述的芯片调频方法,其中,所述方法还包括:
44.判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
45.所述频率调整步骤进一步包括:
46.若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;
47.若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调。
48.上述的芯片调频方法,其中,所述方法还包括:
49.通过调整所述内核的所述参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和所述计算错误阈值中的至少一个数值,控制所述内核的调整周期或所述内核期望容忍的驻留差错率。
50.上述的芯片调频方法,其中,所述方法还包括:
51.通过控制所述计算正确权重值和所述计算错误权重值的比值控制所述内核期望容忍的驻留差错率。
52.上述的芯片调频方法,其中,所述方法还包括:
53.通过控制所述计算正确权重值和所述计算错误权重值的绝对值大小控制调整周期。
54.上述的芯片调频方法,其中,所述方法还包括:
55.通过控制所述计算正确阈值和所述计算错误阈值的绝对值大小控制所述调整周期。
56.上述的芯片调频方法,其中,所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
57.上述的芯片调频方法,其中,所述分析所述内核在所述当前工作频点的每次计算是否正确的步骤还包括:
58.分析所述内核每次提交的随机数是否正确;
59.所述内核每提交至少一次正确随机数,在所述当前值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述当前值上减少一次所述计算错误权重值。
60.上述的芯片调频方法,其中,所述分析所述内核每次提交的所述随机数是否正确的步骤还包括:
61.所述内核递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
62.所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;
63.若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
64.上述的芯片调频方法,其中:所述内核每次提交的随机数为nonce;
65.所述内核将所述nonce嵌入区块头计算得到第一哈希结果,所述第一哈希结果中包含有第一特征;
66.所述验算单元将所述nonce嵌入区块头计算得到第二哈希结果,所述第二哈希结果中包含有第二特征。
67.本发明还提供一种计算设备的芯片调频装置,基于上述任意一项所述的芯片调频方法,所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核,其特征在于,所述芯片调频装置包括:
68.频点设置模块,用于为所述计算设备的所述运算芯片设置多个工作频点;
69.计算性能分析模块,用于分析所述内核在当前工作频点的每次计算是否正确,所述内核每正确计算至少一次,增加一次预定的计算正确权重值,并且所述内核每错误计算至少一次,减少一次预定的计算错误权重值;
70.频率调整模块,用于若所述内核的当前值达到预定的计算正确阈值,将所述内核的所述当前工作频点进行上调;或者,若所述内核的所述当前值达到预定的计算错误阈值,
将所述内核的所述当前工作频点进行下调。
71.上述的芯片调频装置,其中,所述频点设置模块用于通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
72.所述频率调整模块,用于通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
73.上述的芯片调频装置,其中,所述锁相环电路设置于所述运算芯片的内部或外部。
74.上述的芯片调频装置,其中,相邻的所述工作频点之间的频差为1~10%。
75.上述的芯片调频装置,其中,所述频率调整模块还包括有:
76.频率调整子模块,用于对所述内核的所述当前工作频点进行上调或下调;
77.停止频率调整子模块,根据工作于预定的至少一个或多个优化工作频点的所述内核的数目,停止对所述内核进行调频。
78.上述的芯片调频装置,其中,所述计算性能分析模块执行实时调整指令、定时调整指令和即时调整指令中的一个指令。
79.上述的芯片调频装置,其中,所述计算性能分析模块进一步包括有:
80.设置子模块,用于预先设置所述内核的参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和所述计算错误阈值中的至少一个数值,控制所述内核的调整周期或所述内核期望容忍的驻留差错率;
81.分析子模块,用于分析所述内核在所述当前工作频点的每次计算是否正确;
82.计数子模块,用于所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上减少一次所述计算错误权重值;
83.判断子模块,用于判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
84.所述频率调整模块用于若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点进行上调;以及用于若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点进行下调。
85.上述的芯片调频装置,其中,所述分析子模块用于分析所述内核每次提交的随机数是否正确;
86.所述计数子模块用于所述内核每提交至少一次正确随机数,在所述参考节点值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述参考节点值上减少一次所述计算错误权重值。
87.本发明还提供一种包括有上述任意一种所述芯片调频装置的算力板。
88.本发明还提供一种包括有上述任意一种所述芯片调频装置的计算设备。
89.本发明还提供一种存储介质,用于存储一种用于上述任意一种所述计算设备的芯片调频方法的计算机程序。
90.本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后内核每正确计算至少一次,增加一次预定的计算正确权重值;内核每错误计算至少一次,减少一次预定的计算错误权重值;若达到预定的计算正确阈值,将当前工作频点进行上调,即上调计算性能高的内核
一词在此系包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。
112.图1是本发明计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核(core)50。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核50。当然,所述计算设备还可以包括散热器、连接板、电源模块等。
113.需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片的频率调整机制和内核层面的频率调整机制。所述运算芯片的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核50工作于各个工作频点,充分发挥每个内核50的工作性能。所述内核层面的频率调整机制是指根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。
114.所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
115.所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核50分别工作于各工作频点。
116.即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路(phase locked loop,ppl)40为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
117.值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核50提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核50从当前工作频点上调到上一个工作频点时,内核50的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
118.所述计算性能分析模块20,用于分析内核50在当前工作频点的每次计算是否正确,内核50每正确计算至少一次,增加一次预定的计算正确权重值;内核50每错误计算至少一次,减少一次预定的计算错误权重值。若内核50的当前值达到预定的计算正确阈值,则表示内核50的计算性能指标较高,所述内核50的计算性能可能还有提升空间。若内核50的当前值达到预定的计算错误阈值,则表示内核50的计算性能指标较低,所述内核50的计算性能可能不足以在当前工作频点对应的频率下工作。
119.所述频率调整模块30,用于若内核50的当前值达到预定的计算正确阈值,将内核50的当前工作频点进行上调;或者,用于若内核50的当前值达到预定的计算错误阈值,将内
核50的当前工作频点进行下调。即根据内核层面的频率调整机制,将根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。
120.本发明芯片调频装置100可设置于运算芯片的内部或外部。本发明根据运算芯片中各个内核50的实际计算性能评价内核50的工作性能,调节内核50对应频率,充分发挥性能较优内核50的计算优势,并避免性能较弱内核50影响运算芯片的运算性能,最大程度发挥各个内核50的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核50不会在不同频率间跳转,工作频率相对稳定。
121.图2是本发明一实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(core)50。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
122.所述频点设置模块10,用于通过多个锁相环电路40为运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点,各个工作频点的频率不同,且所述工作频点与锁相环电路40为一一对应关系。优选的是,锁相环电路40设置于运算芯片的内部或外部。
123.所述计算性能分析模块20,用于分析内核50在当前工作频点的每次计算是否正确,内核50每正确计算至少一次,增加一次预定的计算正确权重值;并且内核50每错误计算至少一次,减少一次预定的计算错误权重值。
124.所述频率调整模块30,用于通过锁相环电路40对内核50的当前工作频点进行上调或下调。具体而言,若内核50的当前值达到预定的计算正确阈值,通过锁相环电路40将内核50的当前工作频点进行上调;或者,若内核50的当前值达到预定的计算错误阈值,通过锁相环电路40将内核50的当前工作频点进行下调。
125.优选的是,所述频率调整模块30还包括有频率调整子模块31和停止频率调整子模块32,其中:
126.所述频率调整子模块31,用于对内核50的当前工作频点进行上调或下调。优选的是,频率调整子模块31通过锁相环电路40对内核50的当前工作频点进行上调或下调。当然,频率调整子模块31也可以通过其他硬件或软件实现对内核50的当前工作频点进行上调或下调。
127.所述停止频率调整子模块32,用于若工作于预定的至少一个优化工作频点的内核50超过预定的第一比率,停止对内核50进行调频;或者用于若工作于至少一优化工作频点上的内核50的数目最多,停止对内核50进行调频。
128.例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核50的工作频率已经到达该优化工作频点,表明运算芯片中个内核50的工作频率已经处于优化状态,可充分发挥各个内核50的计算性能,不再需要进一步调频,因此停止内核50工作频率的调整。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz,选择其中两个优化工作频点600mhz和650mhz为优化工作频点,若超过80%的内核50工作于工作频点600mhz和650mhz,则停止对内核50进行调频。
129.图3是本发明另一实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(core)50。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100包括频点设置模块10、计算性能分析模块20、频率调整模块30,其中:
130.所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核50分别工作于各工作频点。即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路40为运算芯片设置多个工作频点。
131.所述计算性能分析模块20进一步包括有:
132.设置子模块22,用于预先设置内核50的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
133.分析子模块21,用于分析内核50在当前工作频点的每次计算是否正确。内核50可以进行各种不同的计算,可分析内核50的每次某种或几种计算是否正确。优选为分析内核50计算出的nonce是否正确。
134.计数子模块23,用于内核50每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核50每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核50每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,可以设置为内核50每正确计算n次(n为大于1的自然数),在参考节点值上增加一次计算正确权重值。内核50每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核50每错误计算n次(n为大于1的自然数),在参考节点值上减少一次计算错误权重值。
135.判断子模块24,用于判断内核50的当前参考节点值是否达到计算正确阈值或计算错误阈值。若当前参考节点值达到计算正确阈值,则表示所述内核50的计算性能较高且可能还有提升空间;若当前参考节点值达到计算错误阈值,则表示所述内核50的计算性能较弱,可能不足以在当前工作频点对应的频率下工作。
136.所述频率调整模块30,用于若内核50的当前参考节点值达到计算正确阈值,表明该内核50尚未达到最佳计算性能,将内核50的当前工作频点进行上调;以及用于若内核50的当前参考节点值达到计算错误阈值,表明该内核50的计算性能不足以在当前工作频点上工作,将内核50的当前工作频点进行下调。优选的是,所述频率调整模块30可通过如图2所示的锁相环电路40或软件对内核50进行调频。本领域技术人员可以理解的是,频点调整模块50的调整设置工作频点的调整方式并不仅限于此。即根据内核层面的频率调整机制,将根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50
的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。
137.优选的是,频率调整模块30用于若内核50的当前值达到计算正确阈值,将内核50的当前工作频点上调到上一个工作频点;或者用于若内核50的当前值达到计算错误阈值,将内核50的当前工作频点下调到下一个工作频点。本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500mhz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。
138.例如,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
139.内核50每正确计算一次,在该参考节点值上加180(计算正确权重值);内核50每错误计算一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
140.当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是maker的初始值,如果有正确提交则maker+180,每次错误提交则maker-9000。经过n次正确(n为大于或等于1的自然数),m次错误后(m为大于或等于1的自然数),marker应该处在400000+n*180-m*9000的位置,如果marker超过某侧门限则进行相应频率调整(即上调或下调)。然后每次频率调整到新的频点上都初始化该值,即将当前参考节点值重新设置为初始的参考节点值。
141.优选的是,所述设置子模块22用于根据实际需求设置和调整内核50的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或者不相同,计算正确阈值和计算错误阈值相同或者不相同。
142.优选的是,所述设置子模块22用于通过控制计算正确权重值和计算错误权重值的比值控制内核50期望容忍的驻留差错率。驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
143.优选的是,所述设置子模块22用于通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
144.优选的是,所述设置子模块22用于通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
145.优选的是,所述内核50的正确计算是指内核50正确计算nonce。
146.所述分析子模块21,用于分析内核50每次提交的nonce是否正确。
147.所述计数子模块26,用于在内核50每提交至少一次正确nonce,在参考节点值上增加一次计算正确权重值;以及内核50每提交至少一次错误nonce,在参考节点值上减少一次
计算错误权重值。优选的是,在内核50每提交一次正确nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核50每提交n(n为大于1的自然数)次正确nonce,在参考节点值上增加一次计算正确权重值。内核50每提交一次错误nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核50每提交n(n为大于1的自然数)次错误nonce,在参考节点值上减少一次计算错误权重值。
148.更好的是,分析子模块21进一步包括:
149.计算单元211,用于内核50递交一个nonce后,内核50将nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征。
150.验算单元212,用于将nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征。若第一特征与第二特征相同,则判定nonce是正确nonce,否则判定nonce是错误nonce。
151.例如,内核50计算出一个nonce后提交,将所述nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。验算单元212也将该nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该nonce是一次正确提交。
152.需指出的是,为了提高单个内核80计算出可满足写入区块链的nonce值的概率,也可以采用比上述“目标值target”要容易的多target_lite来判断hash,每个内核80要提交可以更加频繁的提交nonce,第一验算单元212对内核80提交的nonce进行验算,如果其使用内核80提交的nonce计算出的hash同样通过target_lite的判定,即认为内核80的正确提交,否则即为错误提交。本发明并不局限于使用可写入最终区块链的nonce。第一验算单元212和内核80之间交互的nonce是满足更低门限,提交密度高,可利于频率调整。
153.在本发明一个具体应用实施例中:使用6个锁相环电路40,设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。如设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
154.按照4块算力板统计出的各对应频率上分布的内核数目如下:
155.算力板0:[294 26 96 224 1023 1665]
[0156]
算力板1:[274 47 111 212 963 1721]
[0157]
算力板2:[350 25 153 369 1381 1050]
[0158]
算力板3:[488 33 184 367 1342 950]
[0159]
首先,结合数据进一步说明机制。根据驻留差错率s=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核50的驻留差错率s(理解为可长期驻留在某个频点)为180/(180+9000)=1.96%,此时内核50长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核50的计算错误率小于1.96%(驻留差错率s),其工作频率将被上调;若内核50的计算错误率大于1.96%(驻留差错率s),其工作频率将被下调。
[0160]
依据设置的难度(该难度与检验基准有关,对内核50计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个nonce的期望步长为:(1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
[0161]
以650mhz为例,内核50提交单个nonce的期望为1.3个/秒(即1秒递交1.3个nonce)。以e为0.5%的场景进行解释,即在746次的nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
[0162]
优选的是,所述计算性能分析模块20用于根据预设的实时调整指令,实时判断内核50的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0163]
所述频率调整模块30用于频率调整模块30用于根据预设的实时调整指令,若内核50的当前参考节点达到计算正确阈值,实时将内核50的当前工作频点进行上调。若内核50的当前参考节点达到计算错误阈值,实时将内核50的当前工作频点进行下调,使得内核50的工作频率得到实时动态调整。
[0164]
优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核50的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0165]
所述频率调整模块30用于根据预设的定时调整指令,在调整时间段内,若内核50的当前参考节点达到计算正确阈值,将内核50的当前工作频点进行上调。在调整时间段内,若内核50的当前参考节点达到计算错误阈值,将内核50的当前工作频点进行下调,使得内核50的工作频率得到定时调整。如设定每周仅设置周六的24小时内统计内核50出正确nonce的个数,并根据计算正确率进行频率调整。
[0166]
优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核50的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0167]
所述频率调整模块30用于根据接收的即时调整指令,若内核50的当前参考节点达到计算正确阈值,将内核50的当前工作频点进行上调。若内核50的当前参考节点达到计算错误阈值,将内核50的当前工作频点进行下调。根据接收的停止调整指令,停止对内核50的当前工作频点的调整。以及用于根据接收的停止调整指令,停止对内核50的当前工作频点的调整。
[0168]
例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核50每计算正确nonce一次,在参考节点上增加权重a,内核50每计算错误nonce一次,在该参考节点上减少权重b。当前增加数值达到计算正确数量阈值c时,将内核50向上一频点进阶。当前减少数值达到计算错误数阈值d时,将内核50向下一个频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核50的调频。
[0169]
本发明还提供一种包括有如所述芯片调频装置100的算力板。
[0170]
本发明还提供一种包括有所述芯片调频装置100的计算设备。
[0171]
图4是本发明计算设备的芯片调频方法的流程图,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片层面的频率调整机制和内核层
面的频率调整机制。所述运算芯片层面的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核50工作于各个工作频点,充分发挥每个内核50的工作性能。所述内核层面的频率调整机制是指根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。所述方法包括步骤有:
[0172]
步骤s401,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点。
[0173]
本步骤根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,本步骤可以通过如图2所示的多个锁相环电路40为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0174]
步骤s402,分析内核50在当前工作频点的每次计算是否正确,内核50每正确计算至少一次,增加一次预定的计算正确权重值,并且内核50每错误计算至少一次,减少一次预定的计算错误权重值。
[0175]
若内核50的当前值达到预定的计算正确阈值,则表示内核50的计算性能指标较高,所述内核50的计算性能可能还有提升空间。若内核50的当前值达到预定的计算错误阈值,则表示内核50的计算性能指标较低,所述内核50的计算性能可能不足以在当前工作频点对应的频率下工作。
[0176]
步骤s403,若内核50的当前值达到预定的计算正确阈值,将内核50的当前工作频点进行上调;或者,若内核50的当前值达到预定的计算错误阈值,将内核50的当前工作频点进行下调。
[0177]
本步骤即根据内核层面的频率调整机制,将根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。
[0178]
本发明根据运算芯片中各个内核50的实际计算性能评价内核50的工作性能,调节内核50对应频率,充分发挥性能较优内核50的计算优势,并避免性能较弱内核50影响运算芯片的运算性能,最大程度发挥各个内核50的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核50不会来回变动频率,工作频率相对稳定。
[0179]
优选的是,所述步骤s401可通过多个锁相环电路40为运算芯片设置多个工作频点,工作频点与锁相环电路40为一一对应关系。如图2所示的锁相环电路40可设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。因此,本发明可以设置更多的锁相环电路40来设置更多的工作频点,以使得各个内核50的计算性能充分发挥。
[0180]
值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核
50提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核50从当前工作频点上调到上一个工作频点时,内核50的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0181]
优选的是,所述步骤s403可通过锁相环电路40对内核50的当前工作频点进行上调或下调。具体而言,若内核50的当前值达到预定的计算正确阈值,通过锁相环电路40将内核50的当前工作频点进行上调;或者,若内核50的当前值达到预定的计算错误阈值,通过锁相环电路40将内核50的当前工作频点进行下调。
[0182]
本发明计算设备的芯片调频方法还可包括:
[0183]
若工作于预定的至少一个优化工作频点的内核50超过预定的第一比率,停止对内核50进行调频。或者
[0184]
若工作于至少一优化工作频点上的内核50的数目最多,停止对内核50进行调频。
[0185]
例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核50的工作频率已经到达该优化工作频点,表明运算芯片中个内核50的工作频率已经处于优化状态,可充分发挥各个内核50的计算性能,不再需要进一步调频,因此停止内核50工作频率的调整。例如设置6个工作频点,500mhz,550mhz,600mhz,650mhz,700mhz,750mhz,选择其中两个优化工作频点600mhz和650mhz为优化工作频点,若超过80%的内核50工作于工作频点600mhz和650mhz,则停止对内核50进行调频。
[0186]
图5是本发明再一实施例中计算设备的芯片调频方法的流程图,其可通过所述芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述方法包括步骤有:
[0187]
步骤s501,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点。
[0188]
本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核50工作于各个工作频点。例如设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核50的计算性能。在启动调频开关时(尚未对内核50进行调频),内核50可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,可以通过如图2所示的多个锁相环电路40为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。优选的是,相邻的工作频点之间的频差为1~10%。
[0189]
步骤s502,预先设置内核50的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
[0190]
优选的是,根据实际需求设置和调整内核50的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或
者不相同,计算正确阈值和计算错误阈值相同或者不相同。
[0191]
通过控制计算正确权重值和计算错误权重值的比值控制内核50期望容忍的驻留差错率。所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
[0192]
通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
[0193]
通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
[0194]
步骤s503,分析内核50在当前工作频点的每次计算是否正确。
[0195]
内核50可以进行各种不同的计算,可分析内核50的每次某种或几种计算是否正确。优选为分析内核50计算出的nonce是否正确。
[0196]
步骤s504,内核50每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核50每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核50每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核50每正确计算n次(n为大于1的自然数),在参考节点值上增加一次计算正确权重值。内核50每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核50每错误计算n次(n为大于1的自然数),在参考节点值上减少一次计算错误权重值。
[0197]
步骤s505,判断内核50的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核50的当前参考节点值达到计算正确阈值,则执行步骤s506,若内核50的当前参考节点值达到计算错误阈值,则执行步骤s507。
[0198]
本步骤优选包括:
[0199]
(1)根据预设的实时调整指令,实时判断内核50的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
[0200]
(2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核50的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
[0201]
(3)根据接收的即时调整指令,分析内核50的当前参考节点是否达到计算正确阈值或计算错误阈值。
[0202]
步骤s506,若内核50的当前参考节点值达到计算正确阈值,表明该内核50尚未达到最佳计算性能,将内核50的当前工作频点进行上调。优选的是,若内核50的当前值达到计算正确阈值,将内核50的当前工作频点上调到上一个工作频点。
[0203]
本步骤优选包括:
[0204]
(1)根据预设的实时调整指令,若内核50的当前参考节点达到计算正确阈值,实时将内核50的当前工作频点进行上调;或者
[0205]
(2)根据预设的定时调整指令,在调整时间段内,若内核50的当前参考节点达到计算正确阈值,将内核50的当前工作频点进行上调;或者
[0206]
(3)根据接收的即时调整指令,若内核50的当前参考节点达到计算正确阈值,将内核50的当前工作频点进行上调。并且根据接收的停止调整指令,停止对内核50的当前工作频点的调整。
[0207]
步骤s507,若内核50的当前参考节点值达到计算错误阈值,表明该内核50的计算性能不足以在当前工作频点上工作,将内核50的当前工作频点进行下调。优选的是,若内核50的当前值达到计算错误阈值,将内核50的当前工作频点下调到下一个工作频点。
[0208]
本步骤优选包括:
[0209]
(1)根据预设的实时调整指令,若内核50的当前参考节点达到计算错误阈值,实时将内核50的当前工作频点进行下调;或者
[0210]
(2)根据预设的定时调整指令,在调整时间段内,若内核50的当前参考节点达到计算错误阈值,将内核50的当前工作频点进行下调;或者
[0211]
(3)根据接收的即时调整指令,若内核50的当前参考节点达到计算错误阈值,将内核50的当前工作频点进行下调;根据接收的停止调整指令,停止对内核50的当前工作频点的调整。
[0212]
例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核50每计算正确nonce一次,在参考节点上增加权重a,内核50每计算错误nonce一次,在该参考节点上减少权重b。当前增加数值达到计算正确数量阈值c时,将内核50向上一工作频点进阶。当前减少数值达到计算错误数阈值d时,将内核50向下一个工作频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核50的调频。
[0213]
本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核50从当前工作频点上调到上一个工作频点或下一个工作频点时,内核50的计算性能的受益应大于损失。即为,将内核50的当前工作频点600mhz上调到上一个工作频点700mhz;将内核50的当前工作频点600mhz下调到下一个工作频点500mhz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
[0214]
本步骤优选可通过如图2所示的锁相环电路40或软件对内核50进行调频。即根据内核层面的频率调整机制,将根据内核50的实际计算性能,将内核50调整到合适的工作频点,上调计算性能高的内核50的频率,下调计算性能低的内核50的频率,从而充分发挥每个内核50的计算性能。
[0215]
例如,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
[0216]
内核50每正确计算至少一次,在该参考节点值上加180(计算正确权重值);内核50每错误计算至少一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
[0217]
当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是maker的初始值,如果有正确提交则maker+180,每次错误提交则maker-9000。经过n次正确(n为大于或等于1的自然数),m次错误后(m为大于或等于1的自然数),marker应该处在400000+n*180-m*9000的位置,如果marker超过某侧门限则进行相应频率调整(上调或下调)。然后每次频率调整到新的频点上都初始化该值,
即将当前参考节点值重新设置为初始的参考节点值。
[0218]
图6是本发明再一实施例中计算设备的优选芯片调频方法的流程图,其可通过所述芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述方法包括步骤有:
[0219]
步骤s601,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核50分别工作于各工作频点。
[0220]
步骤s602,预先设置内核50的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。
[0221]
步骤s603,分析内核50每次提交的nonce是否正确。
[0222]
优选的是,本步骤进一步包括:
[0223]
(1)内核50递交一个nonce后,内核50将nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。
[0224]
(2)运算芯片的验算单元将nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。
[0225]
(3)若第一特征与第二特征相同,则验算单元判定nonce是正确nonce,否则判定nonce是错误nonce。
[0226]
例如,内核50计算出一个nonce后提交,将所述nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。验算单元212也将该nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该nonce是一次正确提交。
[0227]
步骤s604,内核50每提交至少一次正确nonce,在参考节点值上增加一次计算正确权重值,内核50每提交至少一次错误nonce,在参考节点值上减少一次计算错误权重值。优选的是,在内核50每提交一次正确nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核50每提交n(n为大于1的自然数)次正确nonce,在参考节点值上增加一次计算正确权重值。内核50每提交一次错误nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核50每提交n(n为大于1的自然数)次错误nonce,在参考节点值上减少一次计算错误权重值。
[0228]
步骤s605,判断内核50的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核50的当前参考节点值达到计算正确阈值,则执行步骤s606,若内核50的当前参考节点值达到计算错误阈值,则执行步骤s607。
[0229]
步骤s606,若内核50的当前参考节点值达到计算正确阈值,将内核50的当前工作频点上调到上一个工作频点。
[0230]
步骤s607,若内核50的当前参考节点值达到计算错误阈值,将内核50的当前工作频点下调到下一个工作频点。
[0231]
在本发明一个具体应用实施例中:使用6个锁相环电路40,设置6个工作频点:500mhz,550mhz,600mhz,650mhz,700mhz,750mhz。如并设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
[0232]
按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0233]
算力板0:[294 26 96 224 1023 1665]
[0234]
算力板1:[274 47 111 212 963 1721]
[0235]
算力板2:[350 25 153 369 1381 1050]
[0236]
算力板3:[488 33 184 367 1342 950]
[0237]
首先,结合数据进一步说明机制。根据驻留差错率s=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核50的驻留差错率s(理解为可长期驻留在某个频点)为180/(180+9000)=1.96%,此时内核50长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核50的计算错误率小于1.96%(驻留差错率s),其工作频率将被上调;若内核50的计算错误率大于1.96%(驻留差错率s),其工作频率将被下调。
[0238]
依据设置的难度(该难度与检验基准有关,对内核50计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个nonce的期望步长为:(1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
[0239]
以650mhz为例,内核50提交单个nonce的期望为1.3个/秒(即1秒递交1.3个nonce)。以e为0.5%的场景进行解释,即在746次的nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
[0240]
本发明还提供一种存储介质,用于存储如图4~图6所述任意一种计算设备的芯片调频方法的计算机程序。例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本技术的方法和/或技术方案。而调用本技术的方法的程序指令,可能被存储在固定的或可移动的存储介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输和/或被存储在根据程序指令运行的计算设备的存储器中。在此,根据本技术的一个实施例包括一个如图7所示的计算设备,所述计算设备优选包括控制板、与所述控制板连接的至少一算力板,所述控制板设置有处理器,所述算力板上设置有多个用于运算的运算芯片,所述运算芯片中设置有多个内核;该设备包括用于存储计算机程序指令的存储介质和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该计算设备执行基于前述多个实施例中的方法和/或技术方案。
[0241]
需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0242]
根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。
[0243]
在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
[0244]
综上所述,本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后内核每正确计算至少一次,增加一次预定的计算正确权重值;内核每错误计算至少一次,减少一次预定的计算错误权重值;若达到预定的计算正确阈值,将当前工作频点进行上调,即上调计算性能高的内核的频率;若达到预定的计算错误阈值,将内核的当前工作频点进行下调,即下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
[0245]
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1