一种通过调节gpu频率来降低gpu故障率的方法

文档序号:6584146阅读:1331来源:国知局
专利名称:一种通过调节gpu频率来降低gpu故障率的方法
技术领域
本发明涉及降低GPU故障率的方法,尤指通过调节GPU频率来降低GPU故障率的 方法。
背景技术
GPU (Graphics Processing Unit,图形处理单元)过去通常用于图形图像应用领 域,该领域对GPU故障具有一定的容忍度,通常GPU故障发生在GPU显存上,偶发的显存存 储位错误只会导致个别像素点的计算错误,不会对整体图形图像产生本质影响。但随着GPU 用于科学计算程序中,GPU的故障会对科学计算程序的正确性产生很大影响,使程序产生较 大误差。目前通常的做法有以下几种 (1)通过在存储控制器中加入错误校验码ECC (Error Correction Code)来纠正存 储位错误。但这种方法增加了硬件开销,提高了硬件成本。同时由于在访存时需要增加一 拍的编码和解码时间,降低了 GPU的访存性能。因此,在考虑硬件成本和访存性能因素时, 不适宜采用该方法。 (2)通过控制GPU温度平衡从而降低故障率。通过驱使系统风扇提前运行以降低 显卡芯片的散热压力,达到控制GPU核心温度以降低GPU故障率的目的。但是若温度变化 过快容易导致显卡缺陷,导致多重图像、白屏、花屏、无法开机等。 (3)通过调节GPU频率来降低GPU故障率。GPU频率持续过高会导致GPU温度过 高,故障率增大,因此调节GPU频率可有效控制GPU温度持续过高,达到降低GPU故障率的 目的。但是该方法目前仅限于采用静态设置较低的GPU频率来实现,存在很多局限性,包 括设置单一的较低GPU频率会影响科学计算的性能;频率设置方面没有统一标准,靠用户 的经验设置,不具有可操作性。 第三种方法由于硬件支持较为完善,是目前前景较大的降低GPU故障率的方法。 但是该方法仍存在以下问题一方面GPU频率调节包括两部分GPU核心频率和GPU显存频 率,为了保证GPU能够正常工作,两者频率必须按照一定比例同步调节,降频的比例也必须 严格控制,否则容易导致GPU访存性能受到影响;且对不同型号的GPU,频率调节的幅度应 区别对待。 目前GPU生产厂商为用户提供了大部分GPU产品的频率调节接口 ,为GPU降频提 供了条件。

