基于异构系统的异常反馈方法、设备、介质及程序产品与流程

文档序号:26139328发布日期:2021-08-03 14:22阅读:74来源:国知局
基于异构系统的异常反馈方法、设备、介质及程序产品与流程

本申请涉及通信技术领域,尤其涉及一种基于异构系统的异常反馈方法、设备、介质及程序产品。



背景技术:

随着计算机软件的不断发展,计算机芯片的应用也越来越广泛。在异构系统中,由于不同的芯片之间独立运行,例如gpu芯片、fpga芯片和cpu芯片之间由于芯片架构不同,各芯片之间独立运行,进而当异构芯片发生异常时,cpu难以捕获异构芯片出现的异常,目前,在cpu通过调用接口控制gpu执行计算任务的过程中,接口通常会反馈数值来表示gpu的工作状态,以进行异常反馈,但是由于接口反馈的数值所能表示的异常信息过于简略,将导致异构系统中cpu难以捕获准确的异常信息。



技术实现要素:

本申请的主要目的在于提供一种基于异构系统的异常反馈方法、设备、介质及程序产品,旨在解决现有技术中异构系统中异常反馈准确性低的技术问题。

为实现上述目的,本申请提供一种基于异构系统的异常反馈方法,所述基于异构系统的异常反馈方法应用于基于异构系统的异常反馈设备,所述基于异构系统的异常反馈方法包括:

通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息;

若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息;

通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息;

将所述第二封装异常信息跨语言传递至cpu上层。

可选地,所述异常发生定位信息包括异常发生位置信息和异常发生时间信息,

所述将所述异常信息转换为携带异常发生定位信息的第一封装异常信息的步骤包括:

将所述异常信息转换为符合cpu上层的数据格式的目标异常信息;

获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息。

可选地,所述异常发生位置信息包括硬件异常发生位置信息和代码异常发生位置信息,

所述获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息的步骤包括:

获取异常发生时间信息,并基于所述异常信息,判断所述异构芯片中是否发生硬件工作异常;

若是,则在所述异常信息中提取所述硬件异常发生位置信息;

在所述cpu底层中判断所述异构芯片对应的运行代码是否发生代码运行异常;

若是,则获取发生所述代码运行异常的所述代码异常发生位置信息;

对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,获得所述第一封装异常信息。

可选地,所述异常捕获和反馈模块至少包括一所述异构芯片对应的异常捕获和反馈单元,

所述将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息的步骤包括:

获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,并基于所述单元标识,确定所述异构芯片识别信息;

对所述第一封装异常信息和所述异构芯片识别信息进行封装,获得所述第二封装异常信息。

可选地,在所述将所述第二封装异常信息跨语言传递至cpu上层的步骤之后,所述基于异构系统的异常反馈方法还包括:

对所述第二封装异常信息进行解析,获得异常信息解析结果;

基于所述异常信息解析结果,确定发生工作异常对应的异常位置以及异常原因;

执行所述异常位置和所述异常原因共同对应的异常处理流程。

可选地,所述异构芯片包括第一类型异构芯片,所述工作监测信息包括调用接口反馈值和共享内存信息,

所述通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息的步骤包括:

通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值;和/或

通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息。

可选地,在所述通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息的步骤之前,所述基于异构系统的异常反馈方法还包括:

当所述第一类型异构芯片运行核函数时,检测所述核函数是否发生运行异常;

若是,则生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存。

可选地,所述异构芯片包括第二类型异构芯片,所述工作监测信息包括寄存器信息,

所述通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息的步骤包括:

通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息。

本申请还提供一种基于异构系统的异常反馈装置,所述基于异构系统的异常反馈装置为虚拟装置,且所述基于异构系统的异常反馈装置应用于基于异构系统的异常反馈设备,所述基于异构系统的异常反馈装置包括:

异常捕获模块,用于通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息;

第一封装模块,用于若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息;

第二封装模块,用于通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息;

跨语言传递模块,用于将所述第二封装异常信息跨语言传递至cpu上层。

可选地,所述第一封装模块还用于:

将所述异常信息转换为符合cpu上层的数据格式的目标异常信息;

获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息。

可选地,所述第一封装模块还用于:

获取异常发生时间信息,并基于所述异常信息,判断所述异构芯片中是否发生硬件工作异常;

若是,则在所述异常信息中提取所述硬件异常发生位置信息;

在所述cpu底层中判断所述异构芯片对应的运行代码是否发生代码运行异常;

若是,则获取发生所述代码运行异常的所述代码异常发生位置信息;

对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,获得所述第一封装异常信息。

可选地,所述第二封装模块还用于:

获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,并基于所述单元标识,确定所述异构芯片识别信息;

对所述第一封装异常信息和所述异构芯片识别信息进行封装,获得所述第二封装异常信息。

可选地,所述基于异构系统的异常反馈装置还用于:

对所述第二封装异常信息进行解析,获得异常信息解析结果;

基于所述异常信息解析结果,确定发生工作异常对应的异常位置以及异常原因;

执行所述异常位置和所述异常原因共同对应的异常处理流程。

可选地,所述异常捕获模块还用于:

通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值;和/或

通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息。

可选地,所述基于异构系统的异常反馈装置还用于:

当所述第一类型异构芯片运行核函数时,检测所述核函数是否发生运行异常;

若是,则生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存。

可选地,所述异常捕获模块还用于:

通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息。

可选地,所述基于异构系统的异常反馈装置还用于:

当调用所述第二类型异构芯片执行计算任务时,通过所述第二类型异构芯片中的任务管理模块监测各所述工作模块的工作状况,获得各所述工作模块对应的模块工作状况信息;

将各所述模块工作状况信息存放至所述寄存器。

本申请还提供一种基于异构系统的异常反馈设备,所述基于异构系统的异常反馈设备为实体设备,所述基于异构系统的异常反馈设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述基于异构系统的异常反馈方法的程序,所述基于异构系统的异常反馈方法的程序被处理器执行时可实现如上述的基于异构系统的异常反馈方法的步骤。

本申请还提供一种介质,所述介质为可读存储介质,所述可读存储介质上存储有实现基于异构系统的异常反馈方法的程序,所述基于异构系统的异常反馈方法的程序被处理器执行时实现如上述的基于异构系统的异常反馈方法的步骤。

本申请还提供一种程序产品,所述程序产品为计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的基于异构系统的异常反馈方法的步骤。

本申请提供了一种基于异构系统的异常反馈方法、设备、介质及程序产品,相比于现有技术采用的通过接口会反馈的数值来表示gpu的工作状态,以进行基于异构系统的异常反馈的技术手段,本申请首先通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息,进而若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息,进而实现了在异常信息中封装异常发生定位信息的目的,增加了异常信息所蕴含的信息量,进而通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息,实现了在异常信息中封装异构芯片识别信息的目的,进一步增加了异常信息所蕴含的信息量,进而将所述第二封装异常信息跨语言传递至cpu上层,即可实现cpu上层捕获更全面和准确的异常信息的目的,所以,克服了由于接口反馈的数值所能表示的异常信息过于简略,将导致异构系统中cpu难以捕获准确的异常信息的技术缺陷,提升了异构系统中异常反馈的准确性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请基于异构系统的异常反馈方法第一实施例的流程示意图;

图2为本申请基于异构系统的异常反馈方法中异构系统中进行异常反馈的流程示意图;

图3为本申请基于异构系统的异常反馈方法第二实施例的流程示意图;

图4为本申请基于异构系统的异常反馈方法中当异构芯片为gpu芯片时,gpu芯片对应的部分异构处理结构的示意图;

图5为本申请基于异构系统的异常反馈方法第三实施例的流程示意图;

图6为本申请基于异构系统的异常反馈方法中当异构芯片为第二类型异构芯片时,第二类型异构芯片对应的部分异构处理结构的示意图;

图7为本申请实施例中基于异构系统的异常反馈方法涉及的硬件运行环境的设备结构示意图。

本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例提供一种基于异构系统的异常反馈方法,在本申请基于异构系统的异常反馈方法的第一实施例中,参照图1,所述基于异构系统的异常反馈方法包括:

步骤s10,通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息;

在本实施例中,需要说明的是,cpu包括cpu底层和cpu上层,其中,cpu底层为语言环境为c语言的cpu层,cpu上层为语言环境为上层编程语言的cpu层,其中,所述上层编程语言包括python语言和java语言等,所述异构芯片包括第一类型异构芯片和第二类型异构芯片,其中,所述第一类型异构芯片包括gpu芯片,所述第二类型异构芯片包括fpga芯片和asic芯片等,所述工作监测信息为对异构芯片的工作状况进行监测生成的信息,用于判断异构芯片是否发生了工作异常,例如,假设若所述工作监测信息对应的机器码为00,则表示异构芯片未发生工作异常,若所述工作监测信息对应的机器码为11,则表示异构芯片发生了工作异常。

另外地,需要说明的是,所述异常捕获和反馈模块部署于cpu底层,所述异常捕获和反馈模块至少包括一异常捕获和反馈单元,其中,一所述异常捕获和反馈单元与异构芯片一一对应,例如,假设设备a中与cpu芯片交互的异构芯片分别为gpu芯片和fpga芯片,则cpu底层中存在异常捕获和反馈单元a对应gpu芯片,用于获取gpu芯片的工作监测信息,且存在异常捕获和反馈单元b对应的fpga芯片,用于获取fpga芯片的工作监测信息。

通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息,具体地,通过cpu底层中的各异常捕获和反馈单元分别获取对应的异构芯片反馈的工作监测信息,其中,不同的异常捕获和反馈单元对应不同的异构芯片,进而在各所述异常捕获和反馈单元中分别判断各所述异构芯片反馈的工作监测信息是否为异常信息。

步骤s20,若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息;

在本实施例中,需要说明的是,由于异常信息来自于各异构芯片,其数据格式存在差异,cpu上层无法识别,所述异常发生定位信息为用于对工作异常进行定位的信息,例如异常发生的硬件位置、异常发生的代码位置和异常发生的时间点等。

若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息,具体地,若是,则将所述异常信息的数据格式转换为符合cpu上层的数据格式的目标异常信息,进而获取异常发生定位信息,其中,所述异常发生定位信息具备符合cpu上层的数据格式,并对所述目标异常信息和所述异常发生定位信息进行封装,以将所述目标异常信息和所述异常发生定位信息拼接为第一封装异常信息,例如,假设所述目标异常信息对应的机器码为01010101,所述异常发生定位信息对应的机器码为1010,则所述第一封装异常信息对应的机器码为010101011010,进而若否,则证明异构芯片并未发生工作异常。

其中,所述异常发生定位信息包括异常发生位置信息和异常发生时间信息,

所述将所述异常信息转换为携带异常发生定位信息的第一封装异常信息的步骤包括:

步骤s21,将所述异常信息转换为符合cpu上层的数据格式的目标异常信息;

在本实施例中,需要说明的是,所述cpu底层中存储有目标异常信息库,其中,所述目标异常信息库中存储着异常信息对应的目标异常信息,其中,所述异常信息与所述目标异常信息均为表示异常发生的原因的信息,但所述目标异常信息为具备符合cpu上层的数据格式的信息,而所述异常信息为具备符合异构芯片的数据格式的信息。

将所述异常信息转换为符合cpu上层的数据格式的目标异常信息,具体地,以所述异常信息为索引,在cpu底层中的目标异常信息库中查询所述异常信息对应的符合cpu上层的数据格式的目标异常信息。

步骤s22,获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息。

在本实施例中,需要说明的是,所述异常发生时间信息为表示异常发生时间的信息,所述异常发生位置信息为表示异常发生位置的信息,其中,所述异常发生位置包括硬件位置和代码位置,所述硬件位置为异构芯片中发生工作异常的硬件的位置,所述代码位置为cpu底层中所述异构芯片对应的运行代码中发生工作异常的代码的位置,例如代码行数等。

获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息,具体地,获取所述异常发生时间信息和所述异常发生位置信息,其中,所述异常发生时间信息和所述异常发生位置信息均具备符合cpu上层的数据格式,进而对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,以将所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息拼接为所述第一封装异常信息。

其中,所述异常发生位置信息包括硬件异常发生位置信息和代码异常发生位置信息,

所述获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息的步骤包括:

步骤s221,获取异常发生时间信息,并基于所述异常信息,判断所述异构芯片中是否发生硬件工作异常;

在本实施例中,获取异常发生时间信息,并基于所述异常信息,判断所述异构芯片中是否发生硬件工作异常,具体地,获取异常发生时间信息,并提取所述异常信息中第一特定比特位上的第一异常特征值,进而基于所述第一异常特征值的取值,判断所述异构芯片中是否发生硬件工作异常,其中,所述第一特定比特位为异常信息中存储第一异常特征值的比特位,所述第一异常特征值为表示异构芯片中是否发生硬件工作异常,例如,假设所述异常信息为机器码12,其中,第一个比特位的1即为特定比特位上的异常特征值,异常特征值为1表示异构芯片中发生硬件工作异常,而2可以表示硬件在异构芯片中的位置。

步骤s222,若是,则在所述异常信息中提取所述硬件异常发生位置信息;

在本实施例中,若是,则在所述异常信息中提取所述硬件异常发生位置信息,具体地,若是,则提取所述异常信息中第二特定比特位上的第二异常特征值,其中,所述第二特定比特位上为异常信息中存储第二异常特征值的比特位,所述第二异常特征值为表示异构芯片中发生工作异常的硬件的位置的特征值,进而基于所述第二异常特征值,生成符合cpu上层的数据格式的硬件异常发生位置信息,若否,则生成表示未发生硬件工作异常的工作状况信息。

步骤s223,在所述cpu底层中判断所述异构芯片对应的运行代码是否发生代码运行异常;

在所述cpu底层中判断所述异构芯片对应的运行代码是否发生代码运行异常,具体地,检测所述cpu底层中所述异构芯片对应的运行代码的代码运行状况,获得代码运行状况信息,进而检测所述代码运行状况信息中是否存在代码报错信息,若存在,则判定所述异构芯片对应的运行代码发生代码运行异常,若不存在,则判定所述异构芯片对应的运行代码未发生代码运行异常。

步骤s224,若是,则获取发生所述代码运行异常的所述代码异常发生位置信息;

在本实施例中,若是,则获取发生所述代码运行异常的所述代码异常发生位置信息,具体地,若是,在代码报错信息中提取代码位置信息作为发生所述代码运行异常的代码异常发生位置信息,若否,则生成表示未发生代码运行异常的工作状况信息。

步骤s225,对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,获得所述第一封装异常信息。

在本实施例中,对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,获得所述第一封装异常信息,具体地,对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,以将所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息拼接为第一封装异常信息,进而实现了在异常信息中加入异常发生时间、硬件异常发生位置和代码异常发生位置等信息,极大程度上丰富了异常信息所蕴含的信息量,而异常发生时间、硬件异常发生位置和代码异常发生位置等信息也为cpu上层定位异常发生的位置提供了依据,进而提升了异构系统中异常反馈的准确性。

步骤s30,通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息;

在本实施例中,通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息,具体地,将各异常捕获和反馈单元生成的第一封装异常信息分别发送至所述cpu底层中的异常管理和跨语言反馈单元,进而通过所述异常管理和跨语言反馈单元识别所述第一封装异常信息的数据发送来源,其中,所述数据发送来源为异常捕获与反馈单元,且一所述异常捕获与反馈单元唯一对应一异构芯片,进而生成所述数据发送来源对应的异构芯片的异构芯片识别信息,其中,所述异构芯片识别信息为用于识别异构芯片的标识,且所述异构芯片识别信息具备符合cpu上层的数据格式,例如,异构芯片的身份标签等,进而对所述第一封装异常信息和所述异构芯片识别信息进行封装,以将所述第一封装异常信息和所述异构芯片识别信息拼接为第二封装异常信息。

其中,所述异常捕获和反馈模块至少包括一所述异构芯片对应的异常捕获和反馈单元,

所述将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息的步骤包括:

步骤s31,获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,并基于所述单元标识,确定所述异构芯片识别信息;

在本实施例中,需要说明的是,所述单元标识为异常捕获和反馈单元的身份标识。

获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,并基于所述单元标识,确定所述异构芯片识别信息,具体地,获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,进而以所述单元标识为索引,在预设数据库中查询所述单元标识对应的异构芯片识别信息,其中,由于所述异常捕获和反馈单元与异构芯片具备一一对应关系,进而所述单元标识与所述异构芯片识别信息之间也存在一一对应关系,且所述异构芯片识别信息具备符合cpu上层的数据格式。

步骤s32,对所述第一封装异常信息和所述异构芯片识别信息进行封装,获得所述第二封装异常信息。

在本实施例中,对所述第一封装异常信息和所述异构芯片识别信息进行封装,以将所述第一封装异常信息与所述异构芯片识别信息拼接为第二封装异常信息,进而实现了在异常信息中加入异构芯片识别信息的目的,进一步丰富了异常信息中所蕴含的信息量,进而当设备中存在多个异构芯片时,可定位是哪个芯片发生了工作异常,进而进一步提升异常反馈的准确性。

步骤s40,将所述第二封装异常信息跨语言传递至cpu上层。

在本实施例中,将所述第二封装异常信息以跨语言传递的方式由cpu底层中的异常管理和跨语言反馈单元传递至cpu上层的异常处理单元,进而通过所述异常处理单元,执行所述第二封装异常信息对应的异常处理流程,如图2所示为异构系统中进行异常反馈的流程示意图,其中,所述上位机cpu设备,所述异常处理单元处于cpu上层,所述异常管理与跨语言反馈单元,以及所述异常捕获和反馈单元处于cpu底层,gpu、fpga、asic和其他计算芯片均为异构芯片,且具备一一对应关系的各异构芯片与各异常捕获和反馈单元共同组成异构处理结构。

其中,在所述将所述第二封装异常信息跨语言传递至cpu上层的步骤之后,所述基于异构系统的异常反馈方法还包括:

步骤s50,对所述第二封装异常信息进行解析,获得异常信息解析结果;

在本实施例中,对所述第二封装异常信息进行解析,获得异常信息解析结果,具体地,对所述第二封装异常信息进行解析,获得异构芯片识别信息、异常发生定位信息和目标异常信息,并将异构芯片识别信息、异常发生定位信息和目标异常信息作为解析结果。

步骤s60,基于所述异常信息解析结果,确定发生工作异常对应的异常位置以及异常原因;

在本实施例中,需要说明的是,所述异常位置包括异构芯片位置、硬件位置以及代码位置等。

基于所述异常信息解析结果,确定发生工作异常对应的异常位置以及异常原因,具体地,基于所述异构芯片识别信息和异常发生定位信息,确定工作异常所处的异构芯片、工作异常所处的异构芯片中的硬件位置以及工作异常所处的代码位置,并将所述目标异常信息作为异常原因,其中,所述目标异常信息可以为表示工作异常的标签和编码向量等。

步骤s70,执行所述异常位置和所述异常原因共同对应的异常处理流程。

在本实施例中,执行所述异常位置和所述异常原因共同对应的异常处理流程,具体地,匹配所述异常位置和所述异常原因共同对应的异常处理流程,并执行所述异常处理流程,以解决工作异常,例如,假设工作异常所处的异构芯片的标识为标签a,工作异常所处的异构芯片中的硬件位置的标识为标签b,工作异常所处的代码位置的标识为标签c,异常原因的标识为标签d,则将各个标签组合的向量(a,b,c,d),进而基于向量(a,b,c,d),匹配对应的异常处理流程。

本申请实施例提供了一种基于异构系统的异常反馈方法,相比于现有技术采用的通过接口会反馈的数值来表示gpu的工作状态,以进行基于异构系统的异常反馈的技术手段,本申请实施例首先通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息,进而若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息,进而实现了在异常信息中封装异常发生定位信息的目的,增加了异常信息所蕴含的信息量,进而通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息,实现了在异常信息中封装异构芯片识别信息的目的,进一步增加了异常信息所蕴含的信息量,进而将所述第二封装异常信息跨语言传递至cpu上层,即可实现cpu上层捕获更全面和准确的异常信息的目的,所以,克服了由于接口反馈的数值所能表示的异常信息过于简略,将导致异构系统中cpu难以捕获准确的异常信息的技术缺陷,提升了异构系统中异常反馈的准确性。

进一步地,参照图3,基于本申请中第一实施例,在本申请另一实施例中,所述异构芯片包括第一类型异构芯片,所述工作监测信息包括调用接口反馈值和共享内存信息,

所述通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息的步骤包括:

步骤a10,通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值。

在本实施例中,需要说明的是,所述第一类型异构芯片为gpu芯片,当cpu设备利用gpu芯片执行计算任务时,cpu底层与gpu之间的交互方式存在两种,第一种为cpu设备通过调用预设接口的方式,控制gpu芯片执行计算任务,第二种为cpu设备通过调用核函数的方式,控制gpu芯片执行计算任务,其中,所述预设接口包括cudaruntimeapi和cudadriverapi,所述异常捕获和反馈模块至少包括一异常捕获和反馈单元。

通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值,具体地,当cpu设备通过调用预设接口控制gpu芯片执行计算任务时,若预设接口调用完毕,通过gpu芯片对应的异常捕获和反馈单元接收gpu芯片通过所述预设接口反馈的接口反馈值,其中,所述接口反馈值为预设接口反馈的工作监测信息值,用于表示gpu芯片的工作状况,例如,假设接口反馈值为1,则表示gpu芯片存在工作异常,接口反馈值为0,则表示gpu芯片未存在工作异常。

步骤b10,通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息。

在本实施例中,需要说明的是,在gpu芯片中设置有共享内存,cpu和gpu均可以访问所述共享内存。

通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息,具体地,当cpu设备通过调用核函数控制gpu芯片执行计算任务时,若核函数调用完毕,则通过所述gpu芯片对应的异常捕获和反馈单元访问所述gpu芯片与所述cpu底层之间的共享内存,并读取所述共享内存中存储的内存数据,获得所述共享内存信息,其中,所述共享内存信息为gpu芯片运行核函数时产生的工作监测信息,例如,当gpu芯片运行核函数时遭遇违规运算,则会将遭遇违规运算的异常信息写入共享内存,如图4所示为当异构芯片为gpu芯片时,gpu芯片对应的部分异构处理结构的示意图,其中,上位机为cpu设备,cudaruntimeapi和cudadriverapi均为预设接口,共享内存可以被gpu和cpu两者访问。

其中,在所述通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息的步骤之前,所述基于异构系统的异常反馈方法还包括:

步骤c10,当所述第一类型异构芯片运行核函数时,检测所述核函数是否发生运行异常;

在本实施例中,当所述第一类型异构芯片运行核函数时,检测所述核函数是否发生运行异常,具体地,当gpu芯片运行核函数时,同步检测运行所述核函数时发生运行异常,其中,所述运行异常包括硬件故障和遭遇违规计算等。

步骤c20,若是,则生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存。

在本实施例中,若是,则生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存,具体地,若是,则基于所述核函数发生的运行异常的具体类型和原因,生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存,其中,所述核函数运行异常信息为表示核函数的运行异常的原因和类型的数据。

本申请实施例提供了一种捕获异常信息的方法,也即当异构芯片为gpu芯片时,当cpu设备通过调用预设接口控制gpu芯片执行计算任务时,通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值,当cpu设备通过调用核函数控制gpu芯片执行计算任务时,通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息,进而实现了当gpu芯片执行计算任务时发生异常,异常捕获和反馈模块可准确捕获工作异常的目的,为将异常信息准确反馈至cpu上层奠定了基础。

进一步地,参照图5,基于本申请中第一实施例和本申请第二实施例,在本申请另一实施例中,

所述异构芯片包括第二类型异构芯片,所述工作监测信息包括寄存器信息,

所述通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息的步骤包括:

步骤d10,通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息。

在本实施例中,需要说明的是,所述第二类型异构芯片为芯片内部工作方法固化为工作模块的芯片,例如fpga芯片和asic芯片等,其中,所述第二类型异构芯片至少包括一工作模块,所述工作模块包括接口模块、任务管理模块和计算模块等,且各工作模块均会对自身的工作状况进行监督。

通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息,具体地,在调用所述第二类型异构芯片执行计算任务之前或者在调用所述第二类型异构芯片执行计算任务之后,通过所述第二类型异构芯片对应的异常捕获和反馈单元读取第二类型异构芯片中任务管理模块中的寄存器存放的寄存器信息,其中,所述寄存器信息为第二类型异构芯片各工作模块对自身的工作状况的监测信息。

其中,所述第二类型异构芯片至少包括一工作模块,

在所述通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息的步骤之前,所述基于异构系统的异常反馈方法还包括:

步骤e10,当调用所述第二类型异构芯片执行计算任务时,通过所述第二类型异构芯片中的任务管理模块监测各所述工作模块的工作状况,获得各所述工作模块对应的模块工作状况信息;

在本实施例中,当调用所述第二类型异构芯片执行计算任务时,通过所述第二类型异构芯片中的任务管理模块监测各所述工作模块的工作状况,获得各所述工作模块对应的模块工作状况信息,具体地,当调用所述第二类型异构芯片执行计算任务时,通过各所述工作模块分别监测自身的工作状况,获得各所述工作模块对应的模块工作状况信息,进而通过各所述工作模块将各自的模块工作状况信息发送至所述第二类型异构芯片中的任务管理模块,其中,需要说明的是,所述第二类型异构芯片的各工作模块均有异常捕获机制,例如,接口模块会监测自身是否出现堵塞等,并将监测信息发送给任务管理模块;计算模块会判断计算数据是否合法、计算流程是否正常运行以及计算是否超时等,并将监测信息发送给任务管理模块;任务管理模块会检测计算cpu设备下发的任务信息是否合法等,并确认其它模块的监测信息是否正常。

步骤e20,将各所述模块工作状况信息存放至所述寄存器。

在本实施例中,需要说明的是,各所述工作模块均会将各自生成的模块工作状况信息存放至所述任务管理模块中的寄存器,如图6所示为当异构芯片为第二类型异构芯片时,第二类型异构芯片对应的部分异构处理结构的示意图。

将各所述模块工作状况信息存放至所述寄存器,具体地,通过所述任务管理模块接收各所述模块工作状况信息,并通过所述任务管理模块将各所述模块工作状况信息存放至所述寄存器。

本申请实施例提供了一种异常捕获方法,也即,当异构芯片为第二类型异构芯片时,在调用所述第二类型异构芯片执行计算任务之前或者在调用所述第二类型异构芯片执行计算任务之后,通过所述第二类型异构芯片对应的异常捕获和反馈单元读取第二类型异构芯片中任务管理模块中的寄存器存放的寄存器信息,其中,所述寄存器信息为第二类型异构芯片各工作模块对自身的工作状况的监测信息,进而实现了当第二类型异构芯片发送工作异常时,异常捕获和反馈模块可准确捕获工作异常的目的,为将异常信息准确反馈至cpu上层奠定了基础。

参照图7,图7是本申请实施例方案涉及的硬件运行环境的设备结构示意图。

如图7所示,该基于异构系统的异常反馈设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该基于异构系统的异常反馈设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

本领域技术人员可以理解,图7中示出的基于异构系统的异常反馈设备结构并不构成对基于异构系统的异常反馈设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及基于异构系统的异常反馈程序。操作系统是管理和控制基于异构系统的异常反馈设备硬件和软件资源的程序,支持基于异构系统的异常反馈程序以及其它软件和/或,程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与基于异构系统的异常反馈系统中其它硬件和软件之间通信。

在图7所示的基于异构系统的异常反馈设备中,处理器1001用于执行存储器1005中存储的基于异构系统的异常反馈程序,实现上述任一项所述的基于异构系统的异常反馈方法的步骤。

