一种智能计算机系统的容错检测方法与流程

文档序号:15981201发布日期:2018-11-17 00:21阅读:733来源:国知局

本发明涉及计算机检测,特别涉及一种智能计算机系统的容错检测方法。

背景技术

随着人工智能技术不断发展,人工智能被广泛运用在实际生活之中,如图片分类、语音识别、文字处理、视频处理等。以卷积神经网络(cnn)、深度神经网络(dnn)、长短期记忆网络(lstm)等为基础的人工智能技术使得计算机识别处理能力甚至超过了人类的大脑。然而,为了提高计算机处理上述应用时的精确度以及神经元数量的急剧增长,使得神经网络变得越来越复杂。神经网络计算作为访存密集型和计算密集型的应用,导致在传统的通用处理器上表现出的计算效率和访存效率低下,因此,国内外研究学者纷纷把目光转向神经网络硬件加速器的定制,其中最为出色的代表即为寒武纪芯片。寒武纪芯片为人工智能专用芯片,能够适用于多种多样的人工智能应用,在提高计算效率的同时,极大的降低了应用处理的功耗。

另一方面,人工智能芯片的使用离不开传统的计算机,因此需要设计搭载人工智能芯片的智能板卡,以智能板卡为计算核心,传统计算机作为主机端,通过松耦合的方式将板卡与主机端进行互联,配以相应的操作系统、驱动程序等系统软件,构成整个智能计算机系统。

智能板卡的引入将导致传统计算机的状态机逻辑发生改变,智能计算机系统的状态机由主机端的状态逻辑和智能板卡的状态逻辑耦合而成,但是在状态耦合和转换的过程中,难免出现一些异常情况,如死机等,这样将降低智能计算机系统的健壮性和鲁棒性。



技术实现要素:

本发明目的是:为提高智能计算机系统的健壮性和鲁棒性,本发明提出了一种智能计算机系统的容错检测方法,在该方法的使用情况下,服务器监控节点能够迅速、成功的捕捉智能计算机系统的异常状态,如死机、内存松动等,并且设计了相应的异常解决方案,使得系统能够自动检测异常,报告异常以及修复异常。

本发明的技术方案是:

一种智能计算机系统的容错检测方法,针对计算机与智能板卡耦合、配以相应的软硬件环境形成的智能计算机系统的异常、健康状况进行检测,包括:系统死机检测、连通性检测、驱动插入检测和板卡健康检测。

优选的,所述系统死机检测用于检测上一次关机是否由死机引起,若由死机引起,则抛出异常通知服务器当前系统为死机后重启,上一次为该节点分配的任务需要重新分配。

优选的,所述连通性检测用于检测智能板卡与主机端是否顺利连通,通过lspci命令是否能够查询到该设备信息。

优选的,所述驱动插入检测用于检测智能板卡硬件驱动模块是否成功插入。

优选的,板卡健康状态检测用于检测板卡的状态,包括是否发生硬件版本错误、内存是否完备、运行任务是否正常。

优选的,用户在向智能计算机系统提交任务时,系统自动创建相应的任务标志文件,如果系统上一次关机由死机造成,那么任务标志文件不会被清楚,此时在智能计算机系统的容错检测方法的控制下将检测任务标志文件是否存在,若存在则表明上一次关机由死机造成。

优选的,所述智能板卡的连通性检测,在用户登录系统之后,通过lspci命令查看当前系统能否查询到智能板卡设备。

优选的,在插入驱动模块之后,智能计算机系统的容错检测方法将检测驱动是否插入成功,若检测插入不成功,需要通过看门狗对系统进行断电重启,并且向服务器抛出相应的异常。

优选的,所述板卡健康状态检测,检测智能板卡板载内存的状态、智能板卡运行过程中是否死机以及运行之后的结果是否正确,在智能板卡健康状态检测通过之后,接收用户层提交的任务,并且执行该任务,若在任务的执行过程中,系统容错检测方法检测系统是否死机,若死机,则通过看门狗将系统断电重启,并且向服务器抛出异常信息。

本发明的优点是:

本发明提出的智能计算机系统的容错检测方法,在该方法的使用情况下,服务器监控节点能够迅速、成功的捕捉智能计算机系统的异常状态,如死机、内存松动等,并且设计了相应的异常解决方案,使得系统能够自动检测异常,报告异常以及修复异常。使得智能计算机系统服务器能够良好的感知节点主机端以及智能板卡的状态,提高了智能计算机系统的健壮性与鲁棒性。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为本发明智能计算机系统的容错检测方法的主要流程图;

图2为本发明智能计算机系统的容错检测方法的具体流程图。

具体实施方式

