首页 / 专利库 / 信号处理 / 停止频率 / 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质

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

阅读:444发布:2020-12-21

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

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

说明书全文

计算设备的芯片调频方法、装置、算板、计算设备及存储

介质

技术领域

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

背景技术

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

发明内容

[0006] 针对上述的缺陷,本发明的目的在于提供一种计算设备的芯片调频方法、装置、算力板、计算设备及存储介质,其能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
[0007] 本发明提供一种计算设备的芯片调频方法,所述计算设备设置有至少一运算芯片,所述运算芯片设置有多个内核,包括步骤有:
[0008] 为所述计算设备的所述运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
[0009] 分析每个所述内核在当前工作频点的计算性能指标;
[0010] 根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
[0011] 根据本发明所述的芯片调频方法,所述为所述计算设备的所述运算芯片设置多个所述工作频点,将所述运算芯片中的多个所述内核分别工作于各所述工作频点的步骤还包括:
[0012] 通过多个相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
[0013] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0014] 根据所述内核的所述计算性能指标,通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
[0015] 根据本发明所述的芯片调频方法,所述锁相环电路设置于所述运算芯片的内部或外部。
[0016] 根据本发明所述的芯片调频方法,相邻的所述工作频点之间的频差为1~10%。
[0017] 根据本发明所述的芯片调频方法,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
[0018] 在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,所述第一指标阈值与所述第二指标阈值相同或者不相同;
[0019] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0020] 若所述内核的所述计算性能指标达到所述第一指标阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
[0021] 若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调到下一个工作频点;和/或
[0022] 若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0023] 根据本发明所述的芯片调频方法,还包括步骤有:
[0024] 若工作于预定的至少一个优化工作频点的所述内核超过预定的第一比率,停止对所述内核进行调频;或者
[0025] 若工作于至少一所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。
[0026] 根据本发明所述的芯片调频方法,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
[0027] 在预定的调整周期内,分析所述内核的所述计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与所述第二正确率阈值相同或者不相同;
[0028] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0029] 若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;和/或
[0030] 若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0031] 根据本发明所述的芯片调频方法,所述在预定的调整周期内,分析所述内核的所述计算正确率是否达到所述第一正确率阈值和/或第二正确率阈值的步骤还包括:
[0032] 在所述调整周期内,分析所述内核提交的随机数是否正确;
[0033] 统计所述内核在所述调整周期内提交的正确随机数的个数和错误随机数的个数;
[0034] 根据所述正确随机数的个数和所述错误随机数的个数,计算出所述内核在所述调整周期内的随机数计算正确率,并判断所述随机数计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
[0035] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0036] 若所述内核的所述随机数计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;和/或
[0037] 若所述内核的所述随机数计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0038] 根据本发明所述的芯片调频方法,所述在所述调整周期内,分析所述内核提交的所述随机数是否正确的步骤还包括:
[0039] 在所述调整周期内,所述内核每递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
[0040] 所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;
[0041] 若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
[0042] 根据本发明所述的芯片调频方法,所述在预定的所述调整周期内,分析所述内核的所述计算正确率是否达到预定的所述正确率阈值的步骤还包括:
[0043] 根据预设的实时调整指令,实时分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
[0044] 根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;或者
[0045] 根据接收的即时调整指令,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
[0046] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0047] 若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
[0048] 在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
[0049] 根据接收的即时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
[0050] 根据本发明所述的芯片调频方法,所述分析每个所述内核在所述当前工作频点的所述计算性能指标的步骤还包括:
[0051] 预先设置所述内核的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值;
[0052] 分析所述内核的每次计算是否正确;
[0053] 所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上减少一次所述计算错误权重值;
[0054] 判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
[0055] 所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0056] 若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
[0057] 若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0058] 根据本发明所述的芯片调频方法,所述分析所述内核的每次计算是否正确的步骤还包括:
[0059] 分析所述内核每次提交的随机数是否正确;
[0060] 所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上增加一次所述计算错误权重值的步骤还包括:
[0061] 所述内核每提交至少一次正确随机数,在所述参考节点值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述参考节点值上减少一次所述计算错误权重值。
[0062] 根据本发明所述的芯片调频方法,所述分析所述内核每次提交的所述随机数是否正确的步骤还包括:
[0063] 所述内核递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
[0064] 所述运算芯片的验算单元将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;
[0065] 若所述第一特征与所述第二特征相同,则所述验算单元判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
[0066] 根据本发明所述的芯片调频方法,所述方法还包括:
[0067] 根据实际需求设置和调整所述内核的所述参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和/或所述计算错误阈值,所述计算正确权重值和所述计算错误权重值相同或者不相同,所述计算正确阈值和所述计算错误阈值相同或者不相同;
[0068] 通过控制所述计算正确权重值和所述计算错误权重值的比值控制所述内核期望容忍的驻留差错率;
[0069] 通过控制所述计算正确权重值和所述计算错误权重值的绝对值大小控制调整周期;
[0070] 通过控制所述计算正确阈值和所述计算错误阈值的绝对值大小控制所述调整周期。
[0071] 根据本发明所述的芯片调频方法,所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
[0072] 根据本发明所述的芯片调频方法,所述判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值的步骤还包括:
[0073] 根据预设的实时调整指令,实时判断所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
[0074] 根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,判断所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;或者[0075] 根据接收的即时调整指令,分析所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
[0076] 所述根据所述内核的所述计算性能指标,将所述内核的所述当前工作频点进行上调或下调的步骤还包括:
[0077] 若所述内核的所述当前参考节点值达到所述计算正确阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
[0078] 在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
[0079] 根据接收的即时调整指令,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
[0080] 根据本发明所述的芯片调频方法,所述根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调的步骤之后还包括:
[0081] 统计被调频后的所述内核在各所述工作频点上的当前分布状态;
[0082] 根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
[0083] 根据本发明所述的芯片调频方法,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点;
[0084] 所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
[0085] 若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
[0086] 若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
[0087] 根据本发明所述的芯片调频方法,所述若超过所述第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
[0088] 若超过所述第二比率的所述内核工作于所述最高工作频点上,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
[0089] 所述若超过预定的所述第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
[0090] 若超过所述第三比率的所述内核工作于所述最低工作频点上,将一个所述工作频点修改设置为一个所述优化低频工作频点。
[0091] 根据本发明所述的芯片调频方法,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点;
[0092] 所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
[0093] 若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
[0094] 若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
[0095] 根据本发明所述的芯片调频方法,所述若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化高频工作频点的步骤还包括:
[0096] 若工作于所述最高工作频点上的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
[0097] 所述若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一所述优化低频工作频点的步骤还包括:
[0098] 若工作于所述最低工作频点的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化低频工作频点。
[0099] 根据本发明所述的芯片调频方法,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点;
[0100] 所述根据所述当前分布状态和所述频点调整机制,调整设置所述工作频点的频率的步骤还包括:
[0101] 若超过预定的第四比率的所述内核工作于至少一所述中间工作频点上,停止调整设置所述工作频点的频率;或者
[0102] 若工作于在至少一所述中间工作频点上的所述内核的数目最多,停止调整设置所述工作频点的频率。
[0103] 根据本发明所述的芯片调频方法,所述计算设备用于挖掘虚拟数字货币的运算。
[0104] 本发明还提供一种计算设备的芯片调频装置,所述算力板上设置有至少一个运算芯片,所述运算芯片中设置有多个内核,所述芯片调频装置包括:
[0105] 频点设置模,用于为所述计算设备的运算芯片设置多个工作频点,将所述运算芯片中的多个内核分别工作于各所述工作频点;
[0106] 计算性能分析模块,用于分析每个所述内核在当前工作频点的计算性能指标;
[0107] 频率调整模块,用于根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
[0108] 根据本发明所述的芯片调频装置,所述频点设置模块用于通过多个锁相环电路为所述运算芯片设置多个所述工作频点,所述工作频点与所述锁相环电路为一一对应关系;
[0109] 所述频率调整模块,用于根据所述内核的所述计算性能指标,通过所述锁相环电路对所述内核的所述当前工作频点进行上调或下调。
[0110] 根据本发明所述的芯片调频装置,所述锁相环电路设置于所述运算芯片的内部或外部。
[0111] 根据本发明所述的芯片调频装置,相邻的所述工作频点之间的频差为1~10%。
[0112] 根据本发明所述的芯片调频装置,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的所述计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,所述第一指标阈值与所述第二指标阈值相同或者不相同;
[0113] 所述频率调整模块用于若所述内核的所述计算性能指标达到所述第一指标阈值,将所述内核的所述当前工作频点上调到上一个工作频点;
[0114] 所述频率调整模块用于若所述内核的所述计算性能指标未达到所述第二指标阈值,将所述内核的所述当前工作频点下调到下一个工作频点;和/或
[0115] 所述频率调整模块用于若所述内核的所述计算性能指标达到所述第三指标阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0116] 根据本发明所述的芯片调频装置,所述频率调整模块还包括有:
[0117] 频率调整子模块,用于根据所述内核的所述计算性能指标,对所述内核的所述当前工作频点进行上调或下调。
[0118] 停止频率调整子模块,用于若工作于预定的至少一个优化工作频点的所述内核超过预定的第一比率,停止对所述内核进行调频;或者用于若工作于至少一所述优化工作频点上的所述内核的数目最多,停止对所述内核进行调频。
[0119] 根据本发明所述的芯片调频装置,所述计算性能分析模块用于在预定的调整周期内,分析所述内核的所述计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与所述第二正确率阈值相同或者不相同;
[0120] 所述频率调整模块用于若所述内核的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;和/或用于若所述内核的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0121] 根据本发明所述的芯片调频装置,所述计算性能分析模块进一步包括有:
[0122] 第一分析子模块,用于在所述调整周期内,分析所述内核提交的随机数是否正确;
[0123] 统计子模块,用于统计所述内核在所述调整周期内提交的正确随机数的个数和错误随机数的个数;
[0124] 第一判断子模块,用于根据所述正确随机数的个数和所述错误随机数的个数,计算出所述内核在所述调整周期内的随机数计算正确率,并判断所述随机数计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值;
[0125] 所述频率调整模块用于若所述内核的所述随机数计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;和/或用于若所述内核的所述随机数计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0126] 根据本发明所述的芯片调频装置,所述第一分析子模块进一步包括:
[0127] 第一计算单元,用于在所述调整周期内,所述内核每递交一个所述随机数后,将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征,所述第一计算单元设置于所述内核中;
[0128] 第一验算单元,用于将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征,若所述第一特征与所述第二特征相同,则判定所述随机数是正确随机数,否则判定所述随机数是错误随机数;所述第一验算单元设置于所述运算芯片中。
[0129] 根据本发明所述的芯片调频装置,所述计算性能分析模块用于根据预设的实时调整指令,实时分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
[0130] 所述计算性能分析模块用于根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;或者
[0131] 所述计算性能分析模块用于根据接收的即时调整指令,分析所述内核在所述调整周期内的所述计算正确率是否达到所述第一正确率阈值与所述第二正确率阈值;
[0132] 所述频率调整模块用于若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
[0133] 所述频率调整模块用于在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者[0134] 所述频率调整模块用于根据接收的即时调整指令,若所述内核在所述调整周期内的所述计算正确率达到所述第一正确率阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核在所述调整周期内的所述计算正确率未达到所述第二正确率阈值,将所述内核的所述当前工作频点下调到下一个工作频点;根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
[0135] 根据本发明所述的芯片调频装置,所述计算性能分析模块进一步包括有:
[0136] 设置子模块,用于预先设置所述内核的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值;
[0137] 第二分析子模块,用于分析所述内核的每次计算是否正确;
[0138] 计数子模块,用于所述内核每正确计算至少一次,在所述参考节点值上增加一次所述计算正确权重值,并且所述内核每错误计算至少一次,在所述参考节点值上减少一次所述计算错误权重值;
[0139] 第二判断子模块,用于判断所述内核的当前参考节点值是否达到所述计算正确阈值或所述计算错误阈值;
[0140] 所述频率调整模块用于若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;以及用于若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点。
[0141] 根据本发明所述的芯片调频装置,所述第二分析子模块用于分析所述内核每次提交的随机数是否正确;
[0142] 所述计数子模块用于在所述内核每提交至少一次正确随机数,在所述参考节点值上增加一次所述计算正确权重值,所述内核每提交至少一次错误随机数,在所述参考节点值上减少一次所述计算错误权重值。
[0143] 根据本发明所述的芯片调频装置,所述第二分析子模块进一步包括:
[0144] 第二计算单元,用于所述内核递交一个所述随机数后,所述内核将所述随机数通过预定的算法计算出第一结果,所述第一结果中包含有第一特征;
[0145] 第二验算单元,用于将所述随机数通过相同的所述算法计算出第二结果,所述第二结果中包含有第二特征;若所述第一特征与所述第二特征相同,则判定所述随机数是正确随机数,否则判定所述随机数是错误随机数。
[0146] 根据本发明所述的芯片调频装置,所述设置子模块用于根据实际需求设置和调整所述内核的所述参考节点值、所述计算正确权重值、所述计算错误权重值、所述计算正确阈值和/或所述计算错误阈值,所述计算正确权重值和所述计算错误权重值相同或者不相同,所述计算正确阈值和所述计算错误阈值相同或者不相同;
[0147] 所述设置子模块用于通过控制所述计算正确权重值和所述计算错误权重值的比值控制所述内核期望容忍的驻留差错率;
[0148] 所述设置子模块用于通过控制所述计算正确权重值和所述计算错误权重值的绝对值大小控制调整周期;
[0149] 所述设置子模块用于通过控制所述计算正确阈值和所述计算错误阈值的绝对值大小控制所述调整周期。
[0150] 根据本发明所述的芯片调频装置,所述驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
[0151] 根据本发明所述的芯片调频装置,所述计算性能分析模块用于根据预设的实时调整指令,实时判断所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
[0152] 所述计算性能分析模块用于根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,判断所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;或者
[0153] 所述计算性能分析模块用于根据接收的即时调整指令,分析所述内核的所述当前参考节点是否达到所述计算正确阈值或所述计算错误阈值;
[0154] 所述频率调整模块用于若所述内核的所述当前参考节点值达到所述计算正确阈值,实时将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,实时将所述内核的所述当前工作频点下调到下一个工作频点;
[0155] 所述频率调整模块用于在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;在所述调整时间段内,若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;或者
[0156] 所述频率调整模块用于根据接收的即时调整指令,若所述内核的所述当前参考节点值达到所述计算正确阈值,将所述内核的所述当前工作频点上调到上一个工作频点;若所述内核的所述当前参考节点值达到所述计算错误阈值,将所述内核的所述当前工作频点下调到下一个工作频点;以及用于根据接收的停止调整指令,停止对所述内核的所述当前工作频点的调整。
[0157] 根据本发明所述的芯片调频装置,还包括有:
[0158] 频点统计模块,用于统计被调频后的所述内核在各所述工作频点上的当前分布状态;
[0159] 频点调整模块,用于根据所述内核的所述当前分布状态和预定的频点调整机制,调整设置所述工作频点的频率,所述频点调整机制是内核分布状态与频点调整的对应关系。
[0160] 根据本发明所述的芯片调频装置,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点;
[0161] 所述频点调整模块还包括:
[0162] 第一频点调整子模块,用于若超过预定的第二比率的所述内核工作于至少一所述高频工作频点上,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
[0163] 第二频点调整子模块,用于若超过预定的第三比率的所述内核工作于至少一所述低频工作频点上,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
[0164] 根据本发明所述的芯片调频装置,所述第一频点调整子模块,用于若超过所述第二比率的所述内核工作于所述最高工作频点上,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
[0165] 所述第二频点调整子模块,用于若超过所述第三比率的所述内核工作于所述最低工作频点上,将一个所述工作频点修改设置为一个所述优化低频工作频点。
[0166] 根据本发明所述的芯片调频装置,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,所述高频工作频点中频率最高的是最高工作频点,所述低频工作频点中频率最低的是最低工作频点;
[0167] 所述频点调整模块还包括:
[0168] 第三频点调整子模块,用于若工作于至少一所述高频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化高频工作频点,所述优化高频工作频点的频率高于所述最高工作频点的频率;和/或
[0169] 第四频点调整子模块,用于若工作于至少一所述低频工作频点的所述内核的数目最多,将至少一所述工作频点修改设置为至少一优化低频工作频点,所述优化低频工作频点的频率低于所述最低工作频点的频率。
[0170] 根据本发明所述的芯片调频装置,所述第三频点调整子模块,用于若工作于所述最高工作频点上的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化高频工作频点;和/或
[0171] 所述第四频点调整子模块,用于若工作于所述最低工作频点的所述内核的数目最多,将一个所述工作频点修改设置为一个所述优化低频工作频点。
[0172] 根据本发明所述的芯片调频装置,所述工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点;
[0173] 所述频点调整模块还包括:
[0174] 第一停止调整子模块,用于若超过预定的第四比率的所述内核工作于至少一所述中间工作频点上,停止调整设置所述工作频点的频率;或者
[0175] 第二停止调整子模块,用于若工作于在至少一所述中间工作频点上的所述内核的数目最多,停止调整设置所述工作频点的频率。
[0176] 根据本发明所述的芯片调频装置,所述芯片调频装置设置于所述运算芯片的内部或外部。
[0177] 根据本发明所述的芯片调频装置,所述计算设备用于挖掘虚拟数字货币的运算。
[0178] 本发明还提供一种包括有上述任意一种所述芯片调频装置的算力板。
[0179] 本发明还提供一种包括有上述任意一种所述芯片调频装置的计算设备。
[0180] 本发明还提供一种存储介质,用于存储一种用于上述任意一种所述计算设备的芯片调频方法的计算机程序
[0181] 本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算性能指标,对内核的当前工作频点进行上调或下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。附图说明
[0182] 图1是本发明计算设备的芯片调频装置的结构示意图;
[0183] 图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图;
[0184] 图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图;
[0185] 图4是本发明第三实施例中计算设备的芯片调频装置的结构示意图;
[0186] 图5是本发明第三实施例中参数设置的实例图;
[0187] 图6是本发明第四实施例中计算设备的芯片调频装置的结构示意图;
[0188] 图7是本发明第四实施例中内核在各个工作频点工作的分布状态图;
[0189] 图8是本发明计算设备的芯片调频方法的流程图
[0190] 图9是本发明第一实施例中计算设备的芯片调频方法的流程图;
[0191] 图10是本发明第二实施例中计算设备的芯片调频方法的流程图;
[0192] 图11是本发明第二实施例中计算设备的优选芯片调频方法的流程图;
[0193] 图12是本发明第三实施例中计算设备的芯片调频方法的流程图;
[0194] 图13是本发明第三实施例中计算设备的优选芯片调频方法的流程图;
[0195] 图14是本发明第四实施例中计算设备的芯片调频方法的流程图;
[0196] 图15是本发明第四实施例中计算设备的优选芯片调频方法的流程图之一;
[0197] 图16是本发明第四实施例中计算设备的优选芯片调频方法的流程图之二;
[0198] 图17是本发明计算设备的结构示意图。
[0199] 附图标记:
[0200] 100-计算设备的芯片调频装置
[0201] 10-频点设置模块
[0202] 20-计算性能分析模块
[0203] 21-第一分析子模块
[0204] 211-第一计算单元        212-第一验算单元
[0205] 22-统计子模块           23-第一判断子模块
[0206] 24-设置子模块           25-第二分析子模块
[0207] 251-第二计算单元        252-第二验算单元
[0208] 26-计数子模块           27-第二判断子模块
[0209] 30-频率调整模块
[0210] 31-频率调整子模块       32-停止频率调整子模块
[0211] 50-频点统计模块         60-频点调整模块
[0212] 61-第一频点调整子模块   62-第二频点调整子模块
[0213] 63-第三频点调整子模块   64-第四频点调整子模块
[0214] 65-第一停止调整子模块   66-第二停止调整子模块
[0215] 70-锁相环电路           80-内核

