CN112689827A - 模型推理异常处理方法及装置 - Google Patents

模型推理异常处理方法及装置 Download PDF

Info

Publication number
CN112689827A
CN112689827A CN202080004963.2A CN202080004963A CN112689827A CN 112689827 A CN112689827 A CN 112689827A CN 202080004963 A CN202080004963 A CN 202080004963A CN 112689827 A CN112689827 A CN 112689827A
Authority
CN
China
Prior art keywords
task
model
session
target
reasoning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080004963.2A
Other languages
English (en)
Other versions
CN112689827B (zh
Inventor
朱湘毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112689827A publication Critical patent/CN112689827A/zh
Application granted granted Critical
Publication of CN112689827B publication Critical patent/CN112689827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种模型推理异常处理方法,该方法包括加速器接收并执行应用处理器下发的目标模型推理会话的各模型推理任务,上述目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务;当执行上述目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,上述加速器按照异常处理模式执行上述目标模型推理会话中包含的剩余模型推理任务,其中,上述剩余模型推理任务为在上述任一模型推理任务之后执行的所有模型推理任务;上述加速器向上述应用处理器反馈上述目标模型推理会话异常。采用本申请,可以减少模型推理异常造成的计算资源浪费,及时将模型推理异常进行反馈,提高模型推理效率,适用性高。

Description

模型推理异常处理方法及装置
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种模型推理异常处理方法及装置。
背景技术
随着计算机网络技术的发展,有越来越多应用场景需要构建神经网络模型。例如在自动驾驶***中,有大量的场景需要用到人工智能(Artificial Intelligence,AI)模型推理,而AI模型本质是一种深度神经网络模型,神经网络模型具有矩阵和矢量计算密集的特点,对***的运算能力要求很高。普通的中央处理器(Central Processing Unit,CPU)一般不能满足神经网络模型的算力需求,因此需要用到专用的加速器来执行推理加速,比如图形处理器(Graphics Processing Unit,GPU),或专门定制的嵌入式神经网络处理器(Neural-network Processing Unit,NPU)等。由此可见,神经网络模型的推理过程通常在异构***中执行,即由应用侧将神经网络模型下发到加速器(比如GPU或者NPU)执行,等待加速器执行完成后,由应用侧读取加速器的处理结果。通常情况下,由于接口限制,应用侧需要将神经网络模型分拆成可以由加速器进行处理的任务流,然后下发给加速器处理。多个任务流之间的任务可以在加速器上并行执行,同一任务流的任务只能串行执行。当加速器执行某个任务流中的任务出错时,加速器需要将错误返回给应用侧。
本申请的发明人在研究和实践过程中发现,现有技术中,加速器执行某个任务流的任务出现错误时,只是将错误记录到该任务流上,后续任务依然会执行,直至该任务流的所有任务执行结束,这会极大地浪费加速器的计算资源,也可能因为加速器执行了错误的任务导致其他不可预知的错误。此外由于应用侧只与加速器中的一个任务流进行同步,当错误发生在其他任务流内,加速器无法将错误信息返回给应用侧,应用侧无法知道发生错误的任务流,适用性差。
发明内容
本申请提供了一种模型推理异常处理方法及装置,可减少模型推理异常造成的计算资源浪费,及时将模型推理异常进行反馈,提高模型推理效率,适用性高。
第一方面,本申请提供了一种模型推理异常处理方法,该方法可适用于加速器。加速器可接收并执行应用处理器下发的目标模型推理会话的各模型推理任务,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。这里,加速器可以接收应用处理器下发的多个模型推理会话中各任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,任务流由多个模型推理任务构成,这些模型推理任务由加速器执行。当加速器执行目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,加速器可以按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务。这里,异常处理模式是一种节省加速器计算资源的模型推理任务执行模式。剩余模型推理任务为在任一模型推理任务之后执行的所有模型推理任务。加速器可向应用处理器反馈目标模型推理会话异常。在本申请中,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务,当某一个模型推理会话(比如目标模型推理会话)中的其中一个模型推理任务出现异常时,可按照异常处理模式执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
结合第一方面,在第一种可能的实施方式中,加速器执行应用处理器下发的目标模型推理会话的各模型推理任务之前,加速器可执行应用处理器下发的会话启动任务。这里,应用处理器可在每一个目标任务流中的第一个模型推理任务下发之前向加速器下发会话启动任务,用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。加速器可将接收到的目标任务流的模型推理任务添加至目标会话队列,从而对接收到的模型推理任务所属的目标任务流和该目标任务流所属的目标模型推理会话进行标记(即将添加至目标会话队列中的目标任务流的所有模型推理任务标记为目标模型推理会话的模型推理任务)。会话启动任务可以优化加速器的执行过程,节省加速器确定推理任务所属目标任务流以及所属目标模型推理会话的时间,从而提高模型推理效率。
结合第一方面第一种可能的实施方式,在第二种可能的实施方式中,加速器执行应用处理器下发的目标模型推理会话的各模型推理任务之后,加速器可执行应用处理器下发的会话结束任务。这里,应用处理器可在每一个目标任务流中的最后一个模型推理任务下发之后向加速器下发会话结束任务,用于指示加速器目标任务流在目标模型推理会话中执行结束。加速器可将目标任务流中的模型推理任务从目标会话队列中删除,从而记录目标任务流包含的模型推理任务在目标模型推理会话中执行结束。加速器可以在目标模型推理回话中的模型推理任务执行结束后释放计算资源,提高模型推理效率。
结合第一方面至第一方面第二种可能的实施方式中任一种,在第三种可能的实施方式中,加速器可按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务,包括:加速器确定目标模型推理会话中包含的剩余模型推理任务中各模型推理任务的任务类型,将任务类型为task的模型推理任务进行丢弃处理,并执行各模型推理任务中任务类型不为task的模型推理任务,例如类型为event的模型推理任务。这里,模型推理任务的任务类型至少包括task或者event两种。由于加速器无法针对某一个或某几个任务流进行复位,当模型推理任务发生异常,继续执行模型推理任务会造成计算资源浪费,加速器可对任务类型为task的模型推理任务和其他任务进行区分处理,可快速地将目标模型推理会话中包含的所有模型推理任务执行完成的同时可减少模型推理任务异常造成的计算资源浪费,提高模型推理效率。
结合第一方面至第一方面第三种可能的实施方式中任一种,在第四种可能的实施方式中,加速器可向应用处理器反馈目标模型推理会话异常,包括:加速器从应用处理器接收并执行同步模型推理任务以向应用处理器反馈目标模型推理会话的执行结果。这里,执行结果中包括模型推理会话的状态信息以及结果数据信息,状态信息用于向应用处理器反馈目标模型推理会话异常,结果数据信息用于向应用处理器反馈目标模型推理会话的结果数据。加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
第二方面,本申请提供了一种模型推理异常处理方法,该方法可适用于应用处理器。应用处理器可创建目标模型推理会话,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。应用处理器可以向加速器下发多个模型推理会话中的任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,应用处理器可将每个任务流分别划分为多个模型推理任务并下发给加速器执行。在下发模型推理任务之前,应用处理器可以向加速器下发会话启动任务。这里,会话启动任务可以用于指示在会话启动任务之后下发的目标任务流的模型推理任务属于目标模型推理会话(即会话启动任务用于指示在会话启动任务之后下发的任务流的模型推理任务为目标模型推理会话的模型推理任务)。换句话说,应用处理器可在每一个目标任务流中的第一个模型推理任务下发之前向加速器下发会话启动任务,用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。应用处理器可将目标模型推理会话中各目标任务流的各模型推理任务下发给加速器,并向加速器下发会话结束任务。这里,目标模型推理会话中各目标任务流的各模型推理任务的类型至少包括task和event。会话结束任务可用于指示目标模型推理会话中目标任务流所包含的模型推理任务执行结束。这里,应用处理器可在每一个目标任务流中的最后一个模型推理任务下发之后向加速器下发会话结束任务。应用处理器可根据加速器的反馈确定目标模型推理会话异常。在本申请中,应用处理器可以指示各任务流与所属模型推理会话的关联,简化加速器中对任务流的调度过程。同时应用处理器可以通过下发会话启动任务和会话终止任务,指示加速器目标模型推理会话中目标任务流包含的模型推理任务的执行情况。同时应用处理器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
结合第二方面,在第一种可能的实施方式中,应用处理器向加速器下发同步模型推理任务。这里,同步模型推理任务用于指示加速器反馈目标模型推理会话的执行结果。加速器反馈的目标模型推理会话的执行结果中可包括模型推理会话的状态信息以及结果数据信息。这里,状态信息用于向应用处理器反馈目标模型推理会话异常,结果数据信息用于向应用处理器反馈目标模型推理会话的结果数据。应用处理器可以根据加速器的反馈确定目标模型推理会话异常。这里,应用处理器可仅根据状态信息确定目标模型推理会话异常。应用处理器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
结合第二方面或者第二方面第一种可能的实施方式,在第二种可能的实施方式中,应用处理器可在向加速器下发同步模型推理任务的同时,暂停应用处理器中模型推理任务的处理进程。应用处理器可在加速器反馈同步模型推理会话的执行结果的同时,继续应用处理器中模型推理任务的处理进程。应用处理器可以在与加速器反馈结果之前暂时阻塞应用处理器中模型推理任务的处理进程,从而减少模型推理任务对应用处理器中计算资源的浪费,提高模型推理效率。
第三方面,本申请提供了一种模型推理异常处理装置,该模型推理异常处理装置为加速器,装置包括:会话处理模块,用于接收并执行应用处理器下发的目标模型推理会话的各模型推理任务。这里,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。这里,加速器可以接收应用处理器下发的多个模型推理会话中各任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,目标任务流由多个加速器可以执行的模型推理任务构成,这些模型推理任务由加速器执行。异常处理模块,用于当某一个模型推理会话(比如目标模型推理会话)中任一任务流中的任一模型推理任务出现异常时,按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务。这里,异常处理模式是一种节省加速器计算资源的模型推理任务执行模式。这里,剩余模型推理任务为在任一模型推理任务之后执行的所有模型推理任务。异常反馈模块,用于向应用处理器反馈目标模型推理会话异常。在本申请中,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务,当目标模型推理会话中的其中一个模型推理任务出现异常时,可按照异常处理模式执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
结合第三方面,在第一种可能的实施方式中,该模型推理异常处理装置还包括:启动任务处理模块,用于执行应用处理器下发的会话启动任务。这里,应用处理器可在每一个目标任务流中的第一个模型推理任务下发之前向启动任务处理模块下发会话启动任务,用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。启动任务处理模块可将接收到的目标任务流的模型推理任务添加至目标会话队列,从而对接收到的模型推理任务所属的目标任务流和该目标任务流所属的目标模型推理会话进行标记(即将添加至目标会话队列中的目标任务流的所有模型推理任务标记为目标模型推理会话的模型推理任务)。会话启动任务可以优化会话处理模块的执行过程,节省会话处理模块确定推理任务所属目标任务流以及所属目标模型推理会话的时间,可提高处理效率。
结合第三方面第一种可能的实施方式,在第二种可能的实施方式中,该模型推理异常处理装置还包括:结束任务处理模块,用于执行应用处理器下发的会话结束任务,并将目标模型推理会话的模型推理任务从目标会话队列中删除。这里,应用处理器可在每一个目标任务流中的最后一个模型推理任务下发之后向结束任务处理模块下发会话结束任务,用于指示加速器目标任务流在目标模型推理会话中执行结束。结束任务处理模块可将目标任务流中的模型推理任务从目标会话队列中删除,从而记录目标任务流包含的模型推理任务在目标模型推理会话中执行结束。结束任务处理模块可以提示加速器在目标模型推理回话中的模型推理任务执行结束后释放计算资源,提高模型推理效率。
结合第三方面至第三方面第二种可能的实施方式中任一种,在第三种可能的实施方式中,异常处理模块还用于:确定目标模型推理会话中包含的剩余模型推理任务中各模型推理任务的任务类型,将任务类型为task的模型推理任务进行丢弃处理,并执行各模型推理任务中任务类型不为task的模型推理任务,例如类型为event的模型推理任务。这里,模型推理任务的任务类型至少包括task或者event两种。这里,由于加速器无法针对某一个或某几个任务流进行复位,当模型推理任务发生异常,继续执行模型推理任务会造成计算资源浪费,加速器可对任务类型为task的模型推理任务和其他任务进行区分处理,可快速地将目标模型推理会话中包含的所有模型推理任务执行完成的同时可减少模型推理任务异常造成的计算资源浪费,提高模型推理效率。
结合第三方面至第三方面第三种可能的实施方式中任一种,在第四种可能的实施方式中,异常反馈模块还用于:从应用处理器接收并执行同步模型推理任务以向应用处理器反馈目标模型推理会话的执行结果。这里,执行结果中包括模型推理会话的状态信息以及结果数据信息,状态信息用于指示目标模型推理会话异常,结果数据信息用于向应用处理器反馈目标模型推理会话的结果数据。加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
第四方面,本申请提供了一种模型推理异常处理装置,该模型推理异常处理装置为应用处理器,装置包括:会话创建模块,用于创建目标模型推理会话,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。应用处理器可以向加速器下发多个模型推理会话中的任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,应用处理器可将每个目标任务流分别划分为多个模型推理任务并下发给加速器执行。启动任务下发模块,用于向加速器下发会话启动任务。这里,会话启动任务可以用于指示在会话启动任务之后下发的目标任务流的模型推理任务属于目标模型推理会话(即会话启动任务用于指示在会话启动任务之后下发的任务流的模型推理任务为目标模型推理会话的模型推理任务)。换句话说,会话启动模块可在每一个目标任务流中的第一个模型推理任务下发之前向加速器下发会话启动任务,会话启动任务可以用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。会话下发模块,用于将目标模型推理会话中各目标任务流的各模型推理任务下发给加速器,并向加速器下发会话结束任务。这里,目标模型推理会话中各目标任务流的各模型推理任务的类型至少包括task和event。结束任务下发模块,用于向加速器下发会话结束任务。这里,会话结束任务可用于指示目标模型推理会话中目标任务流所包含的模型推理任务执行结束。这里,会话结束模块可在每一个目标任务流中的最后一个模型推理任务下发之后向加速器下发会话结束任务。异常确定模块,用于根据加速器的反馈确定目标模型推理会话异常。在本申请中,应用处理器可以指示各任务流与所属模型推理会话的关联,简化加速器中对任务流的调度过程。同时可以通过下发会话启动任务和会话终止任务,指示加速器目标模型推理会话中目标任务流包含的模型推理任务的执行情况。通过指示加速器执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
结合第四方面,在第一种可能的实施方式中,该装置还包括:同步任务下发模块,用于向加速器下发同步模型推理任务,同步模型推理任务用于指示加速器反馈目标模型推理会话的执行结果。加速器反馈的目标模型推理会话的执行结果中可包括模型推理会话的状态信息以及结果数据信息。这里,状态信息用于指示目标模型推理会话异常。反馈接收单元,用于根据加速器的反馈确定目标模型推理会话异常。这里,应用处理器可根据状态信息确定目标模型推理会话异常。可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
结合第四方面或者第四方面第一种可能的实施方式,在第二种可能的实施方式中,该装置还包括:进程阻塞模块,用于在同步任务下发模块向加速器下发同步模型推理任务的同时暂停模型推理应用处理器中模型推理任务的处理进程;在加速器反馈同步模型推理会话的执行结果的同时继续模型推理应用处理器中模型推理任务的处理进程。可以在与加速器反馈结果之前暂时阻塞应用处理器中模型推理任务的处理进程,从而减少模型推理任务对应用处理器中计算资源的浪费,提高模型推理效率。
第五方面,本申请实施例提供了一种加速器,该加速器包括存储器、收发器和处理器;其中,该存储器、收发器和处理器通过通信总线连接,或者处理器和收发器用于与存储器耦合。该存储器用于存储一组程序代码,该收发器和处理器用于调用该存储器中存储的程序代码执行上述第一方面和/或第一方面中任意一种可能的实现方式所提供的模型推理异常处理方法,因此也能实现第一方面提供的方法所具备的有益效果。
第六方面,本申请实施例提供了一种应用处理器,该应用处理器包括存储器、收发器和处理器;其中,该存储器、收发器和处理器通过通信总线连接,或者处理器和收发器用于与存储器耦合。该存储器用于存储一组程序代码,该收发器和处理器用于调用该存储器中存储的程序代码执行上述第二方面和/或第二方面中任意一种可能的实现方式所提供的模型推理异常处理方法,因此也能实现第二方面提供的方法所具备的有益效果。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在加速器上运行时,使得加速器执行上述第一方面和/或第一方面中任意一种可能的实现方式所提供的模型推理异常处理方法,也能实现第一方面提供的方法所具备的有益效果。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在应用处理器上运行时,使得应用处理器执行上述第二方面和/或第二方面中任意一种可能的实现方式所提供的模型推理异常处理方法,也能实现第二方面提供的方法所具备的有益效果。
第九方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在加速器上运行时,使得加速器执行上述第一方面和/或第一方面中任意一种可能的实现方式所提供的模型推理异常处理方法,也能实现第一方面提供的方法所具备的有益效果。
第十方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在应用处理器上运行时,使得应用处理器执行上述第二方面和/或第二方面中任意一种可能的实现方式所提供的模型推理异常处理方法,也能实现第二方面提供的方法所具备的有益效果。
附图说明
图1是本申请提供的AI模型推理的应用场景示意图;
图2是AI模型推理的架构示意图;
图3是本申请提供的模型推理异常处理方法的流程图;
图4是本申请提供的生成模型推理会话的流程图;
图5是本申请提供的接收模型推理会话的流程图;
图6是本申请提供的执行模型推理会话的流程图;
图7是本申请实施例提供的模型推理异常处理装置的一结构示意图;
图8是本申请实施例提供的模型推理异常处理装置的另一结构示意图;
图9是本申请实施例提供的加速器的结构示意图;
图10是本申请实施例提供的应用处理器的结构示意图。
具体实施方式
本申请提供的模型推理异常处理方法及装置适用于所有对模型进行推理的技术领域。为了表述方便,本申请仅以对AI模型推理异常处理为例作为说明。在很多应用场景中,例如自动驾驶场景中,驾驶员监控、泊车、自动驾驶等过程都需要对摄像头的图片做AI处理,即利用AI模型进行推理。参见图1,图1是本申请提供的AI模型推理的应用场景示意图。在图1所示的模型推理场景可以包括云端服务器2000以及用户终端集群;用户终端集群可以包括多个用户终端,如图1所示,具体包括用户终端3000a、用户终端3000b、…、用户终端3000n;如图1所示,用户终端3000a、用户终端3000b、…、用户终端3000n均可以在满足一定的数据交互条件下,分别建立与云端服务器2000之间的数据连接关系,以便于能够与该云端服务器2000进行数据交互。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、桌上型电脑等需要进行模型推理功能(例如,自动驾驶功能,自动泊车功能)的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a作为上述目标用户终端,该目标用户终端中可以集成有具备该模型推理功能的目标应用。应当理解,集成在该目标用户终端中目标应用可以统称为应用客户端。
可以理解的是,本申请实施例中所描述的通过模型推理异常处理方法,可以适用于所有在应用客户端(即前述目标应用)中对AI模型进行推理的应用场景。其中,当具有模型推理功能的目标应用运行在该目标用户终端中时,该目标用户终端所运行的AI模型可以包含提前内置在该目标应用中的AI模型,还可以包含当前通过网络从该服务器2000中下载的AI模型。
应当理解,本申请实施例可以将提前内置在该目标应用中的AI模型和当前下载的AI模型统称为AI模型。由此可见,本申请实施例可以在目标应用运行期间,对该AI模型进行计算;还可以在该目标用户终端运行目标应用之前,对该目标用户终端中提前从上述图1所示的服务器2000中所获取到的AI模型进行计算。
可选的,本申请实施例在该目标用户终端运行目标应用之前,还可以在服务器2000中对AI模型进行计算,从而可以在该目标用户终端运行该目标应用时,通过网络向该服务器2000发送数据下载指令(即数据加载指令),以使该服务器可以基于该下载指令中所携带的终端标识来判断该目标用户终端是否满足生成AI模型计算条件。若该服务器2000确定该目标用户终端满足生成AI模型计算条件,即该服务器2000确定该目标用户终端的终端标识的类型属于低端机的标识类型,则可以在该服务器2000中将预先计算后存储的AI模型返回给目标用户终端,从而可以在该目标应用运行在目标用户终端中时,减少***性能损耗,并可以提高AI模型推理效率。由此可见,本申请实施例还可以在运行目标应用之前,在目标用户终端或者服务器2000中对AI模型进行计算。
以前述目标应用为生活应用(自动驾驶应用)为例,该目标用户终端可以通过该生活应用加载并运行该AI模型,并利用该AI模型对自动驾驶路线进行推理。由于AI模型推理的过程是一个异步计算的过程,包括应用处理器(例如CPU)和加速器(例如GPU、NPU)共同执行。请参见图2,图2是AI模型推理的架构示意图。在图2所示的AI模型推理的架构中,应用处理器和加速器是构成AI模型推理的主要成分,逻辑上它们可以分为对AI模型的划分和模型推理任务执行两部分,应用处理器负责完成对AI模型的划分,通过应用处理器中的用户态驱动层(例如Runtime)指示驱动模块(例如NPU driver)驱动加速器,加速器负责通过控制模块控制运算逻辑单元对模型推理任务进行执行。在图2中,由应用处理器(例如CPU)将AI模型下发到加速器(例如GPU、NPU)执行,等待加速器执行完成后,由应用处理器读取加速器的处理结果。也即,应用处理器将AI模型拆成可以由加速器进行处理的任务流,然后下发给加速器处理。当加速器执行某个任务流中的任务出错时,加速器需要将错误返回给应用处理器。
通常情况下,由于AI模型过于复杂,涉及到的运算节点及逻辑单元过多,应用处理器一般不提供整个AI模型的应用程序接口(Application Programming Interface,API)给加速器,应用处理器需要将AI模型分拆成可以由加速器进行处理的任务流(stream)。其中,一个任务流中可包括一个或者多个模型推理任务,模型推理任务的类型可以包括task和event等任务类型。之后,应用处理器通过调用stream、task以及event等API,通过stream、task以及event等API将各任务流的模型推理任务下发给加速器处理。在本申请中,应用处理器可以调用会话创建接口,在应用处理器中创建模型推理会话,在模型推理会话中将AI模型分拆成的多个任务流(stream),并在任务流中加入加速器可以进行处理的会话标识任务(例如会话启动任务),对任务流所属的模型推理会话进行标识,加速器可得知在会话启动任务之后下发的目标任务流的模型推理任务属于目标模型推理会话并进行处理。即应用处理器在AI模型层将AI模型进程拆分,并通过用户态驱动层将模型推理会话中各任务流的模型推理任务下发给加速器执行。加速器接收到模型推理会话中各任务流的模型推理任务后,通过控制模块调用运算逻辑单元执行模型推理任务,并通过运算逻辑单元将模型推理任务的执行结果反馈给控制模块,由控制模块向应用处理器反馈模型推理会话的执行结果。
参见图3,图3是本申请提供的模型推理异常处理方法的流程图。如图3所示,本申请提供的模型推理异常处理方法包括如下步骤:
S11,AI模型层创建目标模型推理会话,将AI模型拆分为多个目标任务流,并将每个目标任务流划分为多个模型推理任务。
在一些可行的实施方式中,应用处理器可以通过AI模型层调用创建会话接口(例如执行Create Session语句)创建模型推理会话(例如session),如目标模型推理会话,在该模型推理会话中,应用处理器可通过AI模型层将一个AI模型划分为多个任务流(例如任务流0和任务流1),并将每个任务流分别划分为多个模型推理任务。请一并参见图4,图4是本申请提供的生成模型推理会话的流程图。如图4所示,任务流0中包含n个task类型的模型推理任务,即模型推理任务01、模型推理任务02、……、以及模型推理任务0n,其中,n为大于2的正整数。任务流1中也包含多个task类型的模型推理任务,即模型推理任务11、模型推理任务12以及模型推理任务13等模型推理任务。其中,从模型推理任务01指向模型推理任务12的箭头表示event类型的模型推理任务,即模型推理任务12需要模型推理任务11的输入,结合模型推理任务01的输出作为输入进行模型推理。可选地,该模型推理会话中除任务流0之外的所有任务流可以执行一个event类型的模型推理任务,将该任务流中最后一个task类型的模型推理任务的结果输出至模型推理任务0n。由任务流0中的模型推理任务0n执行最后的计算并输出,结束该模型推理会话,也即完成了将一个AI模型划分为同属于一个模型推理会话的多个任务流。
S12,AI模型层通知用户态驱动层下发目标模型推理会话中各目标任务流的模型推理任务。
在一些可行的实施方式中,应用处理器可以通过AI模型层通知用户态驱动层(即Runtime)调用session、stream、task以及event的API,通过驱动模块(即NPU driver)将目标模型推理会话中的各目标任务流中的模型推理任务下发给加速器中的控制模块。
S13,用户态驱动层下发目标模型推理会话中各目标任务流的模型推理任务。
S14,控制模块接收目标模型推理会话中各目标任务流的模型推理任务。
在一些可行的实施方式中,应用处理器可通过用户态驱动层通过调用会话启动接口(例如执行Session.start语句)标识session开始下发,并且可以向加速器下发会话启动任务(例如session start task)。这里,应用处理器通过用户态驱动层向加速器下发任务时,可在每一个目标任务流中的第一个模型推理任务下发之前向加速器下发会话启动任务,用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。请一并参见图5,图5是本申请提供的接收模型推理会话的流程图。应用处理器可在下发任务流0的模型推理任务01之前,向加速器下发一个会话启动任务,然后下发任务流0中的所有模型推理任务(包括task类型的模型推理任务,以及event类型的模型记录任务和模型等待任务)。在下发任务流1的模型推理任务11之前,再次下发一个会话启动任务,然后下发任务流1中的所有模型推理任务(包括task类型的模型推理任务,以及event类型的模型记录任务和模型等待任务)。也即,应用处理器将目标模型推理会话中各目标任务流的各模型推理任务下发给加速器。在目标模型推理会话中的所有任务流中的所有模型推理任务都下发完毕之后,应用处理器可通过用户态驱动层调用会话结束接口(例如执行Session.end语句),通过调用会话结束接口向加速器下发会话结束任务(例如session endtask)。这里,应用处理器可在每一个目标任务流中的最后一个模型推理任务下发之后向加速器下发会话结束任务,用于指示加速器目标任务流在目标模型推理会话中执行结束。
S15,控制模块调用运算逻辑单元执行模型推理任务。
S16,运算逻辑单元执行模型推理任务。
S17,运算逻辑单元反馈推理任务执行结果。
在一些可行的实施方式中,应用处理器将目标模型推理会话中的所有模型推理任务下发完毕后,将等待加速器执行。加速器中的控制模块通过调用运算逻辑单元执行目标模型推理会话中的所有模型推理任务。也即,加速器接收并执行应用处理器下发的目标模型推理会话的各模型推理任务。
在一些可行的实施方式中,加速器中存在多个模型推理会话的任务流的模型推理任务,加速器可以通过控制模块对运算逻辑单元进行调度,优先执行优先级较高的模型推理会话中的任务流的各模型推理任务,直至该模型推理会话执行完毕。
S18,用户态驱动层下发同步模型推理任务。
S19,控制模块反馈目标模型推理会话的执行结果。
在一些可行的实施方式中,在加速器执行完目标模型推理会话中的所有模型推理任务之后,用户态驱动层可以通过调用同步模型推理接口(例如执行Session.sync语句)向加速器下发同步模型推理任务。同步模型推理任务用于指示加速器反馈目标模型推理会话的执行结果。其中,执行结果中包括模型推理会话的状态信息以及结果数据信息。状态信息可以包括模型推理会话执行正常或者模型推理会话执行异常。也即,应用处理器可以根据加速器的反馈确定目标模型推理会话异常。
在本申请中,应用处理器可以指示各任务流与所属模型推理会话的关联,简化加速器中对任务流的调度过程。同时可以通过下发会话启动任务和会话终止任务,指示加速器目标模型推理会话中目标任务流包含的模型推理任务的执行情况。通过指示加速器执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
在一些可行的实施方式中,应用处理器可在向加速器下发同步模型推理任务的同时,暂停应用处理器中模型推理任务的处理进程。应用处理器可在加速器反馈同步模型推理会话的执行结果的同时,继续应用处理器中模型推理任务的处理进程。可以在与加速器反馈结果之前暂时阻塞应用处理器中模型推理任务的处理进程,从而减少模型推理任务对应用处理器中计算资源的浪费,提高模型推理效率。
在一些可行的实施方式中,如在步骤S16中,加速器通过运算逻辑单元执行模型推理任务的过程中,以及如在步骤S13中,模型推理任务在被应用处理器通过用户态驱动层下发给加速器的过程中都可能会出现异常,下面将结合图6对图3中步骤S15-S17以及S19进行实例说明。参见图6,图6是本申请提供的执行模型推理会话的流程图。也即,当执行目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,加速器按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务。如图6所示,本申请提供的模型推理异常处理方法中,加速器执行模型推理会话的流程包括如下步骤:
S220,执行应用处理器下发的目标模型推理会话的各模型推理任务。
在一些可行的实施方式中,加速器中的运算逻辑单元可以在执行应用处理器下发的目标模型推理会话的各模型推理任务之前,执行应用处理器下发的会话启动任务,并将接收到的目标任务流的模型推理任务添加至目标会话队列,以将添加至目标会话队列中的目标任务流的所有模型推理任务标记为目标模型推理会话的模型推理任务。
在一些可行的实施方式中,加速器可以通过控制模块对运算逻辑单元进行调用,从而将加速器中接收到的多个模型推理会话(包括任务流以及任务流中的模型推理任务)按照优先级进行处理。由于加速器中记录了各任务流所属的模型推理会话,即使同时对不同模型推理会话中的任务流进行调度并执行其中的模型推理任务,也不会造成混乱。可以进一步提高加速器的处理性能。
S221,判断模型推理任务是否出现异常。
在一些可行的实施方式中,模型推理任务的异常可以包括:内存ECC异常、代码逻辑错误、输入数据错误(例如数据除以0、数据溢出)、加速器计算单元故障等异常。这些异常可以出现在加速器的执行过程中,也可以出现在应用处理器将模型推理任务下发至加速器的过程中,但都会在加速器执行的过程中被判断为异常。
当加速器中的运算逻辑单元执行目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,加速器将通过控制模块调整为异常处理模式。同时加速器可以将目标模型推理会话的信息标注为异常,并按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务,即步骤S222-S224。其中,剩余模型推理任务为在该异常模型推理任务之后执行的所有模型推理任务。
S222,判断剩余模型推理任务中的各模型推理任务类型是否为task。
在一些可行的实施方式中,若模型推理任务的任务类型为task,加速器中的运算逻辑单元则执行步骤S223。若模型推理任务的任务类型不为task(例如event),加速器中的运算逻辑单元则执行步骤S224。
S223,将模型推理任务进行丢弃处理。
S224,正常执行该模型推理任务。
在一些可行的实施方式中,由于加速器无法针对某一个或某几个任务流进行复位,当模型推理任务发生异常,继续执行模型推理任务会造成很大的计算资源浪费。加速器中的运算逻辑单元可将任务类型为task的模型推理任务进行丢弃处理,并执行各模型推理任务中任务类型不为task的模型推理任务,例如类型为event的模型推理任务。因为此种处理模式,避免计算task类型的模型推理任务,同时正常执行event类型的模型推理任务,因为保留了所有任务流之间数据交互的模型推理任务,即event类型的模型推理任务,所以在加速器中对模型推理任务的执行过程与正常的执行过程一致,不会在加速器中产生额外的执行错误,可以快速地将目标模型推理会话中包含的所有模型推理任务执行完成,从而减少模型推理任务异常造成的计算资源浪费,提高模型推理效率。
在一些可行的实施方式中,加速器可以在执行应用处理器下发的目标模型推理会话的各模型推理任务之后,执行应用处理器下发的会话结束任务。其中,会话结束任务可下发在每一个目标任务流的终止位置,用于指示加速器目标任务流在目标模型推理会话中执行结束。加速器可将目标任务流中的模型推理任务从目标会话队列中删除,从而记录目标任务流包含的模型推理任务在目标模型推理会话中执行结束。
S225,向应用处理器反馈目标模型推理会话执行结果。
在一些可行的实施方式中,加速器中的控制模块可以执行同步模型推理任务以向应用处理器反馈目标模型推理会话的执行结果。其中,执行结果中包括模型推理会话的状态信息以及结果数据信息,状态信息用于向应用处理器反馈目标模型推理会话异常。也即,加速器向应用处理器反馈目标模型推理会话异常。
在一些可行的实施方式中,加速器向应用处理器反馈目标模型推理会话执行结果可以只包括目标模型推理会话异常状态信息,而不包括结果数据信息。可选的,加速器向应用处理器反馈目标模型推理会话执行结果可以只包括目标模型推理会话的结果数据信息,而不包括正常状态信息。
在本申请中,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务,当某一个模型推理会话(比如目标模型推理会话)中的其中一个模型推理任务出现异常时,加速器可对任务类型为task的模型推理任务和其他任务进行区分处理,可快速地将目标模型推理会话中包含的所有模型推理任务执行完成的同时可减少模型推理任务异常造成的计算资源浪费,提高模型推理效率。同时加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
本申请实施例还提供了一种模型推理异常处理装置,请参考图7,图7是本申请实施例提供的模型推理异常处理装置的一结构示意图。该模型推理异常处理装置700可以为加速器,包括:
会话处理模块710,用于接收并执行应用处理器下发的目标模型推理会话的各模型推理任务。这里,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。这里,加速器可以接收应用处理器下发的多个模型推理会话中的任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,目标任务流由多个加速器可以执行的模型推理任务构成。
异常处理模块720,用于当会话处理模块710执行目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,按照异常处理模式执行目标模型推理会话中包含的剩余模型推理任务。这里,异常处理模式是一种节省加速器计算资源的模型推理任务执行模式。这里,剩余模型推理任务为在任一模型推理任务之后执行的所有模型推理任务。
在一些可行的实施方式中,异常处理模块720还用于:确定目标模型推理会话中包含的剩余模型推理任务中各模型推理任务的任务类型,并将任务类型为task的模型推理任务进行丢弃处理,并执行各模型推理任务中任务类型不为task的模型推理任务,例如类型为event的模型推理任务。这里,模型推理任务的任务类型至少包括task或者event两种。由于加速器无法针对某一个或某几个任务流进行复位,当模型推理任务发生异常,继续执行模型推理任务会造成很大的计算资源浪费,基于异常处理模块720可基于模型推理任务的类型进行区分处理,可快速地将目标模型推理会话中包含的所有模型推理任务执行完成,从而减少模型推理任务异常造成的计算资源浪费,提高模型推理效率。
异常反馈模块730,用于向应用处理器反馈目标模型推理会话异常。
在一些可行的实施方式中,异常反馈模块730还用于:从应用处理器接收并执行同步模型推理任务以向应用处理器反馈目标模型推理会话的执行结果。这里,执行结果中包括模型推理会话的状态信息以及结果数据信息,状态信息用于指示目标模型推理会话异常。加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
在一些可行的实施方式中,模型推理异常处理装置可通过加速器中的会话处理模块710、异常处理模块720以及异常反馈模块730执行上述模型推理异常处理方法中加速器所执行的操作,如上述模型推理会话异常处理方法的流程中步骤S221-S225所提供的实现方式,下面不再赘述。
在本申请中,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务,当目标模型推理会话中的其中一个模型推理任务出现异常时,可按照异常处理模式执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时加速器可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,反馈目标模型推理会话异常给应用处理器,提高模型推理效率,适用性高。
在一些可行的实施方式中,该模型推理异常处理装置700还包括:
启动任务处理模块740,用于执行应用处理器下发的会话启动任务。这里,会话启动任务可下发在每一个目标任务流的起始位置,用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。启动任务处理模块740可将接收到的目标任务流的模型推理任务添加至目标会话队列,从而对接收到的模型推理任务所属的目标任务流和该目标任务流所属的目标模型推理会话进行标记。可以简化加速器的执行过程,节省加速器确定推理任务所属目标任务流以及所属目标模型推理会话的时间,从而提高处理效率。
在一些可行的实施方式中,模型推理异常处理装置可通过加速器中的启动任务处理模块740执行上述模型推理异常处理方法中步骤S14所提供的实现方式,下面不再赘述。
在一些可行的实施方式中,该模型推理异常处理装置700还包括:
结束任务处理模块750,用于执行应用处理器下发的会话结束任务,并将目标模型推理会话的模型推理任务从目标会话队列中删除。这里,会话结束任务可下发在每一个目标任务流的终止位置,用于指示加速器目标任务流在目标模型推理会话中执行结束。加速器可将目标任务流中的模型推理任务从目标会话队列中删除,从而记录目标任务流包含的模型推理任务在目标模型推理会话中执行结束。可以提示加速器在目标模型推理回话中的模型推理任务执行结束后释放计算资源,提高模型推理效率。
在一些可行的实施方式中,模型推理异常处理装置可通过加速器中的结束任务处理模块750执行上述模型推理异常处理方法中步骤S14所提供的实现方式,下面不再赘述。
在本申请中,该模型推理异常处理装置可通过执行应用处理器下发的会话启动任务以及会话结束任务将目标任务流中的模型推理任务加入目标队列,更简单地可以标记任务流所属的模型推理会话,并以此执行其中的模型推理任务。可按照异常处理模式执行目标模型推理会话中剩余的模型推理任务,提高模型推理效率,适用性高。
本申请实施例还提供了另一种模型推理异常处理装置,请参考图8,图8是本申请实施例提供的模型推理异常处理装置的另一结构示意图。该模型推理异常处理装置800可以为应用处理器,包括:
会话创建模块810,用于创建目标模型推理会话,目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务。这里,应用处理器可以向加速器下发多个模型推理会话中的任务流中的模型推理任务,加速器可以区分不同模型推理会话中的各任务流所包含的模型推理任务。这里,应用处理器可分别将每个目标任务流划分为多个模型推理任务。
启动任务下发模块820,用于向加速器下发会话启动任务。这里,会话启动任务可以用于指示加速器在会话启动任务之后下发的目标任务流的各模型推理任务属于目标模型推理会话。这里,会话启动任务可下发在加速器中每一个目标任务流的起始位置。这里,会话启动任务可以用于指示在会话启动任务之后下发的模型推理任务属于目标模型推理会话中的某个任务流。
会话下发模块830,用于将目标模型推理会话中各目标任务流的各模型推理任务下发给加速器。这里,模型推理任务的类型至少包括task和event。
结束任务下发模块840,用于向加速器下发会话结束任务。这里,会话结束任务可用于指示目标模型推理会话中目标任务流所包含的模型推理任务执行结束。这里,会话结束任务可下发在加速器中每一个目标任务流的终止位置。这里,会话结束任务可用于指示目标模型推理会话中一个目标任务流所包含的模型推理任务结束。
异常确定模块850,用于根据加速器的反馈确定目标模型推理会话异常。这里,应用处理器可根据状态信息确定目标模型推理会话异常。可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
在一些可行的实施方式中,模型推理异常处理装置可通过会话创建模块810、启动任务下发模块820、会话下发模块830、结束任务下发模块840以及异常确定模块850执行上述模型推理异常处理方法中各步骤所提供的实现方式,下面不再赘述。
在一些可行的实施方式中,该模型推理异常处理装置800还包括:同步任务下发模块,用于向加速器下发同步模型推理任务,同步模型推理任务用于指示加速器反馈目标模型推理会话的执行结果。这里,执行结果中包括模型推理会话的状态信息以及结果数据信息。这里,状态信息用于指示目标模型推理会话异常。
在一些可行的实施方式中,模型推理异常处理装置可通过同步任务下发模块执行上述模型推理异常处理方法中步骤S18所提供的实现方式,下面不再赘述。
在一些可行的实施方式中,该装置800还包括:
进程阻塞模块,用于在同步任务下发模块向加速器下发同步模型推理任务的同时暂停模型推理应用处理器中模型推理任务的处理进程;在加速器反馈同步模型推理会话的执行结果的同时继续模型推理应用处理器中模型推理任务的处理进程。可以在与加速器反馈结果之前暂时阻塞应用处理器中模型推理任务的处理进程,从而减少模型推理任务对应用处理器中计算资源的浪费,提高模型推理效率。
在一些可行的实施方式中,模型推理异常处理装置可通过进程阻塞模块执行上述模型推理异常处理方法中步骤S18所提供的实现方式,下面不再赘述。
在本申请中,应用处理器可以指示各任务流与所属模型推理会话的关联,简化加速器中对任务流的调度过程。同时可以通过下发会话启动任务和会话终止任务,指示加速器目标模型推理会话中目标任务流包含的模型推理任务的执行情况。通过指示加速器执行目标模型推理会话中剩余的模型推理任务,从而减少模型推理任务异常造成的计算资源浪费。同时可以在目标模型推理会话中任一目标任务流中的模型推理任务出现异常时,确定目标模型推理会话异常,提高模型推理效率,适用性高。
请参见图9,图9是本申请实施例提供的加速器的一结构示意图。如图9所示,本申请实施例提供的加速器包括处理器1101、存储器1102、反射器1103、接收器1104、网络接口1107等。其中,上述处理器1101、发射器1103和接收器1104(发射器1103和接收器1104也可集成为收发器)等功能模块可通过耦合器1105与天线1106等设备进行耦合。处理器1101可结合耦合的各个功能模块执行图3、图5和图6中各个实施例所描述的加速器所执行的实现方式,具体可参见上述各个实施例提供的实现方式,在此不做限制。这里“耦合”是指两个部件彼此直接或间接地结合。这种结合可以是固定的或可移动性的,这种结合可以允许流动液、电、电信号或其它类型信号在两个部件之间通信。
其中,上述存储器1102用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1102包括但不限于RAM、ROM、EPROM、或CD-ROM等,在此不做限制。此外,上述存储器1102也可以是处理器1101中的存储器,在此不做限制。
存储器1102存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
上述处理器1101控制加速器的操作。上述本申请实施例提供的图3、图5和图6中各个实施例揭示的加速器的方法可以应用于处理器1101中,或者由处理器1101实现。处理器1101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器102中的信息,结合其硬件执行图3、图5和图6中各个实施例所描述的加速器的方法步骤。网络接口1107可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等,在此不做限制。
请参见图10,图10是本申请实施例提供的应用处理器的结构示意图。如图10所示,本申请实施例提供的应用处理器包括处理器1201、存储器1202、用户接口1203、通信接口1204、耦合器1205和天线1206等功能模块。上述存储器1202用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1202包括但不限于RAM、ROM、EPROM、或CD-ROM等,在此不做限制。此外,上述存储器1202也可以是处理器1201中的存储器,在此不做限制。
存储器1202存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
上述处理器1201控制应用处理器的操作,处理器1201可以是一个或多个CPU。上述本申请实施例提供的图3和图4中各个实施例揭示的应用处理器的方法可以应用于处理器1201中,或者由处理器1201实现。处理器1201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1202,处理器1201读取存储器1202中的信息,结合其硬件执行图3和图4中各个实施例所描述的应用处理器的方法步骤。
上述应用处理器的用户接口1203主要用于为用户提供输入的接口,获取用户输入的数据。用户接口1203可包括多媒体输入和/或输出设备12031、摄像头12032以及显示器12033等等,在此不做限制。用户接口1203可以是与应用处理器的用户进行交互的信息输入和/或输出模块,可以作为应用处理器的收发器,例如手机等终端的麦克风和/或喇叭,前置和/或后置摄像头以及触控屏等,在此不做限制。可选的,用户接口1203还可以包括标准的有线接口、无线接口等,在此不做限制。
应用处理器的处理器1201可通过一个或者多个通信接口1204和耦合器1205与天线1206等设备进行耦合,结合其他功能模块执行图3和图4中各个实施例所描述的应用处理器所执行的实现方式,具体可参见上述各个实施例提供的实现方式,在此不做限制。这里“耦合”是指两个部件彼此直接或间接地结合。这种结合可以是固定的或可移动性的,这种结合可以允许流动液、电、电信号或其它类型信号在两个部件之间通信。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在加速器上运行时,使得加速器执行上述图3、图5和图6中各个实施例所描述的加速器所执行的实现方式。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在应用处理器上运行时,使得应用处理器执行上述图3和图4中各个实施例所描述的应用处理器所执行的实现方式。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在加速器上运行时,使得加速器执行上述图3、图5和图6中各个实施例所描述的加速器所执行的实现方式,具体可参见上述各个实施例提供的实现方式,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在应用处理器上运行时,使得应用处理器执行上述图3和图4中各个实施例所描述的应用处理器所执行的实现方式,具体可参见上述各个实施例提供的实现方式,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种模型推理异常处理方法,其特征在于,所述方法包括:
加速器接收并执行应用处理器下发的目标模型推理会话的各模型推理任务,所述目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务;
当执行所述目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,所述加速器按照异常处理模式执行所述目标模型推理会话中包含的剩余模型推理任务,其中,所述剩余模型推理任务为在所述任一模型推理任务之后执行的所有模型推理任务;
所述加速器向所述应用处理器反馈所述目标模型推理会话异常。
2.根据权利要求1所述的方法,其特征在于,所述加速器执行应用处理器下发的目标模型推理会话的各模型推理任务之前,所述方法还包括:
所述加速器执行应用处理器下发的会话启动任务,并将接收到的目标任务流的模型推理任务添加至目标会话队列,以将添加至所述目标会话队列中的目标任务流的所有模型推理任务标记为目标模型推理会话的模型推理任务。
3.根据权利要求2所述的方法,其特征在于,所述加速器执行应用处理器下发的目标模型推理会话的各模型推理任务之后,所述方法还包括;
所述加速器执行所述应用处理器下发的会话结束任务,并将所述目标模型推理会话的模型推理任务从所述目标会话队列中删除。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述加速器按照异常处理模式执行所述目标模型推理会话中包含的剩余模型推理任务包括:
所述加速器确定所述目标模型推理会话中包含的剩余模型推理任务中各模型推理任务的任务类型;
所述加速器将所述各模型推理任务中任务类型为task的模型推理任务进行丢弃处理,并执行所述各模型推理任务中任务类型不为task的模型推理任务。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述加速器向所述应用处理器反馈所述目标模型推理会话异常包括:
所述加速器从所述应用处理器接收并执行同步模型推理任务以向所述应用处理器反馈所述目标模型推理会话的执行结果;
其中,所述执行结果中包括所述模型推理会话的状态信息以及结果数据信息,所述状态信息用于向所述应用处理器反馈所述目标模型推理会话异常。
6.一种模型推理异常处理方法,其特征在于,所述方法包括:
应用处理器创建目标模型推理会话,所述目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务;
所述应用处理器向所述加速器下发会话启动任务,所述会话启动任务用于指示在所述会话启动任务之后下发的任务流的模型推理任务为所述目标模型推理会话的模型推理任务;
所述应用处理器将所述目标模型推理会话中各目标任务流的各模型推理任务下发给所述加速器;
所述应用处理器向所述加速器下发会话结束任务,所述会话结束任务用于指示所述目标模型推理会话中目标任务流所包含的模型推理任务结束;
所述应用处理器根据所述加速器的反馈确定所述目标模型推理会话异常。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述应用处理器向所述加速器下发同步模型推理任务,所述同步模型推理任务用于指示所述加速器反馈所述目标模型推理会话的执行结果;
其中,所述执行结果中包括所述模型推理会话的状态信息以及结果数据信息,所述状态信息用于向所述应用处理器反馈所述目标模型推理会话异常;
所述应用处理器根据所述加速器的反馈确定所述目标模型推理会话异常包括:
所述应用处理器根据所述状态信息确定所述目标模型推理会话异常。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述应用处理器在向所述加速器下发所述同步模型推理任务的同时暂停所述应用处理器中模型推理任务的处理进程;
所述应用处理器在所述加速器反馈所述同步模型推理会话的执行结果的同时继续所述应用处理器中模型推理任务的处理进程。
9.一种模型推理异常处理装置,其特征在于,所述模型推理异常处理装置为加速器,所述装置包括:
会话处理模块,用于接收并执行应用处理器下发的目标模型推理会话的各模型推理任务,所述目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务;
异常处理模块,用于当所述会话处理模块执行所述目标模型推理会话中任一目标任务流中的任一模型推理任务出现异常时,按照异常处理模式执行所述目标模型推理会话中包含的剩余模型推理任务,其中,所述剩余模型推理任务为在所述任一模型推理任务之后执行的所有模型推理任务;
异常反馈模块,用于向所述应用处理器反馈所述目标模型推理会话异常。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
启动任务处理模块,用于执行应用处理器下发的会话启动任务,并将接收到的目标任务流的模型推理任务添加至目标会话队列,以将添加至所述目标会话队列中的目标任务流的所有模型推理任务标记为目标模型推理会话的模型推理任务。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
结束任务处理模块,用于执行所述应用处理器下发的会话结束任务,并将所述目标模型推理会话的模型推理任务从所述目标会话队列中删除。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述异常处理模块还用于:
确定所述目标模型推理会话中包含的剩余模型推理任务中各模型推理任务的任务类型,将所述各模型推理任务中任务类型为task的模型推理任务进行丢弃处理,并执行所述各模型推理任务中任务类型不为task的模型推理任务。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述异常反馈模块还用于:
从所述应用处理器接收并执行同步模型推理任务以向所述应用处理器反馈所述目标模型推理会话的执行结果;
其中,所述执行结果中包括所述模型推理会话的状态信息以及结果数据信息,所述状态信息用于指示所述目标模型推理会话异常。
14.一种模型推理异常处理装置,其特征在于,所述模型推理异常处理装置为应用处理器,所述装置包括:
会话创建模块,用于创建目标模型推理会话,所述目标模型推理会话中包含多个目标任务流,一个目标任务流包含多个模型推理任务;
启动任务下发模块,用于向所述加速器下发会话启动任务,所述会话启动任务用于指示在所述会话启动任务之后下发的任务流的模型推理任务为所述目标模型推理会话的模型推理任务;
会话下发模块,用于将所述目标模型推理会话中各目标任务流的各模型推理任务下发给所述加速器;
结束任务下发模块,用于向所述加速器下发会话结束任务,所述会话结束任务用于指示所述目标模型推理会话中目标任务流所包含的模型推理任务结束;
异常确定模块,用于根据所述加速器的反馈确定所述目标模型推理会话异常。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
同步任务下发模块,用于向所述加速器下发同步模型推理任务,所述同步模型推理任务用于指示所述加速器反馈所述目标模型推理会话的执行结果;
其中,所述执行结果中包括所述模型推理会话的状态信息以及结果数据信息,所述状态信息用于指示所述目标模型推理会话异常;
所述异常确定模块,用于根据所述状态信息确定所述目标模型推理会话异常。
16.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:
进程阻塞模块,用于在所述同步任务下发模块向所述加速器下发所述同步模型推理任务的同时暂停所述模型推理应用处理器中模型推理任务的处理进程,在所述加速器反馈所述同步模型推理会话的执行结果的同时继续所述模型推理应用处理器中模型推理任务的处理进程。
17.一种加速器,其特征在于,所述加速器包括:存储器、处理器和收发器,所述存储器用于存储指令,所述处理器和收发器用于与所述存储器耦合,读取并运行所述存储器中的指令,以实现如权利要求1-5中任一项所述的方法。
18.一种应用处理器,其特征在于,所述应用处理器包括:存储器、处理器和收发器,所述存储器用于存储指令,所述处理器和收发器用于与所述存储器耦合,读取并运行所述存储器中的指令,以实现如权利要求6-8中任一项所述的方法。
19.一种包含指令的计算机程序产品,其特征在于,所述计算机程序产品在加速器上运行时,使得所述加速器执行如权利要求1-5任一项所述的方法。
20.一种包含指令的计算机程序产品,其特征在于,所述计算机程序产品在应用处理器上运行时,使得所述应用处理器执行如权利要求6-8任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储程序指令,当所述程序指令运行时,使得如权利要求1-5任一项、或者权利要求6-8任一项所述的方法被执行。
CN202080004963.2A 2020-10-27 2020-10-27 模型推理异常处理方法及装置 Active CN112689827B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/123896 WO2022087811A1 (zh) 2020-10-27 2020-10-27 模型推理异常处理方法及装置

Publications (2)

Publication Number Publication Date
CN112689827A true CN112689827A (zh) 2021-04-20
CN112689827B CN112689827B (zh) 2022-06-28

Family

ID=75457717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004963.2A Active CN112689827B (zh) 2020-10-27 2020-10-27 模型推理异常处理方法及装置

Country Status (2)

Country Link
CN (1) CN112689827B (zh)
WO (1) WO2022087811A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI832279B (zh) * 2022-06-07 2024-02-11 宏碁股份有限公司 人工智慧模型運算加速系統及人工智慧模型運算加速方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073918A (zh) * 2010-11-19 2011-05-25 南京大学 工作流执行中基于服务质量的异常处理方法
CN102236578A (zh) * 2010-05-07 2011-11-09 微软公司 分布式工作流执行
CN102467415A (zh) * 2010-11-03 2012-05-23 大唐移动通信设备有限公司 一种业务面任务处理方法及设备
CN102929709A (zh) * 2011-08-08 2013-02-13 阿里巴巴集团控股有限公司 任务流异常的处理方法及装置
CN103150226A (zh) * 2013-04-01 2013-06-12 山东鲁能软件技术有限公司 计算机模型异常转储与恢复***及其转储与恢复方法
CN103338144A (zh) * 2013-05-30 2013-10-02 华为软件技术有限公司 一种会话数据同步方法和装置
CN105493049A (zh) * 2013-08-22 2016-04-13 甲骨文国际公司 针对基于云的调试
CN106990943A (zh) * 2017-03-30 2017-07-28 微梦创科网络科技(中国)有限公司 并行任务处理方法和装置
US20180060122A1 (en) * 2016-08-24 2018-03-01 Clari Inc. Method and system for predicting task completion of a time period based on task completion rates of prior time periods using machine learning
US20180137856A1 (en) * 2016-11-15 2018-05-17 At&T Intellectual Property I, L.P. Asynchronous virtual assistant
CN108235134A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 图片分析方法及装置
CN108845868A (zh) * 2018-04-28 2018-11-20 华为技术有限公司 一种任务下发方法和装置
WO2019218708A1 (zh) * 2018-05-15 2019-11-21 华为技术有限公司 一种任务处理方法及处理装置、计算机***
CN111078448A (zh) * 2019-08-06 2020-04-28 华为技术有限公司 一种处理音频异常的方法及电子设备
CN111190716A (zh) * 2019-12-31 2020-05-22 清华大学 基于中断的神经网络加速器多任务调度方法
CN111258744A (zh) * 2018-11-30 2020-06-09 中兴通讯股份有限公司 一种基于异构计算的任务处理方法及软硬件框架***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11694066B2 (en) * 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
US10698766B2 (en) * 2018-04-18 2020-06-30 EMC IP Holding Company LLC Optimization of checkpoint operations for deep learning computing

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236578A (zh) * 2010-05-07 2011-11-09 微软公司 分布式工作流执行
CN102467415A (zh) * 2010-11-03 2012-05-23 大唐移动通信设备有限公司 一种业务面任务处理方法及设备
CN102073918A (zh) * 2010-11-19 2011-05-25 南京大学 工作流执行中基于服务质量的异常处理方法
CN102929709A (zh) * 2011-08-08 2013-02-13 阿里巴巴集团控股有限公司 任务流异常的处理方法及装置
CN103150226A (zh) * 2013-04-01 2013-06-12 山东鲁能软件技术有限公司 计算机模型异常转储与恢复***及其转储与恢复方法
CN103338144A (zh) * 2013-05-30 2013-10-02 华为软件技术有限公司 一种会话数据同步方法和装置
CN105493049A (zh) * 2013-08-22 2016-04-13 甲骨文国际公司 针对基于云的调试
US20180060122A1 (en) * 2016-08-24 2018-03-01 Clari Inc. Method and system for predicting task completion of a time period based on task completion rates of prior time periods using machine learning
US20180137856A1 (en) * 2016-11-15 2018-05-17 At&T Intellectual Property I, L.P. Asynchronous virtual assistant
CN108235134A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 图片分析方法及装置
CN106990943A (zh) * 2017-03-30 2017-07-28 微梦创科网络科技(中国)有限公司 并行任务处理方法和装置
CN108845868A (zh) * 2018-04-28 2018-11-20 华为技术有限公司 一种任务下发方法和装置
WO2019218708A1 (zh) * 2018-05-15 2019-11-21 华为技术有限公司 一种任务处理方法及处理装置、计算机***
CN111258744A (zh) * 2018-11-30 2020-06-09 中兴通讯股份有限公司 一种基于异构计算的任务处理方法及软硬件框架***
CN111078448A (zh) * 2019-08-06 2020-04-28 华为技术有限公司 一种处理音频异常的方法及电子设备
CN111190716A (zh) * 2019-12-31 2020-05-22 清华大学 基于中断的神经网络加速器多任务调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. E. EICHENBERGER 等: "Hybrid CPU/GPU tasks optimized for concurrency in OpenMP", 《IBM JOURNAL OF RESEARCH AND DEVELOPMENT》 *
PENG ZHANG 等: "Auto-tuning Streamed Applications on Intel Xeon Phi", 《2018 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS)》 *
王娟娟 等: "基于图模型的自动驾驶推理任务调度", 《计算机研究与发展》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI832279B (zh) * 2022-06-07 2024-02-11 宏碁股份有限公司 人工智慧模型運算加速系統及人工智慧模型運算加速方法