本申请基于异构系统的异常反馈设备具体实施方式与上述基于异构系统的异常反馈方法各实施例基本相同,在此不再赘述。

本申请实施例还提供一种基于异构系统的异常反馈装置,所述基于异构系统的异常反馈装置应用于基于异构系统的异常反馈设备,所述基于异构系统的异常反馈装置包括:

异常捕获模块,用于通过cpu底层中的异常捕获和反馈模块获取异构芯片反馈的工作监测信息,并判断所述工作监测信息是否为异常信息;

第一封装模块,用于若是,则将所述异常信息转换为携带异常发生定位信息的第一封装异常信息;

第二封装模块,用于通过所述cpu底层中的异常管理和跨语言反馈单元接收所述第一封装异常信息,并将所述第一封装异常信息转换为携带所述异构芯片对应的异构芯片识别信息的第二封装异常信息;

跨语言传递模块,用于将所述第二封装异常信息跨语言传递至cpu上层。

可选地,所述第一封装模块还用于:

将所述异常信息转换为符合cpu上层的数据格式的目标异常信息;

获取所述异常发生时间信息和所述异常发生位置信息,并对所述目标异常信息、所述异常发生位置信息和所述异常发生时间信息进行封装,获得所述第一封装异常信息。

可选地,所述第一封装模块还用于:

获取异常发生时间信息,并基于所述异常信息,判断所述异构芯片中是否发生硬件工作异常;

若是,则在所述异常信息中提取所述硬件异常发生位置信息;

在所述cpu底层中判断所述异构芯片对应的运行代码是否发生代码运行异常;

若是,则获取发生所述代码运行异常的所述代码异常发生位置信息;

对所述异常发生时间信息、所述硬件异常发生位置信息、所述代码异常发生位置信息以及所述目标异常信息进行封装,获得所述第一封装异常信息。

可选地,所述第二封装模块还用于:

获取发送所述第一封装异常信息的异常捕获和反馈单元的单元标识,并基于所述单元标识,确定所述异构芯片识别信息;

对所述第一封装异常信息和所述异构芯片识别信息进行封装,获得所述第二封装异常信息。

可选地,所述基于异构系统的异常反馈装置还用于:

对所述第二封装异常信息进行解析,获得异常信息解析结果;

基于所述异常信息解析结果,确定发生工作异常对应的异常位置以及异常原因;

执行所述异常位置和所述异常原因共同对应的异常处理流程。

可选地,所述异常捕获模块还用于:

通过所述异常捕获和反馈模块接收所述第一类型异构芯片反馈的调用接口反馈值;和/或

通过所述异常捕获和反馈模块访问所述第一类型异构芯片与所述cpu底层之间的共享内存,读取所述共享内存信息。

可选地,所述基于异构系统的异常反馈装置还用于:

当所述第一类型异构芯片运行核函数时,检测所述核函数是否发生运行异常;

若是,则生成核函数运行异常信息,并将所述核函数运行异常信息写入所述共享内存。

可选地,所述异常捕获模块还用于:

通过所述异常捕获和反馈模块读取所述第二类型异构芯片对应的寄存器中存放的寄存器信息。

可选地,所述基于异构系统的异常反馈装置还用于:

当调用所述第二类型异构芯片执行计算任务时,通过所述第二类型异构芯片中的任务管理模块监测各所述工作模块的工作状况,获得各所述工作模块对应的模块工作状况信息;

将各所述模块工作状况信息存放至所述寄存器。

本申请基于异构系统的异常反馈装置的具体实施方式与上述基于异构系统的异常反馈方法各实施例基本相同,在此不再赘述。

本申请实施例提供了一种介质,所述介质为可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的基于异构系统的异常反馈方法的步骤。

本申请可读存储介质具体实施方式与上述基于异构系统的异常反馈方法各实施例基本相同,在此不再赘述。

本申请还提供一种程序产品,所述程序产品为计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的基于异构系统的异常反馈方法的步骤。

本申请计算机程序产品具体实施方式与上述基于异构系统的异常反馈方法各实施例基本相同,在此不再赘述。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

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