具体实施方式

[0216] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0217] 需要说明的,本说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但是不是每个实施例必须包含这些特定特征、结构或特性。此外,这样的表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,不管有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。
[0218] 此外,在说明书及后续的权利要求当中使用了某些词汇来指称特定组件或部件,所属领域中具有通常知识者应可理解,制造商可以用不同的名词或术语来称呼同一个组件或部件。本说明书及后续的权利要求并不以名称的差异来作为区分组件或部件的方式,而是以组件或部件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求书中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此系包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。
[0219] 图1是本发明计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备上设置有至少一个运算芯片,所述运算芯片中设置有多个内核(Core)80。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。
[0220] 需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片的频率调整机制和内核层面的频率调整机制。所述运算芯片的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核80工作于各个工作频点,充分发挥每个内核80的工作性能。所述内核层面的频率调整机制是指根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
[0221] 所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
[0222] 所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。
[0223] 即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路(Phase Locked Loop,PPL)70为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件软件为运算芯片设置多个工作频点。
[0224] 所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0225] 所述频率调整模块30,用于根据内核80在当前工作频点的计算性能指标,对内核80的当前工作频点进行上调或下调。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。优选的是,周期性地对内核
80的频率进行调节,若内核80在频率的调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到较高的上一个工作频点;若内核80在频率的调整周期内的计算正确率未达到第二正确率阈值,表明该内核
80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到较低的下一个工作频点。
[0226] 本发明芯片调频装置100可设置于运算芯片的内部或外部。本发明根据运算芯片中各个内核80的实际计算性能评价内核80的工作性能,调节内核80对应频率,充分发挥性能较优内核80的计算优势,并避免性能较弱内核80影响运算芯片的运算性能,最大程度发挥各个内核80的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核80不会在不同频率间跳转,工作频率相对稳定。
[0227] 图2是本发明第一实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
[0228] 所述频点设置模块10,用于通过多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,各个工作频点的频率不同,且所述工作频点与锁相环电路70为一一对应关系。优选的是,锁相环电路70设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。因此,本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。
[0229] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0230] 所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。优选的是,计算性能分析模块20用于在预定的调整周期内,分析内核80的计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,其中,第一指标阈值与第二指标阈值相同或者不相同。
[0231] 所述频率调整模块30,用于根据内核80的计算性能指标,通过锁相环电路70对内核80的当前工作频点进行上调或下调。当然,频率调整模块30也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。优选的是,频率调整模块30用于若内核80的计算性能指标达到第一指标阈值,将内核80的当前工作频点上调到上一个工作频点;和/或,频率调整模块30用于若内核80的计算性能指标未达到第二指标阈值,将内核80的当前工作频点下调到下一个工作频点;和/或频率调整模块30用于若内核80的计算性能指标达到第三指标阈值,将内核80的当前工作频点下调到下一个工作频点。
[0232] 例如,结合上述“例如设置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的计算性能的受益应大于损失。
[0233] 再例如,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值为90%,第二指标阈值为80%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到80%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
[0234] 又例如,所述计算性能指标为内核80在调整周期内的正确计算次数和错误结算次数,第一指标阈值为100,第二指标阈值为10。若内核80在调整周期内的正确计算次数达到100,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的错误计算次数达到10,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
[0235] 优选的是,所述频率调整模块30还包括有频率调整子模块31和停止频率调整子模块32,其中:
[0236] 所述频率调整子模块31,用于根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。优选的是,频率调整子模块31根据内核80的计算性能指标,通过锁相环电路70对内核80的当前工作频点进行上调或下调。当然,频率调整子模块31也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。
[0237] 所述停止频率调整子模块32,用于若工作于预定的至少一个优化工作频点的内核80超过预定的第一比率,停止对内核80进行调频;或者用于若工作于至少一所述优化工作频点上的内核80的数目最多,停止对内核80进行调频。
[0238] 例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核80的工作频率已经到达该优化工作频点,表明运算芯片中个内核80的工作频率已经处于优化状态,可充分发挥各个内核80的计算性能,不再需要进一步调频,因此停止内核80工作频率的调整。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,选择其中两个优化工作频点600Mhz和650Mhz为优化工作频点,若超过80%的内核80工作于工作频点600Mhz和650Mhz,则停止对内核80进行调频。
[0239] 图3是本发明第二实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100至少包括有频点设置模块10、计算性能分析模块20和频率调整模块30,其中:
[0240] 所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,工作频点与锁相环电路70为一一对应关系。本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0241] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0242] 所述计算性能分析模块20,用于在预定的调整周期内,分析内核80的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,第一正确率阈值与第二正确率阈值相同或者不相同。若内核80的计算正确率达到预定的第一正确率阈值,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算正确率未达到预定的第二正确率阈值,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0243] 所述频率调整模块30,用于若内核80的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点;和/或用于若内核80的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。所述频率调整模块30可通过如图2所示的锁相环电路70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
[0244] 例如,第一正确率阈值和第二正确率阈值均为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的计算性能的受益应大于损失。
[0245] 再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核80工作在600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点上调到上一个工作频点,即提高其工作频率至
650MHz;若内核80的计算正确率低于80%(表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至550MHz。
[0246] 优选的是,所述计算正确率可为内核80在调整周期内提交的Nonce(Number once,随机数)的计算正确率。即预定时间内,内核80所提交的全部Nonce中,正确Nonce所占的比率。区域链中的区块头包括所述Nonce(4字节),Nonce是一个随机值,矿工的作用其实就是猜出Nonce的值,使得区块头的哈希(Hash)可以小于目标值Target,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则挖矿成功。
[0247] 优选的是,图3中的计算性能分析模块20进一步包括有:
[0248] 第一分析子模块21,用于在预定的调整周期内,分析内核80提交的Nonce是否正确。
[0249] 统计子模块22,用于统计内核80在调整周期内提交的正确Nonce的个数和错误Nonce的个数。
[0250] 第一判断子模块23,用于根据正确Nonce的个数和错误Nonce的个数,计算出内核80在调整周期内的Nonce计算正确率,并判断Nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值。
[0251] 频率调整模块30用于若内核80的Nonce计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;和/或用于若内核80的Nonce计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。
[0252] 更好的是,第一分析子模块21进一步包括:
[0253] 第一计算单元211,用于在调整周期内,内核80每递交一个Nonce后,将Nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征,第一计算单元211优选设置于内核80中。每个内核80提交的Nonce中,包含Nonce的标识信息(ID),从而可实现对每个内核80的计算结果进行统计。
[0254] 第一验算单元212,用于将内核80递交的所述Nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征,若第一特征与第二特征相同,则判定所述Nonce是正确Nonce,否则判定所述Nonce是错误Nonce。第一验算单元212优选设置于运算芯片中。
[0255] 例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第一验算单元212也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该Nonce是一次正确提交。
[0256] 需指出的是,为了提高单个内核80计算出可满足写入区块链的nonce值的概率,也可以采用比上述“目标值Target”要容易的多Target_Lite来判断Hash,每个内核80要提交可以更加频繁的提交nonce,第一验算单元212对内核80提交的nonce进行验算,如果其使用内核80提交的nonce计算出的Hash同样通过Target_Lite的判定,即认为内核80的正确提交,否则即为错误提交。本发明并不局限于使用可写入最终区块链的nonce。第一验算单元212和内核80之间交互的nonce是满足更低限,提交密度高,可利于频率调整。
[0257] 优选的是,所述计算性能分析模块20用于根据预设的实时调整指令,实时分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
[0258] 所述频率调整模块30用于若内核80在调整周期内的计算正确率达到第一正确率阈值,实时将内核80的当前工作频点上调到上一个工作频点。若内核80在调整周期内的计算正确率未达到第二正确率阈值,实时将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到实时动态调整。
[0259] 优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在所述定时调整指令设定的调整时间段内,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
[0260] 所述频率调整模块30用于在调整时间段内,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;在调整时间段内,若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到定时调整。如设定每周仅设置周六(24小时)统计内核80计算正确率,并根据计算正确率进行频率调整。
[0261] 优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值,所述第一正确率阈值与第二正确率阈值相同或者不相同。
[0262] 所述频率调整模块30用于根据接收的即时调整指令,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点。若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0263] 例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核80的计算正确率,若在调整周期(例如10分钟)内,若内核80的计算正确率超过第一正确率阈值(例如高于99%),则将内核80的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核80的计算正确率低于第二正确率阈值(例如低于99%),则将内核80的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
[0264] 图4是本发明第三实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100包括频点设置模块10、计算性能分析模块20、频率调整模块30,其中:
[0265] 所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,每个工作频点的频率不同,并将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,频点设置模块10可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0266] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0267] 所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能分析模块20进一步包括有:
[0268] 设置子模块24,用于预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
[0269] 第二分析子模块25,用于分析内核80的每次计算是否正确。内核80可以进行各种不同的计算,可分析内核80的每次某种或几种计算是否正确。优选为分析内核80计算出的Nonce是否正确。
[0270] 计数子模块26,用于内核80每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核80每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核80每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,可以设置为内核80每正确计算N次(N为大于1的自然数),在参考节点值上增加一次计算正确权重值。内核80每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核80每错误计算N次(N为大于1的自然数),在参考节点值上减少一次计算错误权重值。
[0271] 第二判断子模块27,用于判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若当前参考节点值达到计算正确阈值,则表示所述内核80的计算性能较高且可能还有提升空间;若当前参考节点值达到计算错误阈值,则表示所述内核80的计算性能较弱,可能不足以在当前工作频点对应的频率下工作。
[0272] 所述频率调整模块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的计算性能的受益应大于损失。
[0273] 例如,如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
[0274] 内核80每正确计算一次,在该参考节点值上加180(计算正确权重值);内核80每错误计算一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
[0275] 当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是maker的初始值,如果有正确提交则maker+180,每次错误提交则maker–9000。经过N次正确(N为大于或等于1的自然数),M次错误后(M为大于或等于1的自然数),marker应该处在400000+N*180–M*9000的位置,如果Marker超过某侧门限则进行相应频率调整(即上调或下调)。然后每次频率调整到新的频点上都初始化该值,即将当前参考节点值重新设置为初始的参考节点值。
[0276] 优选的是,所述设置子模块24用于根据实际需求设置和调整内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或者不相同,计算正确阈值和计算错误阈值相同或者不相同。
[0277] 优选的是,设置子模块24用于通过控制计算正确权重值和计算错误权重值的比值控制内核80期望容忍的驻留差错率S。驻留差错率S的计算公式为:驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值)。
[0278] 优选的是,设置子模块24用于通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
[0279] 优选的是,设置子模块24用于通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
[0280] 优选的是,所述正确计算可为内核80正确计算Nonce。
[0281] 所述第二分析子模块25用于分析内核80每次提交的Nonce是否正确。
[0282] 所述计数子模块26用于在内核80每提交至少一次正确Nonce,在参考节点值上增加一次计算正确权重值;内核80每提交至少一次错误Nonce,在参考节点值上减少一次计算错误权重值。优选的是,在内核80每提交一次正确Nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次正确Nonce,在参考节点值上增加一次计算正确权重值。内核80每提交一次错误Nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次错误Nonce,在参考节点值上减少一次计算错误权重值。
[0283] 更好的是,第二分析子模块25进一步包括:
[0284] 第二计算单元251,用于内核80递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,所述第一结果中包含有第一特征。
[0285] 第二验算单元252,用于将Nonce通过相同的算法计算出第二结果,所述第二结果中包含有第二特征。若第一特征与第二特征相同,则判定Nonce是正确Nonce,否则判定Nonce是错误Nonce。
[0286] 例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第二验算单元252也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该Nonce是一次正确提交。
[0287] 需指出的是,为了提高单个内核80计算出可满足写入区块链的nonce值的概率,也可以采用比上述“目标值Target”要容易的多Target_Lite来判断Hash,每个内核80要提交可以更加频繁的提交nonce,第一验算单元212对内核80提交的nonce进行验算,如果其使用内核80提交的nonce计算出的Hash同样通过Target_Lite的判定,即认为内核80的正确提交,否则即为错误提交。本发明并不局限于使用可写入最终区块链的nonce。第一验算单元212和内核80之间交互的nonce是满足更低门限,提交密度高,可利于频率调整。
[0288] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为
100000。
[0289] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0290] 算力板0:[294 26 96 224 1023 1665]
[0291] 算力板1:[274 47 111 212 963 1721]
[0292] 算力板2:[350 25 153 369 1381 1050]
[0293] 算力板3:[488 33 184 367 1342 950]
[0294] 首先,结合数据进一步说明机制。根据驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核80的驻留差错率S(理解为可长期驻留在某个频点)为180/(180+9000)=1.29%,此时内核80长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核80的计算错误率大于1.29%(驻留差错率S),其工作频率将被上调;若内核80的计算错误率小于1.29%(驻留差错率S),其工作频率将被下调。
[0295] 依据设置的难度(该难度与检验基准有关,对内核80计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个Nonce的期望步长为:(1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
[0296] 以650MHz计算,内核80提交单个Nonce的期望为1.3个/秒(即1秒递交1.3个Nonce)。以e为0.5%的场景进行解释,即在746次的Nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
[0297] 优选的是,所述计算性能分析模块20用于根据预设的实时调整指令,实时判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0298] 所述频率调整模块30用于若内核80的当前参考节点值达到计算正确阈值,实时将内核80的当前工作频点上调到上一个工作频点;若内核80的当前参考节点值达到计算错误阈值,实时将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到实时动态调整。
[0299] 优选的是,所述计算性能分析模块20用于根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0300] 所述频率调整模块30用于在调整时间段内,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点;在调整时间段内,若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点,使得内核80的工作频率得到定时调整。如设定每周仅设置周六的24小时内统计内核80出正确Nonce的个数,并根据计算正确率进行频率调整。
[0301] 优选的是,所述计算性能分析模块20用于根据接收的即时调整指令,分析内核80的当前参考节点是否达到计算正确阈值或计算错误阈值,所述计算正确阈值或计算错误阈值相同或不相同。
[0302] 所述频率调整模块30用于根据接收的即时调整指令,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点。若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点。以及用于根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0303] 例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核80每计算正确Nonce一次,在参考节点上增加权重A,内核80每计算错误Nonce一次,在该参考节点上减少权重B。当前增加数值达到计算正确数量阈值C时,将内核80向上一频点进阶。当前减少数值达到计算错误数阈值D时,将内核80向下一个频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
[0304] 图6是本发明第四实施例中计算设备的芯片调频装置的结构示意图,所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述计算设备优选包括控制板、与控制板连接的算力板,所述算力板上设置有至少一个运算芯片,运算芯片中设置有多个内核(Core)80。当然,所述计算设备还可以包括散热器、连接板、电源模块等。所述芯片调频装置100包括频点设置模块10、计算性能分析模块20、频率调整模块30、频点统计模块50以及频点调整模块60,其中:
[0305] 所述频点设置模块10,用于为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。即根据运算芯片层面的频率调整机制为每个运算芯片设置若干不同的频点,并让运算芯片的内核80工作于各个工作频点。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频之前),内核80可以按照预定规则平均分布、不平均分布或随机分布于所述工作频点。频点设置模块10可以通过如图2所示的多个锁相环电路(Phase Locked Loop,PPL)70为运算芯片设置多个工作频点,当然频点设置模块10也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0306] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0307] 所述计算性能分析模块20,用于分析每个内核80在当前工作频点的计算性能指标。所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0308] 所述频率调整模块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的计算性能的受益应大于损失。
[0309] 所述频点统计模块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为最高工作频点。
[0310] 所述频点调整模块60,用于根据内核80的所述当前分布状态和预定的频点调整机制,调整设置工作频点的频率。所述频点调整机制是内核分布状态与频点调整的对应关系。所述内核分布状态是指内核80在各个工作频点上工作的分布状态。所述调整设置工作频点的频率,是指直接将工作频点的频率进行调整。所述频点调整模块60优选通过如图2所示的锁相环电路70调整设置工作频点的频率。本领域技术人员可以理解的是,频点调整模块50的调整设置工作频点的调整方式并不仅限于此。本发明理想状态是希望超过预定的比率(如50%)或最多数目的内核80落到中间工作频点,这样内核80的频率有更大的上调空间。
[0311] 例如,若超过预定的比率(如30%)的内核80工作于最高工作频点(750MHz)上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),则需要将一工作频点(600MHz)修改设置为至少一优化高频工作频点(800MHz),原工作于工作频点(600MHz)上的内核80将全部转移到最高工作频点(750MHz)上工作。所述优化高频工作频点的频率高于所述最高工作频点的频率,以充分发挥各内核80的计算性能。
[0312] 在本发明一具体实例中,所述频点调整模块60还包括第一频点调整子模块61和/或第二频点调整子模块62,其中:
[0313] 所述第一频点调整子模块61,用于若超过预定的第二比率的内核80工作于至少一高频工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0314] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,超过30%(第二比率)的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
[0315] 优选的是,第一频点调整子模块61用于若超过第二比率的内核80工作于最高工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将一个工作频点修改设置为一个优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0316] 例如,超过30%(第二比率)的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
[0317] 所述第二频点调整子模块62,用于若超过预定的第三比率的内核80工作于至少一低频工作频点上,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算性能差的内核80影响运算芯片的整体计算性能。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0318] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,超过30%(第三比率)的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
[0319] 优选的是,第二频点调整子模块62用于若超过第三比率的内核80工作于最低工作频点上,说明所述内核80的计算能力过差不足以工作在所述最低工作频点上,因此将一个工作频点修改设置为一个优化低频工作频点。优化低频工作频点的频率低于最低工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0320] 例如,超过30%(第三比率)的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
[0321] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
[0322] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0323] 算力板0:[294 26 96 224 1023 1665]
[0324] 算力板1:[274 47 111 212 963 1721]
[0325] 算力板2:[350 25 153 369 1381 1050]
[0326] 算力板3:[488 33 184 367 1342 950]
[0327] 以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累超过预定比率(例如50%)的内核80,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
[0328] 以算力板0~1为例,可以看出,若将600Mhz频点去除,此时若采用整体左移,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,不利于充分发挥内核80的计算性能。故更适合整体右移,即采用整体偏移方式,通过如图2所示的锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体计算性能的提升。
[0329] 在本发明另一具体实例中,所述频点调整模块60还包括第三频点调整子模块63和/或第四频点调整子模块64,其中:
[0330] 所述第三频点调整子模块63,用于若工作于至少一高频工作频点的内核80的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0331] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,最多数目的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
[0332] 优选的是,所述第三频点调整子模块63用于若工作于最高工作频点上的内核80的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将一个工作频点修改设置为一个优化高频工作频点。优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0333] 例如,数目最多的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
[0334] 所述第四频点调整子模块64,用于若工作于至少一低频工作频点的内核80的数目最多,说明所述内核80的计算能力过差,其不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算能力差的内核80影响运算芯片的整体计算性能。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0335] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,数目最多的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
[0336] 优选的是,第四频点调整子模块64用于若工作于最低工作频点的内核80的数目最多,说明所述内核80的计算能力过差不足以工作在所述最低工作频点上,因此将一个工作频点修改设置为一个优化低频工作频点。优化低频工作频点的频率低于最低工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0337] 例如,数目最多的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
[0338] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
[0339] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0340] 算力板0:[294 26 96 224 1023 1665]
[0341] 算力板1:[274 47 111 212 963 1721]
[0342] 算力板2:[350 25 153 369 1381 1050]
[0343] 算力板3:[488 33 184 367 1342 950]
[0344] 以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累的内核80的数目最多,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
[0345] 以算力板0~1为例,可以看出,如果将600Mhz频点去除,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,更适合整体右移,即采用整体偏移方式,通过如图2所示的锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体性能的提升。
[0346] 在本发明又一具体实例中,所述频点调整模块60还包括第一停止调整子模块65或者第二停止调整子模块66,其中:
[0347] 第一停止调整子模块65,用于若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率。因为比较理想状态就是超过预定的第四比率(如50%)的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
[0348] 第二停止调整子模块66,用于若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。因为比较理想状态就是最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
[0349] 本发明还提供一种包括有如所述芯片调频装置100的算力板。
[0350] 本发明还提供一种包括有所述芯片调频装置100的计算设备。
[0351] 图8是本发明计算设备的芯片调频方法的流程图,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。需指出的是,本发明芯片调频技术实际涉及两个层级的频率调整机制:运算芯片层面的频率调整机制和内核层面的频率调整机制。所述运算芯片层面的频率调整机制是指为每个运算芯片设置若干合适的工作频点,并让运算芯片的各个内核80工作于各个工作频点,充分发挥每个内核80的工作性能。所述内核层面的频率调整机制是指根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。所述方法包括步骤有:
[0352] 步骤S801,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0353] 本步骤根据运算芯片的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,本步骤可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0354] 步骤S802,分析每个内核80在当前工作频点的计算性能指标。
[0355] 所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0356] 步骤S803,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
[0357] 本步骤根据内核的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。优选的是,若内核80在调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到上一个工作频点;若内核80在调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到下一个工作频点。
[0358] 本发明根据运算芯片中各个内核80的实际计算性能评价内核80的工作性能,调节内核80对应频率,充分发挥性能较优内核80的计算优势,并避免性能较弱内核80影响运算芯片的运算性能,最大程度发挥各个内核80的计算性能,进而提高运算芯片及整体计算设备的计算速度和计算正确率。并且,本发明运算芯片的内核80不会来回变动频率,工作频率相对稳定。
[0359] 图9是本发明第一实施例中计算设备的芯片调频方法的流程图,其可通过如图2所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0360] 步骤S901,通过多个锁相环电路70为运算芯片设置多个工作频点,工作频点与锁相环电路70为一一对应关系。
[0361] 优选的是,如图2所示的锁相环电路70设置于运算芯片的内部或外部。本发明中各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。因此,本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。
[0362] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0363] 步骤S902,分析每个内核80在当前工作频点的计算性能指标。
[0364] 所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0365] 本步骤优选的是,在预定的调整周期内,分析内核80的计算性能指标是否达到预定的第一指标阈值、第二指标阈值和/或第三指标阈值,第一指标阈值与第二指标阈值相同或者不相同。
[0366] 步骤S903,根据内核80的计算性能指标,通过如图2所示的锁相环电路70对内核80的当前工作频点进行上调或下调。当然,本步骤也可以通过其他硬件或软件实现对内核80的当前工作频点进行上调或下调。
[0367] 本步骤优选进一步包括:
[0368] (1)若内核80的计算性能指标达到第一指标阈值,将内核80的当前工作频点上调到上一个工作频点;
[0369] (2)若内核80的计算性能指标未达到第二指标阈值,将内核80的当前工作频点下调到下一个工作频点;和/或
[0370] (3)若内核80的计算性能指标达到第三指标阈值,将内核80的当前工作频点下调到下一个工作频点。
[0371] 例如,结合上述“例如设置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。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
[0372] 再例如,所述计算性能指标为内核80在调整周期内的计算正确率,第一指标阈值为90%,第二指标阈值为80%。若内核80在调整周期内的计算正确率达到90%,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的计算正确率未达到80%,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
[0373] 又例如,所述计算性能指标为内核80在调整周期内的正确计算次数和错误结算次数,第一指标阈值为100,第二指标阈值为10。若内核80在调整周期内的正确计算次数达到100,表示所述内核80的计算性能较好,则将内核80的当前工作频点600MHz上调到上一个工作频点650MHz;若内核80在调整周期内的错误计算次数达到10,表示所述内核80的计算性能较弱,则将内核80的当前工作频点600MHz下调到下一个工作频点550MHz。
[0374] 步骤S904,若工作于预定的至少一个优化工作频点的内核80超过预定的第一比率,停止对内核80进行调频;或者若工作于至少一优化工作频点上的内核80的数目最多,停止对内核80进行调频。
[0375] 例如,可在若干工作频点中选择预设一个或多个优化工作频点,若大多数内核80的工作频率已经到达该优化工作频点,表明运算芯片中个内核80的工作频率已经处于优化状态,可充分发挥各个内核80的计算性能,不再需要进一步调频,因此停止内核80工作频率的调整。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,选择其中两个优化工作频点600Mhz和650Mhz为优化工作频点,若超过50%的内核80工作于工作频点600Mhz和650Mhz,则停止对内核80进行调频。
[0376] 图10是本发明第二实施例中计算设备的芯片调频方法的流程图,其可通过如图3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0377] 步骤S1001,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0378] 本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。
[0379] 本步骤优选的是,通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点,工作频点与锁相环电路70为一一对应关系。本发明可以设置更多的锁相环电路70来设置更多的工作频点,以使得各个内核80的计算性能充分发挥。当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0380] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0381] 步骤S1002,在预定的调整周期内,分析内核80的计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值。所述第一正确率阈值与第二正确率阈值相同或者不相同。若内核80的计算正确率达到预定的第一正确率阈值,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算正确率未达到预定的第二正确率阈值,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0382] 优选的是,本步骤S1002进一步包括:
[0383] (1)根据预设的实时调整指令,实时分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;
[0384] (2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值;或者[0385] (3)根据接收的即时调整指令,分析内核80在调整周期内的计算正确率是否达到第一正确率阈值和/或第二正确率阈值。
[0386] 步骤S1003,若内核80的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点。
[0387] 优选的是,本步骤进一步包括:
[0388] (1)若内核80在调整周期内的计算正确率达到第一正确率阈值,实时将内核80的当前工作频点上调到上一个工作频点;
[0389] (2)在调整时间段内,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点;或者
[0390] (3)根据接收的即时调整指令,若内核80在调整周期内的计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点。并根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0391] 例如,用户可根据需要随时向计算设备发送即时调整指令,计算设备根据该即时调整指令立即开始分析内核80的计算正确率,若在调整周期(例如10分钟)内,若内核80的计算正确率超过第一正确率阈值(例如高于99%),则将内核80的工作频率向上调整;若在调整周期(例如10分钟)内,所述内核80的计算正确率低于第二正确率阈值(例如低于99%),则将内核80的工作频率向下调整。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
[0392] 步骤S1004,若内核80的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。
[0393] 优选的是,本步骤进一步包括:
[0394] (1)若内核80在调整周期内的计算正确率未达到第二正确率阈值,实时将内核80的当前工作频点下调到下一个工作频点;
[0395] (2)在调整时间段内,若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点;或者
[0396] (3)若内核80在调整周期内的计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。并根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0397] 本发明可通过如图2所示的锁相环电路70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
[0398] 例如,第一正确率阈值和第二正确率阈值均为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。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
[0399] 再例如,第一正确率阈值为90%,第二正确率阈值均为80%。当内核80工作在600MHz时,若内核80在预定的调整周期内的计算正确率超过90%(表明该内核80尚未达到最佳计算性能),则将内核80的当前工作频点上调到上一个工作频点,即提高其工作频率至
650MHz;若内核80的计算正确率低于80%(表明该内核80的计算性能不足以在该当前工作频点600MHz的频率下工作),则将内核80的当前工作频点下调到下一个工作频点,即降低其工作频率至550MHz。
[0400] 图11是本发明第二实施例中计算设备的优选芯片调频方法的流程图,其可通过如图3所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。优选的是,所述计算正确率可为内核80在调整周期内提交的Nonce的计算正确率。即预定时间内,内核80所提交的全部Nonce中,正确Nonce所占的比率。区块头包括所述Nonce(4字节),Nonce是一个随机值,矿工的作用其实就是猜出Nonce的值,使得区块头的哈希(Hash)可以小于目标值,从而能够写入区块链。具体而言,将这个属性从0开始,遍历到2^
32,来计算区块头的哈希值,如果得到的哈希结果符合条件,则挖矿成功。所述方法包括步骤有:
[0401] 步骤S1101,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0402] 步骤S1102,在调整周期内,分析内核80提交的Nonce是否正确。
[0403] 本步骤优选包括:
[0404] (1)在调整周期内,内核80每递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。每个内核80提交的Nonce中,包含Nonce的标识信息(ID),从而可实现对每个内核80的计算结果进行统计。
[0405] (2)运算芯片的验算单元将Nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。
[0406] (3)若第一特征与第二特征相同,则验算单元判定Nonce是正确Nonce,否则判定Nonce是错误Nonce。
[0407] 例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第一验算单元212也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该Nonce是一次正确提交。
[0408] 步骤S1103,统计内核80在调整周期内提交的正确Nonce的个数和错误Nonce的个数。
[0409] 步骤S1104,根据正确Nonce的个数和错误Nonce的个数,计算出内核80在调整周期内的Nonce计算正确率。
[0410] 步骤S1105,判断Nonce计算正确率是否达到预定的第一正确率阈值和/或第二正确率阈值,若内核80的Nonce计算正确率达到第一正确率阈值则执行步骤S1106,若内核80的Nonce计算正确率未达到第二正确率阈值则执行步骤S1107。
[0411] 步骤S1106,若内核80的Nonce计算正确率达到第一正确率阈值,将内核80的当前工作频点上调到上一个工作频点。
[0412] 步骤S1107,若内核80的Nonce计算正确率未达到第二正确率阈值,将内核80的当前工作频点下调到下一个工作频点。
[0413] 图12是本发明第三实施例中计算设备的芯片调频方法的流程图,其可通过如图4所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0414] 步骤S1201,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0415] 本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的各个内核80工作于各个工作频点。例如设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。本发明工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频),内核80可以按照预定规则被平均分布、不平均分布或随机分布于所述工作频点上工作。优选的是,可以通过如图2所示的多个锁相环电路70为运算芯片设置多个工作频点,当然也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0416] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0417] 步骤S1202,预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。
[0418] 优选的是,所述计算正确权重值和计算错误权重值可以相同或不相同;所述计算正确阈值和计算错误阈值可以相同或不相同。所述参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值均属于可调参数,可根据频率调节快慢等实际需要进行优化设置。
[0419] 优选的是,根据实际需求设置和调整内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和/或计算错误阈值,计算正确权重值和计算错误权重值相同或者不相同,计算正确阈值和计算错误阈值相同或者不相同。
[0420] 通过控制计算正确权重值和计算错误权重值的比值控制内核80期望容忍的驻留差错率。驻留差错率的计算公式为:驻留差错率=计算正确权重值/(计算正确权重值+计算错误权重值)。
[0421] 通过控制计算正确权重值和计算错误权重值的绝对值大小控制调整周期。
[0422] 通过控制计算正确阈值和计算错误阈值的绝对值大小控制调整周期。
[0423] 步骤S1203,分析内核80的每次计算是否正确。
[0424] 内核80可以进行各种不同的计算,可分析内核80的每次某种或几种计算是否正确。优选为分析内核80计算出的Nonce是否正确。
[0425] 步骤S1204,内核80每正确计算至少一次,在参考节点值上增加一次计算正确权重值,并且内核80每错误计算至少一次,在参考节点值上减少一次计算错误权重值。优选的是,内核80每正确计算一次,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每正确计算N次(N为大于1的自然数),在参考节点值上增加一次计算正确权重值。内核80每错误计算一次,在参考节点值上减少一次计算错误权重值。当然,可以设置为内核
80每错误计算N次(N为大于1的自然数),在参考节点值上减少一次计算错误权重值。
[0426] 步骤S1205,判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核80的当前参考节点值达到计算正确阈值,则执行步骤S1206,若内核80的当前参考节点值达到计算错误阈值,则执行步骤S1207。
[0427] 本步骤优选包括:
[0428] (1)根据预设的实时调整指令,实时判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
[0429] (2)根据预设的定时调整指令,在定时调整指令设定的调整时间段内,判断内核80的当前参考节点是否达到计算正确阈值或计算错误阈值;或者
[0430] (3)根据接收的即时调整指令,分析内核80的当前参考节点是否达到计算正确阈值或计算错误阈值。
[0431] 步骤S1206,若内核80的当前参考节点值达到计算正确阈值,表明该内核80尚未达到最佳计算性能,将内核80的当前工作频点上调到上一个工作频点。
[0432] 本步骤优选包括:
[0433] (1)若内核80的当前参考节点值达到计算正确阈值,实时将内核80的当前工作频点上调到上一个工作频点;或者
[0434] (2)在调整时间段内,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点;或者
[0435] (3)根据接收的即时调整指令,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点。并且根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0436] 步骤S1207,若内核80的当前参考节点值达到计算错误阈值,表明该内核80的计算性能不足以在当前工作频点上工作,将内核80的当前工作频点下调到下一个工作频点。
[0437] 本步骤优选包括:
[0438] (1)若内核80的当前参考节点值达到计算错误阈值,实时将内核80的当前工作频点下调到下一个工作频点;或者
[0439] (2)在调整时间段内,若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点;或者
[0440] (3)若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点。并且根据接收的停止调整指令,停止对内核80的当前工作频点的调整。
[0441] 例如,用户可根据需要随时向计算设备发送即时调整指令,用户设置内核80每计算正确Nonce一次,在参考节点上增加权重A,内核80每计算错误Nonce一次,在该参考节点上减少权重B。当前增加数值达到计算正确数量阈值C时,将内核80向上一频点进阶。当前减少数值达到计算错误数阈值D时,将内核80向下一个频点降阶。此外,用户可根据需要随时向计算设备发送停止调整指令,计算设备收到该停止调整指令后,立即停止对内核80的调频。
[0442] 本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
[0443] 本步骤优选可通过如图2所示的锁相环电路70或软件对内核80进行调频。即根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。
[0444] 例如,如图5所示,设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
[0445] 内核80每正确计算至少一次,在该参考节点值上加180(计算正确权重值);内核80每错误计算至少一次,在该参考节点值上减少9000(计算错误权重值);以所述参考节点值为基准,每增加或减少100000(计算正确阈值和计算错误阈值),向上一频点进阶或向下一频点降阶。
[0446] 当前机制类似于错误和正确的拔河比赛机制,正确和错误可具有不同的权重。设置参考节点值,每收到一次正确结果,增加一次计算正确权重值,每收到一个错误结果,减少一次计算错误权重值,如果奖励或惩罚超过对应侧门限,则进行频率的上调或下调。可以理解调整系统有一个marker,参考节点值是maker的初始值,如果有正确提交则maker+180,每次错误提交则maker–9000。经过N次正确(N为大于或等于1的自然数),M次错误后(M为大于或等于1的自然数),marker应该处在400000+N*180–M*9000的位置,如果Marker超过某侧门限则进行相应频率调整(上调或下调)。然后每次频率调整到新的频点上都初始化该值,即将当前参考节点值重新设置为初始的参考节点值。
[0447] 图13是本发明第三实施例中计算设备的优选芯片调频方法的流程图,其可通过如图4所示的计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0448] 步骤S1301,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0449] 步骤S1302,预先设置内核80的参考节点值、计算正确权重值、计算错误权重值、计算正确阈值和计算错误阈值。
[0450] 步骤S1303,分析内核80每次提交的Nonce是否正确。
[0451] 优选的是,本步骤进一步包括:
[0452] (1)内核80递交一个Nonce后,内核80将Nonce通过预定的算法计算出第一结果,第一结果中包含有第一特征。
[0453] (2)运算芯片的验算单元将Nonce通过相同的算法计算出第二结果,第二结果中包含有第二特征。
[0454] (3)若第一特征与第二特征相同,则验算单元判定Nonce是正确Nonce,否则判定Nonce是错误Nonce。
[0455] 例如,内核80计算出一个Nonce后提交,将所述Nonce嵌入区块头计算得到第一哈希结果,第一哈希结果的前20位的值是0(第一特征)。第二验算单元252也将该Nonce嵌入区块头计算得到第二哈希结果,若第二哈希结果的前20位的也是0(第二特征),则认为该Nonce是一次正确提交。
[0456] 步骤S1304,内核80每提交至少一次正确Nonce,在参考节点值上增加一次计算正确权重值,内核80每提交至少一次错误Nonce,在参考节点值上减少一次计算错误权重值。优选的是,在内核80每提交一次正确Nonce,在参考节点值上增加一次计算正确权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次正确Nonce,在参考节点值上增加一次计算正确权重值。内核80每提交一次错误Nonce,在参考节点值上减少一次计算错误权重值。当然,也可以设置为内核80每提交N(N为大于1的自然数)次错误Nonce,在参考节点值上减少一次计算错误权重值。
[0457] 步骤S1305,判断内核80的当前参考节点值是否达到计算正确阈值或计算错误阈值。若内核80的当前参考节点值达到计算正确阈值,则执行步骤S1206,若内核80的当前参考节点值达到计算错误阈值,则执行步骤S1207。
[0458] 步骤S1306,若内核80的当前参考节点值达到计算正确阈值,将内核80的当前工作频点上调到上一个工作频点。
[0459] 步骤S1307,若内核80的当前参考节点值达到计算错误阈值,将内核80的当前工作频点下调到下一个工作频点。
[0460] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。如图5所示,并设置400000作为参考节点值,计算正确权重值设为180,计算错误权重值设为9000,计算正确阈值和计算错误阈值均设为100000。
[0461] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0462] 算力板0:[294 26 96 224 1023 1665]
[0463] 算力板1:[274 47 111 212 963 1721]
[0464] 算力板2:[350 25 153 369 1381 1050]
[0465] 算力板3:[488 33 184 367 1342 950]
[0466] 首先,结合数据进一步说明机制。根据驻留差错率S=计算正确权重值/(计算正确权重值+计算错误权重值),并通过给定的数据可以推算出内核80的驻留差错率S(理解为可长期驻留在某个频点)为180/(180+9000)=1.29%,此时内核80长久的工作在某个频点上(因为此时期望步长为0),工作频率不会上调或下调。可以推知,若内核80的计算错误率大于1.29%(驻留差错率S),其工作频率将被上调;若内核80的计算错误率小于1.29%(驻留差错率S),其工作频率将被下调。
[0467] 依据设置的难度(该难度与检验基准有关,对内核80计算正确率有影响,难度系数越大,正确率越低;反之则正确率越高),可以推算出错误上升时调整的大致周期,假定错误率为e,则每个Nonce的期望步长为:(1-e)*180-e*9000=180-9180e。以e=0.5%为例,期望步长=134.1;以e=1%为例,期望步长=88.2;以e=2%为例,期望步长=-3.6。
[0468] 以650MHz计算,内核80提交单个Nonce的期望为1.3个/秒(即1秒递交1.3个Nonce)。以e为0.5%的场景进行解释,即在746次的Nonce提交过程后,就可以预期向上调整一次;e为1.0%需要1134次提交,预期向上调整一次,如果错误概率为2.0%,则需要27778次提交,预期向下调整一次,其他类推。
[0469] 图14是本发明第四实施例中计算设备的芯片调频方法的流程图,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0470] 步骤S1401,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0471] 本步骤根据运算芯片层面的频率调整机制,为每个运算芯片设置若干不同的频点,并让运算芯片的内核80工作于各个工作频点。例如设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。各工作频点的频点个数、频率之间差距可根据实际需要设置,工作频点越多越能充分发挥各个内核80的计算性能。在启动调频开关时(尚未对内核80进行调频之前),内核80可以按照预定规则平均分布、不平均分布或随机分布于所述工作频点。本步骤可以通过多个如图2所示的锁相环电路70为运算芯片设置多个工作频点,当然本步骤也可以通过其他硬件或软件为运算芯片设置多个工作频点。
[0472] 值得提醒的是,本发明中工作频点之间的频差需要控制在合理范围。因为当内核80提高一个工作频点,该内核的工作频率将提高一个频差值,其可以因为计算速度的提高进而提升一定的计算性能。于此同时,提升内核的工作频率,其可能因为计算正确率的降低进而损耗一定的计算性能。所以频点设置模块10应该合理控制相邻的工作频点之间的频差,使得内核80从当前工作频点上调到上一个工作频点时,内核80的计算性能的受益应大于损失。优选的是,相邻的工作频点之间的频差为1~10%。
[0473] 步骤S1402,分析每个内核80在当前工作频点的计算性能指标。
[0474] 所述计算性能指标代表内核80在当前工作频点的实际计算性能,包括但不限于计算正确率、计算正确数量、计算速度等。若内核80的计算性能指标较高,则表示所述内核80的计算性能可能还有提升空间;若内核80的计算性能指标较低,则表示所述内核80的计算性能可能不足以在当前工作频点对应的频率下工作。
[0475] 步骤S1403,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
[0476] 本步骤根据内核层面的频率调整机制,将根据内核80的实际计算性能,将内核80调整到合适的工作频点,上调计算性能高的内核80的频率,下调计算性能低的内核80的频率,从而充分发挥每个内核80的计算性能。本步骤可通过如图2所示的锁相环电路70或软件对内核80进行调频。优选的是,若内核80在调整周期内的计算正确率达到第一正确率阈值,表明该内核80尚未达到最佳计算性能,因此将内核80的当前工作频点上调到上一个工作频点;若内核80在调整周期内的计算正确率未达到第二正确率阈值,表明该内核80的计算性能不足以在当前工作频点上工作,因此将内核80的当前工作频点下调到下一个工作频点。
[0477] 本领域技术人员可以理解的是,上一个工作频点并不仅限于上一相邻工作频点,也可设置一个以上的上一相邻工作频点作为上一个工作频点;下一个工作频点并不仅限于下一相邻工作频点,也可设置一个以上的下一相邻工作频点作为下一个工作频点。优选的是,当前工作频点与上一个工作频点之间的频差为1~10%,以及当前工作频点与下一个工作频点的频差为1~10%,使得内核80从当前工作频点上调到上一个工作频点或下一个工作频点时,内核80的计算性能的受益应大于损失。即为,将内核80的当前工作频点600MHz上调到上一个工作频点700MHz;将内核80的当前工作频点600MHz下调到下一个工作频点500MHz。以此类推,此处不对上一工作频点,下一工作频点的间距作限定。
[0478] 步骤S1404,统计被调频后的内核80在各工作频点上的当前分布状态。
[0479] 内核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为最高工作频点。
[0480] 步骤S1405,根据当前分布状态和预定的频点调整机制,调整设置工作频点的频率,所述频点调整机制是内核80分布状态与频点调整的对应关系。
[0481] 所述频点调整机制是内核分布状态与频点调整的对应关系。所述内核分布状态是指内核80在各个工作频点上工作的分布状态。所述调整设置工作频点的频率,是指直接将工作频点的频率进行调整。优选通过如图2所示的锁相环电路70调整设置工作频点的频率。本发明理想状态是希望超过预定的比率(如50%)或最多数目的内核80落到中间工作频点,这样内核80的频率有更大的上调空间。
[0482] 例如,若超过预定的比率(如30%)的内核80工作于最高工作频点(750MHz)上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),则需要将一工作频点(600MHz)修改设置为至少一优化高频工作频点(800MHz),原工作于工作频点(600MHz)上的内核80将全部转移到最高工作频点(750MHz)上工作。所述优化高频工作频点的频率高于所述最高工作频点的频率,以充分发挥各内核80的计算性能。
[0483] 优选的是,所述步骤S1405之后可进一步包括:
[0484] 若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;或者,若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。比较理想状态是超过预定的第四比率(如50%)或数目最多的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),故此时不需要再对内核80进行调频。
[0485] 图15是本发明第四实施例中计算设备的优选芯片调频方法的流程图之一,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0486] 步骤S1501,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0487] 步骤S1502,分析每个内核80在当前工作频点的计算性能指标。
[0488] 步骤S1503,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
[0489] 步骤S1504,统计被调频后的内核80在各工作频点上的当前分布状态。工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。
[0490] 步骤S1505,若超过预定的第二比率的内核80工作于至少一高频工作频点上,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0491] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,超过30%(第二比率)的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
[0492] 本步骤优选的是,若超过第二比率的内核80工作于最高工作频点上,将一个工作频点修改设置为一个优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0493] 例如,超过30%(第二比率)的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
[0494] 步骤S1506,若超过预定的第三比率的内核80工作于至少一低频工作频点上,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率。值得注意的是,本步骤可以省略,即并不将至少一工作频点修改设置为至少一优化低频工作频点。
[0495] 被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,超过30%(第三比率)的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
[0496] 本步骤优选的是,若超过第三比率的内核80工作于最低工作频点上,将一个工作频点修改设置为一个优化低频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,超过30%(第三比率)的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
[0497] 优选的是,所述步骤S1506之后进一步包括:
[0498] 若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;因为比较理想状态就是超过预定的第四比率(如50%)的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。或者
[0499] 若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。因为比较理想状态就是最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz),其能充分发挥内核80的工作性能,故此时不需要再对内核80进行调频。
[0500] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
[0501] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0502] 算力板0:[294 26 96 224 1023 1665]
[0503] 算力板1:[274 47 111 212 963 1721]
[0504] 算力板2:[350 25 153 369 1381 1050]
[0505] 算力板3:[488 33 184 367 1342 950]
[0506] 以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累超过预定比率(例如50%)的内核80,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
[0507] 以算力板0~1为例,可以看出,若将600Mhz频点去除,此时若采用整体左移,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,不利于充分发挥内核80的计算性能。故更适合整体右移,即采用整体偏移方式,通过锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体计算性能的提升。
[0508] 图16是本发明第四实施例中计算设备的优选芯片调频方法的流程图之二,其可通过所述计算设备的芯片调频装置100实现,所述计算设备包括至少一个运算芯片,所述运算芯片设置有多个内核。所述计算设备优选用于海量运算,例如用于挖掘虚拟数字货币的运算。所述方法包括步骤有:
[0509] 步骤S1601,为计算设备的运算芯片设置多个工作频点,将运算芯片中的多个内核80分别工作于各工作频点。
[0510] 步骤S1602,分析每个内核80在当前工作频点的计算性能指标。
[0511] 步骤S1603,根据内核80的计算性能指标,对内核80的当前工作频点进行上调或下调。
[0512] 步骤S1604,统计被调频后的内核80在各工作频点上的当前分布状态。工作频点包括至少一高频工作频点、至少一中间工作频点和至少一低频工作频点,高频工作频点中频率最高的是最高工作频点,低频工作频点中频率最低的是最低工作频点。
[0513] 步骤S1605,若工作于至少一高频工作频点的内核80的数目最多,可能导致所述内核80没有发挥出最大的计算性能(因可能更高),因此将至少一工作频点修改设置为至少一优化高频工作频点,优化高频工作频点的频率高于最高工作频点的频率。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0514] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,最多数目的内核80工作在两个高频工作频点(700MHz和750MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化高频工作频点(800MHz和850MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化高频工作频点(800MHz和850MHz)。
[0515] 本步骤优选的是,若工作于最高工作频点上的内核80的数目最多,将一个工作频点修改设置为一个优化高频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0516] 例如,数目最多的内核80工作在最高工作频点(750MHz),则将一个低频工作频点(500MHz)修改设置为优化高频工作频点(800MHz),或者将一个中频工作频点(600MHz)修改设置为优化高频工作频点(800MHz);或者将最高工作频点(750MHz)修改设置为优化高频工作频点(800MHz)。
[0517] 步骤S1606,若工作于至少一低频工作频点的内核80的数目最多,说明所述内核80的计算能力过差不足以工作在所述低频工作频点上,因此将至少一工作频点修改设置为至少一优化低频工作频点,优化低频工作频点的频率低于最低工作频点的频率,以避免计算能力差的内核80影响运算芯片的整体计算性能。本步骤可以省略,即并不将至少一工作频点修改设置为至少一优化低频工作频点。
[0518] 被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。
[0519] 例如,设置6个工作频点,500MHz,550MHz,600MHz,650MHz,700MHz,750MHz,数目最多的内核80工作在两个低频工作频点(500MHz和550MHz),则将两个低频工作频点(500MHz和550MHz)修改设置为两个优化低频工作频点(400MHz和450MHz),或者将一个低频工作频点(500MHz)和一个中频工作频点(600MHz)修改设置为两个优化低频工作频点(400MHz和450MHz)。
[0520] 本步骤优选的是,若工作于最低工作频点的内核80的数目最多,将一个工作频点修改设置为一个优化低频工作频点。被修改的工作频点可以是低频工作频点、中频工作频点和/或高频工作频点。例如,数目最多的内核80工作在最低工作频点(500MHz),则将一个低频工作频点(500MHz)修改设置为优化低频工作频点(450MHz),或者将一个中频工作频点(600MHz)修改设置为优化低频工作频点(450MHz);或者将最高工作频点(750MHz)修改设置为优化低频工作频点(450MHz)。
[0521] 优选的是,所述步骤S1606之后进一步包括:
[0522] 若超过预定的第四比率的内核80工作于至少一中间工作频点上,停止调整设置工作频点的频率;或者
[0523] 若工作于在至少一中间工作频点上的内核80的数目最多,停止调整设置工作频点的频率。
[0524] 在本发明一个具体应用实施例中:使用6个锁相环电路70,设置6个工作频点:500MHz,550MHz,600MHz,650MHz,700MHz,750MHz。
[0525] 按照4块算力板统计出的各对应频率上分布的内核数目如下:
[0526] 算力板0:[294 26 96 224 1023 1665]
[0527] 算力板1:[274 47 111 212 963 1721]
[0528] 算力板2:[350 25 153 369 1381 1050]
[0529] 算力板3:[488 33 184 367 1342 950]
[0530] 以上述四块算力板0~3为例,如图7所示,数据大致符合正态分布,最低工作频点(500Mhz)为单个内核80工作的最低频率,无法再向下调整(如果错误率过高,可以考虑关闭该最低频点);而最高工作频点(750Mhz)上积累的内核80的数目最多,则意味着没有发挥出最大的效率(因可能更高),整个运算芯片还有进一步提升的空间。比较理想状态是超过预定的比率(如50%)或最多数目的内核80落在一个或多个中间工作频点上,例如第3个工作频点(600MHz)。为充分利用内核80的计算性能,更应该考虑高能力侧的长尾,而不是低频点长尾。
[0531] 以算力板0~1为例,可以看出,如果将600Mhz频点去除,大概有100个内核80频点落到550频点上,当前的频率设置明显在左侧低频区,更适合整体右移,即采用整体偏移方式,通过锁相环电路70将550Mhz频点整体向右设置为800Mhz频点以上,则有望使得数百个内核80提高到800M以上,从而带来整体性能的提升。
[0532] 本发明还提供一种存储介质,用于存储如图8~图16所述任意一种计算设备的芯片调频方法的计算机程序。例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的存储介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输和/或被存储在根据程序指令运行的计算设备的存储器中。在此,根据本申请的一个实施例包括一个如图17所示的计算设备,所述计算设备优选包括控制板、与所述控制板连接的至少一算力板,所述控制板设置有处理器,所述算力板上设置有多个用于运算的运算芯片,所述运算芯片中设置有多个内核;该设备包括用于存储计算机程序指令的存储介质和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该计算设备执行基于前述多个实施例中的方法和/或技术方案。
[0533] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0534] 根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。
[0535] 在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
[0536] 综上所述,本发明针对计算设备的运算芯片的内核进行自动调频,先设置多个合适的工作频点,将运算芯片中的多个内核分别工作于不同的工作频点上,然后根据每个内核在当前工作频点的计算性能指标,对内核的当前工作频点进行上调或下调,即上调计算性能高的内核的频率,下调计算性能低的内核的频率。借此,本发明能够根据计算设备的运算芯片中各个内核的实际计算性能,自动调节各个内核对应的频率,从而最大程度发挥内核的计算性能,进而提高运算芯片及整体运算设备的运算性能。
[0537] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