发明内容
本发明要解决的技术问题在于针对温度过高情况下GPU故障率高的问题,提出 一种通过调节GPU频率来降低GPU故障率的方法,使用户在不需要了解GPU频率实时变化 细节的情况下,实现对GPU频率的自适应调节,从而有效降低GPU故障率,提高程序的正确 率。 为了解决上述技术问题,本发明的技术方案为对待测GPU建立GPU频率级别表,表项包括GPU核心频率、GPU显存频率、平均无故障时间、GPU温度阈值四项内容。表项编号 代表GPU频率级别,表项的个数代表可调频的总级数。GPU频率级别表用于在进行GPU频 率调节过程中选择合适的GPU核心频率、GPU显存频率。在程序执行过程中,由GPU实时温 度监控器全程跟踪并记录GPU芯片温度变化情况,每隔固定时间(称为频率调节间隔时间) 根据当前GPU的平均温度和温度阈值之间的关系判断是否实施调频,GPU核心频率和显存 频率严格对应表项中的值进行设置,完成程序运行过程中自适应的GPU频率调节。
具体技术方案为 第一步、构造GPU频率级别表。GPU频率级别表包括M组值,代表GPU有M级可调 频的取值,M为正整数,满足5《M《IO,过多的频率调节级别会导致频率调节过于频繁,造 成GPU不稳定。每组值包括四项内容GPU核心频率f。。M(i) 、GPU显存频率fra(i)、平均无 故障时间MTBF(i) (Mean Time Between Failure) 、GPU温度阈值Tup (i),其中i为GPU频率 级别表项的编号,i = 1. . . M。编号数字越高代表GPU频率级别越高,往i递增的方向调节 频率级别称为"GPU频率往上调节一级",反之称为"GPU频率往下调节一级"。根据应用所 需达到的平均无故障时间查找GPU频率级别表,获得该平均无故障时间对应的表项,记录 下此项的GPU核心频率、GPU显存频率和GPU温度阈值。用户程序运行过程中,根据实测的 GPU平均温度,对照GPU频率级别表中同一级别的GPU温度阈值,决定是否调节及如何调节 GPU频率。GPU频率级别表的每项内容建立过程如下 1. 1设置GPU频率级别数为M,依据GPU规格说明书,将GPU可正常工作的最高核 心频率设置为第M组GPU核心频率,将GPU可正常工作的最低核心频率设置为第1组GPU 核心频率。根据第1组和第M组GPU核心频率,设置等间隔的第2, 3, . . . , M-l级GPU核心 频率值。再依据GPU规格说明书中规定的GPU核心频率和显存频率的对应关系,设置1, 2, 3, . . . ,M级GPU显存频率值; 1. 2针对每组GPU核心频率和显存频率值,用衡量计算机性能的国际标准测试程 序HPLinpack(High Performance Linpack)测试GPU的平均无故障时间和GPU温度阈值,得 到每组GPU核心频率和显存频率值对应的GPU平均无故障时间和GPU温度阈值,填入GPU频 率级别表中。平均无故障时间指GPU执行用户程序从一次故障到下一次故障的平均时间, 单位是秒。故障包括GPU死机或者HPLinpack测试结果错。GPU温度阈值指GPU正常工作 的上限温度值,GPU温度阈值设置为用户程序持续运行至GPU出现故障时的温度值,该温度 值应采取保守设置方法,取所有故障条件下的最低温度,以确保在该温度值下GPU可正常 工作。 第二步、根据用户程序要求的平均无故障时间,在GPU频率级别表中选择对应的
项I, I为当前选择的频率级别,1《I《M。将GPU核心频率设置为GPU频率级别表中第
I项对应的GPU核心频率f。,(D ,将GPU显存频率设置为GPU频率级别表中第I项对应的
GPU显存频率fM (I),记下GPU频率级别表中第I项对应的GPU温度阈值Tup (I)。第三步、启动用户程序运行,同时启动GPU实时温度监控器全程监控并记录GPU温
度,采样间隔时间为tint^d,取值范围为5 10秒,持续5 10秒的高温极易导致GPU出错。
第四步、判断用户程序是否执行完毕,是,则执行第十一步;否则执行第五步;
第五步、每隔时间tintCTval对GPU温度进行统计,将tintCTval时间内的GPU温度平均值记为7。
第六步、如果满足7s7;(/;),说明当前GPU的温度并没有超过当前频率级别的温
度阈值,执行第八步;否则,执行第七步; 第七步、此时满足^^;(/),说明GPU的温度已超过当前频率级别的温度阈值,需 启动频率调节方案,将GPU频率往下调低一级,同时将处理结果记录在日志文件中,具体步 骤如下 7. 1在日志文件中添加一项,包括当前系统时间、当前GPU核心频率、GPU显存频 率、前一个t^r^时间内的GPU温度平均值7和调频情况,前四项内容此时填写,调频情况 在调频后填写; 7. 2如果I为最低级别,执行步骤7. 5 ;否则,执行步骤7. 3 ;
7. 3将当前的频率级别I减1,即I = 1-1 ; 7. 4如果^^;(/),则确定当前频率级别为I,将GPU核心频率和GPU显存频率分别
调节至f。。JI)、Ul),在日志文件的当前项的调频情况一项中填写"频率成功降低一级", 执行第四步; 7.5在日志文件的当前项的调频情况一项中填写"当前已为最低频率级别,无需调 频",执行第四步; 第八步、如果I不是最高级别,满足^^;(/+1)且已有连续L(IO《L《20)个 tintCTval时间内未发生频率调节,说明当前GPU频率可调节至1+1级,执行第九步;否则执行 第十步; 第九步、启动频率调节方案,将GPU频率往上调高一级,同时将处理结果记录在日 志文件中,具体步骤如下 9. 1将当前的频率级别I增1,即I = 1+1 ; 9. 2确定当前频率级别为I,将GPU核心频率和GPU显存频率分别调节至<formula>formula see original document page 6</formula>
9. 3在日志文件中添加一项,包括当前系统时间、当前GPU核心频率、GPU显存频 率、前一个tintCTval时间内的GPU温度平均值7和调频情况,调频情况一项中填写"频率成功 增高一级",执行第四步; 第十步、保持当前GPU核心频率和GPU显存频率不变,在日志文件中添加一项,包 括当前系统时间、当前GPU核心频率、GPU显存频率、前一个tintCTval时间内的GPU温度平均 值7和调频情况,在调频情况一项中填写"未调频",执行第四步; 第十一步、本次调频结束,等待下一个用户程序运行实施同样的GPU调频过程。
与现有技术相比,采用本发明可达到以下技术效果 1.可应用于连续多个用户程序执行过程中的GPU故障率降低,通过动态地GPU频 率调节,将GPU平均温度控制在安全的GPU温度阈值范围内,来降低GPU故障率;
2. —方面一旦GPU温度超过阈值,立即降低GPU频率;另一方面仅在长时间未进 行频率调节且满足频率调高条件时才考虑调高GPU频率,避免因GPU温度超过阈值导致的 隐患,同时又避免了过多次的频率调节而导致的GPU不稳定。


图1为本发明的总流程图。
具体实施例方式图1是本发明的总流程图。 步骤1)、构建GPU频率级别表,建立平均无故障时间、GPU温度阈值和GPU频率的 对应表; 步骤2)、根据用户程序要求的平均无故障时间,在GPU频率级别表中选择对应的 频率级别I,设置GPU的初始工作频率,记录GPU温度阈值Tup(I); 步骤3)、启动用户程序运行,同时启动GPU实时温度监控器,每隔tintCTval时间监控 并记录GPU温度; 步骤4)、判断用户程序是否执行完毕,是,则执行步骤11);否则执行步骤5);
步骤5)、每隔时间tinterval对GPU温度进行统计,得到tinterval时间内GPU温度的平 步骤6)、若?s ;(/),执行步骤8);否则,执行步骤7);
步骤7) 、 GPU频率往下调低一级,执行步骤4); 步骤8)、如果I不是最高级另1」,满足^7^/+1)且已有连续1^(10《L《20)个
tint,d时间内未发生频率调节,执行步骤9);否则执行步骤IO);
步骤9)、将GPU频率往上调高一级,执行步骤4);
步骤10)、维持当前GPU的频率,执行步骤4); 步骤11)、本次调频结束,等待下一个用户程序运行实施同样的GPU调频过程。
权利要求
一种通过调节GPU频率来降低GPU故障率的方法,其特征在于包括以下步骤第一步、构造GPU频率级别表,GPU频率级别表包括M组值,代表GPU有M级可调频的取值,M为正整数,每组值包括四项内容GPU核心频率fcore(i)、GPU显存频率fmem(i)、平均无故障时间MTBF(i)、GPU温度阈值Tup(i),其中i为GPU频率级别表项的编号,i=1...M;编号数字越高代表GPU频率级别越高,往i递增的方向调节频率级别称为“GPU频率往上调节一级”,反之称为“GPU频率往下调节一级”;第二步、根据用户程序运行要求的平均无故障时间,在GPU频率级别表中选择对应的项I,I为当前选择的频率级别,1≤I≤M,将GPU核心频率设置为GPU频率级别表中第I项对应的GPU核心频率fcore(I),将GPU显存频率设置为GPU频率级别表中第I项对应的GPU显存频率fmem(I),记下GPU频率级别表中第I项对应的GPU温度阈值Tup(I);第三步、启动用户程序运行,同时启动GPU实时温度监控器全程监控并记录GPU温度,采样间隔时间为tinterval;第四步、判断用户程序是否执行完毕,是,则执行第十一步;否则执行第五步;第五步、每隔时间tinterval对GPU温度进行统计,将tinterval时间内的GPU温度平均值记为第六步、如果满足(I),说明当前GPU的温度并没有超过当前频率级别的温度阈值,执行第八步;否则,执行第七步;第七步、此时满足(I),说明GPU的温度已超过当前频率级别的温度阈值,需启动频率调节方案,将GPU频率往下调低一级,同时将处理结果记录在日志文件中,具体步骤如下7.1在日志文件中添加一项,包括当前系统时间、当前GPU核心频率、GPU显存频率、前一个tinterval时间内的GPU温度平均值和调频情况,前四项内容此时填写,调频情况在调频后填写;7.2如果I为最低级别,执行步骤7.5;否则,执行步骤7.3;7.3将当前的频率级别I减1,即I=I-1;7.4如果(I),则确定当前频率级别为I,将GPU核心频率和GPU显存频率分别调节至fcore(I)、fmem(I),在日志文件的当前项的调频情况一项中填写“频率成功降低一级”,执行第四步;7.5在日志文件的当前项的调频情况一项中填写“当前已为最低频率级别,无需调频”,执行第四步;第八步、如果I不是最高级别,满足(I+1)且已有连续L个tinterval时间内未发生频率调节,说明当前GPU频率可调节至I+1级,执行第九步;否则执行第十步;第九步、启动频率调节方案,将GPU频率往上调高一级,同时将处理结果记录在日志文件中,具体步骤如下9.1将当前的频率级别I增1,即I=I+1;9.2确定当前频率级别为I,将GPU核心频率和GPU显存频率分别调节至fcore(I)、fmem(I);9.3在日志文件中添加一项,包括当前系统时间、当前GPU核心频率、GPU显存频率、前一个tintral时间内的GPU温度平均值和调频情况,调频情况一项中填写“频率成功增高一级”,执行第四步;第十步、保持当前GPU核心频率和GPU显存频率不变,在日志文件中添加一项,包括当前系统时间、当前GPU核心频率、GPU显存频率、前一个tinterval时间内的GPU温度平均值和调频情况,在调频情况一项中填写“未调频”,执行第四步;第十一步、本次调频结束,等待下一个用户程序运行,实施同样的GPU调频过程。F2009102271863C0000011.tif,F2009102271863C0000012.tif,F2009102271863C0000013.tif,F2009102271863C0000014.tif,F2009102271863C0000015.tif,F2009102271863C0000021.tif,F2009102271863C0000022.tif,F2009102271863C0000023.tif
2. 如权利要求1所述的一种通过调节GPU频率来降低GPU故障率的方法,其特征在于 所述GPU频率级别表的每项内容建立方法是第1步,设置GPU频率级别数为M,依据GPU规格说明书,将GPU可正常工作的最高核心 频率设置为第M组GPU核心频率,将GPU可正常工作的最低核心频率设置为第1组GPU核 心频率,根据第1组和第M组GPU核心频率,设置等间隔的第2, 3,. . . ,M-1级GPU核心频率 值,再依据GPU规格说明书中规定的GPU核心频率和显存频率的对应关系,设置1,2,3,..., M级GPU显存频率值;第2步,针对每组GPU核心频率和显存频率值,用衡量计算机性能的国际标准测试程序 HPLinpack测试GPU的平均无故障时间和GPU温度阈值,得到每组GPU核心频率和显存频率 值对应的GPU平均无故障时间和GPU温度阈值,填入GPU频率级别表中;平均无故障时间指 GPU执行用户程序从一次故障到下一次故障的平均时间,单位是秒;故障包括GPU死机或者 HPLinpack测试结果错;GPU温度阈值指GPU正常工作的上限温度值,GPU温度阈值设置为 用户程序持续运行至GPU出现故障时的温度值,该温度值取所有故障条件下的最低温度。
3. 如权利要求1或2所述的一种通过调节GPU频率来降低GPU故障率的方法,其特征 在于所述M满足5《M《10。
4. 如权利要求1所述的一种通过调节GPU频率来降低GPU故障率的方法,其特征在于 所述L满足10《L《20。
5. 如权利要求1所述的一种通过调节GPU频率来降低GPU故障率的方法,其特征在于所述t旭ervd为5 IO秒。
全文摘要
本发明公开了一种通过调节GPU频率来降低GPU故障率的方法,目的是降低GPU故障率。技术方案是对GPU建立GPU频率级别表,表项包括GPU核心频率、GPU显存频率、平均无故障时间、GPU温度阈值;由GPU实时温度监控器跟踪并记录用户程序运行过程中GPU温度变化情况,每隔固定时间根据当前GPU的平均温度和温度阈值之间的关系判断是否调频,当GPU的温度超过阈值时,将频率降低一级,当GPU温度处在更高级别的温度阈值范围且连续多个时间间隔未进行频率调节时,将频率提升一级。采用本发明可实现对GPU频率的自适应调节,降低GPU故障率,避免因GPU温度超过阈值导致的隐患和过多次的频率调节而导致的GPU不稳定。
文档编号G06F11/00GK101719084SQ20091022718
公开日2010年6月2日 申请日期2009年12月11日 优先权日2009年12月11日
发明者徐炜遐, 易会战, 杜云飞, 杨灿群, 王 锋, 赵克佳, 陈娟, 黄春 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1