System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于gpu设计,尤其涉及一种gpu命令异常恢复方法。
技术介绍
1、在图形系统中,cpu(central processing unit,中央处理器)通过向gpu(graphicprocessing units,图形处理器)下发命令来控制、协调图形渲染和计算任务的执行。通过下发命令,cpu可以向gpu发送指令,告诉gpu如何处理数据和执行特定的计算任务。这些指令包括绘制图形、计算着色、执行计算任务等,通过这些指令,gpu可以按照cpu的要求进行相应的操作和处理。下发命令的过程实质上是cpu与gpu之间的通信和协作,使得gpu能够高效地执行各种图形和计算任务,从而实现复杂的图形渲染和计算需求。
2、gpu的命令处理流程涉及多个关键组件和步骤,包括内存子系统、pcie(peripheral component interface express,外设组件互连快速总线)主机接口、命令缓冲区、指令调度器等。在长时间的系统运行过程中,电压波动、温度漂移等环境因素加上下发命令流程涉及各个繁杂系统,可能会出现命令出错的情况。而在命令出错后,如果不能及时进行恢复,将导致渲染结果异常,显示出来一些预期之外的画面。为了解决此问题,目前有一些公开的专利技术方案:
3、如专利公开号cn117707848a公开了一种gpu设备维护系统,采用的方案是针对异常的gpu设备进行重启。由gpu设备将异常信息发送给驱动,驱动对异常信息解析后,将解析结果以同步或者异步的方式发送给监控程序,再由监控程序通知业务端,也即由监控程序向业务
4、该方案中,gpu设备主动将异常信息发送到驱动,从而使得维护系统能够快速响应对gpu设备进行维护,并且由驱动将复位命令发送给异常的gpu设备,在gpu设备端执行复位操作,无需复位整个操作系统层,从而能够针对异常的gpu设备进行重启,而且由业务端收集gpu设备的运行状态信息,在gpu设备复位之后重新配置,从而能够保证在gpu设备维护后能够继续执行业务。该方案只是避免了重启操作系统,并没有避免重启gpu设备,更没有对需要重新下发给gpu的命令进行精细化控制。
5、又如专利公开号cn114564327a公开了一种基于smbus总线的服务器多卡控制系统,采用的方案是内置看门狗监测协处理器是否发生异常,在发生异常时通过拉低告警信号线电位来通知服务器主板。gpu板卡的协处理器出现异常时,gpu板卡中的看门狗由于不能得到刷新而拉低告警信号线的电位;服务器主板侦测到告警信号线处于低电位后,向各gpu板卡发出符合smbus协议的响应地址命令,各gpu板卡收到该命令后返回自身的设备地址,同时将告警信号线恢复为高电位;服务器主板根据得到的设备地址读取各gpu板卡的状态,若某gpu板卡的协处理器处于异常状态,则向该gpu板卡发送复位信号,该gpu板卡在接到复位信号后进行协处理器的复位,并在复位完成后产生相应的中断信号;协处理器经过复位重新运行后,根据中断信号得知本身发生异常,将告警信号线重新拉低为低电位;服务器主板侦测到告警信号线处于低电位后,向各gpu板卡重新发出符合smbus协议的响应地址命令,各gpu板卡收到该命令后返回自身的设备地址,同时将告警信号线恢复为高电位;服务器主板根据得到的设备地址再次读取各gpu板卡的状态,若无异常则gpu板卡复位完成。
6、该方案中,通过gpu板卡内置的看门狗监测板卡中的协处理器是否发生异常,在发生异常时通过拉低告警信号线电位来通知服务器主板,这样将不再需要服务器发送轮询命令查询gpu板卡是否发生异常,从而减轻服务器主板的工作量。该方案也是简单的通过重启gpu设备来恢复gpu正常工作,并没有避免重启gpu设备,更没有对需要重新下发给gpu的命令进行精细化控制。
7、总体可知,cpu给gpu的fep(front end processor,前端处理器)下发命令出现异常是系统问题,现有技术方案往往只是粗粒度的重置整个系统,并没有针对具体出错的位置进行精细化管理。
技术实现思路
1、鉴于上述问题,本专利技术的目的在于提供一种gpu命令异常恢复方法,旨在解决现有技术方案中,针对gpu下发命令时出现异常错误导致gpu无法正常工作的问题,并没有对命令异常进行精细管理,只是粗略的重置系统的技术问题。
2、本专利技术采用如下技术方案:
3、所述gpu命令异常恢复方法,包括下述步骤:
4、步骤s1、对于cpu接收到来自于应用程序的命令包,缓存命令包至内存空间,将命令包逐个发送至gpu的fep单元,并同时将执行命令包所需要的数据发送至gpu显存,其中命令包中包含有多条命令;
5、步骤s2、gpu接收命令包和数据并执行命令包,在执行过程中gpu实时监测命令包中的命令执行情况,判断是否出现异常;
6、步骤s3、如命令执行未出现异常,则对于成功执行命令包中的命令,gpu随即向cpu发送当前命令执行成功的反馈通知,cpu接收到命令包的所有命令执行成功的反馈通知后,从内存空间中删除当前命令包以释放内存空间;
7、步骤s4、如命令执行出现异常,gpu随即保存当前工作状态,并向cpu发送当前命令执行异常的反馈通知,cpu从内存空间中寻找异常命令对应的命令包,从异常命令开始将其以及其后所有已发送和未发送命令重新发送至gpu再次执行。
8、进一步的,所述命令包的格式从前之后依次为:命令包头、命令包编号、命令包中各条命令信息、命令包尾,其中每条命令信息均包括命令编号、命令指令和校验位。
9、进一步的,判断命令执行是否异常有如下情况:
10、命令合法性和数据完整性是否异常:对输入的命令进行合法性校验,首先解析来自于cpu的命令包,至少获取其中的命令包编号、命令指令,gpu在执行命令时,实时记录当前正在执行的命令包编号和命令指令,如果命令合法性或数据完整性出现问题,gpu将异常的命令包编号和异常命令的具体位置发送给cpu,cpu查找到命令包再重新发送;
11、执行时间是否异常:如果cpu一定时间内未接收到gpu的反馈通知,则认定命令执行时间异常,将未接收到反馈通知的命令记为异常命令,cpu从内存空间中寻找异常命令对应的命令包,从异常命令开始将其以及其后所有已发送和未发送命令重新发送至本文档来自技高网...
【技术保护点】
1.一种GPU命令异常恢复方法,其特征在于,所述方法包括下述步骤:
2.如权利要求1所述GPU命令异常恢复方法,其特征在于,所述命令包的格式从前之后依次为:命令包头、命令包编号、命令包中各条命令信息、命令包尾,其中每条命令信息均包括命令编号、命令指令和校验位。
3.如权利要求2所述GPU命令异常恢复方法,其特征在于,判断命令执行是否异常有如下情况:
4.如权利要求3所述GPU命令异常恢复方法,其特征在于,执行命令还会监测如下情况:
5.如权利要求4所述GPU命令异常恢复方法,其特征在于,所述异常反馈通知包括异常命令的命令包编号、异常命令在命令包中的具体位置,即命令编号,以及命令执行状态,CPU获取到GPU执行命令出现执行异常的反馈通知后,从内存空间中寻找异常命令所在命令包以及在命令包中的具体位置,找到命令包后从异常命令所在位置再重新发送异常命令及其异常命令位置之后的所有已发送和未发送命令。
【技术特征摘要】
1.一种gpu命令异常恢复方法,其特征在于,所述方法包括下述步骤:
2.如权利要求1所述gpu命令异常恢复方法,其特征在于,所述命令包的格式从前之后依次为:命令包头、命令包编号、命令包中各条命令信息、命令包尾,其中每条命令信息均包括命令编号、命令指令和校验位。
3.如权利要求2所述gpu命令异常恢复方法,其特征在于,判断命令执行是否异常有如下情况:
4.如权利要求3所述gpu命令异常恢...
【专利技术属性】
技术研发人员:刘平和,张彦芳,秦泰,黄松,李豪,
申请(专利权)人:武汉凌久微电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。