如图1所示,本发明的智能计算机系统的容错检测方法,针对计算机与智能板卡耦合、配以相应的软硬件环境形成的智能计算机系统的异常、健康状况进行检测,包括:

系统死机检测,用于检测上一次关机是否由死机引起,若由死机引起,则抛出异常通知服务器当前系统为死机后重启,上一次为该节点分配的任务需要重新分配;

连通性检测,用于检测智能板卡与主机端是否顺利连通,通过lspci命令是否能够查询到该设备信息;

驱动插入检测,用于检测智能板卡硬件驱动模块是否成功插入;

板卡健康检测,用于检测板卡的状态,包括是否发生硬件版本错误、内存是否完备、运行任务是否正常。

如图2所示,本发明设计了智能计算机系统的容错检测流程,具体的如下。

用户在向智能计算机系统提交任务时,系统自动创建相应的任务标志文件,如果系统上一次关机由死机造成,那么任务标志文件不会被清楚,此时在智能计算机系统的容错检测方法的控制下将检测任务标志文件是否存在,若存在则表明上一次关机由死机造成。

所述智能板卡的连通性检测,在用户登录系统之后,通过lspci命令查看当前系统能否查询到智能板卡设备。

在插入驱动模块之后,智能计算机系统的容错检测方法将检测驱动是否插入成功,若检测插入不成功,需要通过看门狗对系统进行断电重启,并且向服务器抛出相应的异常。

所述板卡健康状态检测,检测智能板卡板载内存的状态、智能板卡运行过程中是否死机以及运行之后的结果是否正确,在智能板卡健康状态检测通过之后,接收用户层提交的任务,并且执行该任务,若在任务的执行过程中,系统容错检测方法检测系统是否死机,若死机,则通过看门狗将系统断电重启,并且向服务器抛出异常信息。

下面介绍本发明基于智能计算机系统设计对应相应流程的检测模块。

智能计算机系统在每一个步骤执行之前都将创建一个标志文件(.mark文件),在对应的步骤成功执行之后将该步骤的标志文件清除,死机检测模块将在开机后检测系统中是否存在.mark文件,若存在,则说明系统上次关机由死机异常引起,此时将该消息上报服务器。

智能计算机系统在插入驱动模块之前将对智能板卡的连通性进行检测,也即检测其lspci的返回码是否正确,将检测返回的关键字输出至init_ipu.log中,然后执行process_ipu_initial_log.py来进行检测。如果在检测到”startcheck_device”字符串后,下一行紧跟”end”,则认为没有收到返回码,此时确定板卡未连通,将此时对应的错误码发送至服务器。

在板卡连通性检测通过之后,插入驱动模块之前,系统创建insmod.mark文件来防止插入驱动时死机重启后没有异常的痕迹,正常插入驱动后,删除该文件。同样将插入驱动的关键字和信息放入init_ipu.log文件中,执行process_ipu_initial_log.py来进行检测。如果在检测到”insmod”字符串后,下一行不是”insmodmodule”,则认为没有正常插入驱动,发送对应的错误码到服务器。

检测完硬件后,第三部分进入docker中运行指定测试任务进行检测板卡功能。先创建healthy_detect.mark文件来防止死机后重启丢失错误信息,同时这个文件也是在宿主机中判断docker中测试用例是否完成的标志,在while循环中每隔1s来检测一次文件是否存在,docker中测试用例执行完成后会删除文件,此时宿主机认为测试用例执行完成。

进入docker中后,自动执行配置文件中指定的脚本文件,脚本中docker中的检测程序ipu_runable_check来进行检测,其中ipu_runable_check中包含两个线程,分别是detect和watch_dog线程,detect线程用来跑测试用例,而watch_dog线程是软件看门狗,用来防止测试用例卡死无法退出,导致测试无法完成。

detect线程中,首先调用healthy_detect.sh脚本来跑测试用例,配置动态链接库的路径后,执行测试用例,并且将输出放到文本文件中。

运行完测试用例后,执行compare_healthy_detect.py来比较实际输出的内容跟预期的输出是否一致,预期的输出已经保存在output1.msg中。如果检测到”unsupporthardwareversion:ffffffff!!!\n”则认为板卡硬件版本为ff错误,把错误码写到ipu_detect.log中。在while循环中比较两个文件的相似度,若不相似则认为任务结果错误,把错误码写到ipu_detect.log中。在watch_dog线程中,若延时到了任务还没有结束,则认任务超时,把相应的错误码写到ipu_detect.log中。docker中测试用例执行完成后,调用senddetectresult.py来将docker中汇总的错误信息发送到服务器,若没有错误信息,发送成功到服务器。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。

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