Also Published As

Publication number Publication date
WO2022087811A1 (zh) 2022-05-05
CN112689827B (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
US11188380B2 (en) Method and apparatus for processing task in smart device
US20060200738A1 (en) System and method for modifying a mobile device application
CN112784989B (zh) 推理***、推理方法、电子设备及计算机存储介质
US9396096B2 (en) Android automated cross-application testing device and method
CN108255585B (zh) Sdk异常控制及应用程序运行方法、装置及其设备
CN111061551A (zh) 节点的合并调度方法、装置、设备及存储介质
CN112689827B (zh) 模型推理异常处理方法及装置
WO2019149032A1 (zh) 分布式事务处理方法及装置
CN108829519A (zh) 基于云平台的任务调度方法、云平台及计算机可读存储介质
CN115550354A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN115600676A (zh) 深度学习模型推理方法、装置、设备及存储介质
CN107844363B (zh) 业务事务处理方法、装置、存储介质及设备
CN112559152B (zh) 一种基于异步式编程的分布式任务注册及调度方法和***
CN113254217A (zh) 业务的消息处理方法、装置及电子设备
CN110012003B (zh) 一种云应用抓屏方法和装置
CN110704206B (zh) 一种实时计算方法、计算机存储介质及电子设备
CN110968147B (zh) 定时器创建的方法、装置、电子设备及介质
CN105791514B (zh) 一种应用启动监测方法及装置
CN111431892B (zh) 一种加速器管理架构、方法及加速器接口控制器
CN112988339B (zh) 一种数据管理方法及装置
CN107678737B (zh) 业务处理方法、装置及自助终端设备
CN113126958B (zh) 基于信息流的决策调度定制方法和***
CN114077473A (zh) 通信方法、装置及***
CN107783825A (zh) 移动终端多后台进程启动方法、装置及移动终端
CN115242972B (zh) 一种应用调用摄像头的方法和装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant