掌桥专利:专业的专利平台
掌桥专利
首页

用于融合不同模型的多个层的方法和装置

文献发布时间:2024-04-18 19:59:31


用于融合不同模型的多个层的方法和装置

技术领域

本文描述的实施例大体上涉及人工智能(AI)的领域,并且更具体地涉及融合不同模型的多个层的方法和装置。

背景技术

AI作为一项新技术,近年来被应用于越来越多的场景。为了部署这些AI模型,需要大量的计算资源。为节省成本,越来越多的企业将其AI模型部署在云(Cloud)上或边缘服务器(Edge Servers)上,每服务器的AI工作负载密度是决定AI模型能否被部署用于商用的非常重要的因素。

附图说明

通过阅读以下说明书和所附权利要求并通过参考以下附图,实施例的各种优点对于本领域技术人员将变得明显,在附图中:

图1是示出根据本公开一些实施例的AI模型的不同层中的指令利用率的图示;

图2是示出根据本公开一些实施例的可以应用层融合方法的服务器中的典型推理用例的概况的图示;

图3a是示出根据本公开一些实施例的层融合优化之前的指令利用率的图示;

图3b是示出根据本公开一些实施例的层融合优化之后的指令利用率的图示;

图4是示出根据本公开一些实施例的通过使用层融合装置进行层融合优化之后的指令利用率的概况的图示;

图5是示出根据本公开一些实施例的由量化模型中的卷积层使用的OIhw4i16O4i实施方式的饱和程度的图示;

图6是示出根据本公开一些实施例的针对来自不同模型的两个层的影响因子的图示;

图7是示出根据本公开一些实施例的存储器管理器的操作的图示;

图8是示出根据本公开一些实施例的计算受限情况下的算术强度的图示;

图9是示出根据本公开一些实施例的存储器受限情况下的算术强度的图示;

图10是示出根据本公开一些实施例的层融合优化之前和之后的存储器布局和寄存器利用率的图示;

图11是示出根据本公开一些实施例的使用层融合装置的简化实施方式的改进结果的图示;

图12是示出根据本公开一些实施例的用于融合不同模型的多个层的方法的流程图;以及

图13示出了根据本公开一些实施例的可以实现用于融合不同模型的多个层的方法的示例计算系统的框图。

具体实施方式

将使用本领域技术人员常用的术语来描述说明性实施例的各方面,以将本公开的实质传达给本领域其他技术人员。然而,对于本领域技术人员将明显的是,可以使用所描述方面的各部分来实施许多替代实施例。为了解释的目的,阐述了具体数字、材料和配置,以便提供对说明性实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以在没有具体细节的情况下实施替代实施例。在其他情况下,可能已省略或简化了公知的特征以避免模糊说明性实施例。

此外,各种操作将以最有助于理解说明性实施例的方式被依次描述为多个离散操作;然而,描述的顺序不应被解释为暗示这些操作必然依赖于顺序。具体地,这些操作不需要按照呈现的顺序来执行。

本文中重复使用短语“在实施例中”、“在一个实施例中”和“在一些实施例中”。该短语通常不指代同一实施例;然而,可以指代同一实施例。术语“包括”、“具有”和“包含”是同义的,除非上下文另有说明。短语“A或B”和“A/B”表示“(A)、(B)或(A和B)”。

众所周知,AI模型由很多层组成,例如,卷积层、激活层和池化层等。大多数层都可以利用CPU(例如,Intel CPU)上的AI工作负载的高级指令进行处理以提高性能,例如,向量神经网络指令(VNNI)、块矩阵乘法单元(TMUL)和高级矩阵扩展(AMX)。然而,如图1所示,非常常见的是一个模型的一些层无法充分利用单指令多数据(SIMD)指令,因为此类层的数据布局无法一次完全填充寄存器。这将导致缺乏竞争力的AI工作负载密度性能。因此,需要找到一种方法来提升对CPU计算能力的利用率,以提高各种平台上的AI工作负载密度。

目前,AI推理优化是独立于模型的。这意味着图形优化和指令优化对于AI模型来说是层级的。

对于模型的层级优化没有考虑针对多个模型的优化可能性。因此,可能无法在CPU服务器(例如,Intel CPU服务器)上实现最优指令(例如,SIMD指令)利用率。有时层级优化只能被应用于特定模型,并且一些层可能需要较少的计算资源,因此没有太多空间用于优化。此外,层级优化可能引入重新排序操作开销。

为了解决当运行多个模型时CPU上的指令利用率问题,提出了一种融合不同模型的多个层的新颖的方法。所提出的方法将从不同模型中收集具有低指令利用率的多个层,并利用图形优化器将这些层进行融合。将使用成本函数来决定进行层融合是否有益。通过不同模型的层融合,可以提高整体指令利用率。

本公开的一个方面提供了一种层融合装置,包括:接口电路;处理器电路,耦合到接口电路并且被配置为:搜索来自不同模型的多个层并确定是否执行层融合;响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

本公开的一个方面提供了一种用于融合不同模型的多个层的方法,包括:搜索来自不同模型的多个层并确定是否执行层融合;响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

本公开的一个方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令在由处理器执行时使得处理器执行以下操作:搜索来自不同模型的多个层并确定是否执行层融合;响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

利用所提出的多模型层融合方法,CPU计算资源利用率可被最大化,这可以帮助客户提高其AI工作负载密度,从而降低CPU上的TCO。应理解,该融合来自不同模型的多个层的方案可以用于任何模型,并且很容易部署在客户的生产服务器上。多模型层融合方法对于不同的硬件平台也是可复制的。

典型的服务器为多个用户应用运行不同的推理任务,并且不同的应用具有不同的模型。图2示出了可以应用根据本公开的层融合方法的使用场景。图2示出两个模型,即模型A和模型B,每个模型具有多个层。这些应用可以使用例如英特尔深度学习增强(boost)指令集(例如,VNNI)来加速英特尔服务器上的推理。应理解,根据本公开,指令集不限于英特尔深度学习增强指令集,并且还可以应用任何其他指令集。

英特尔深度学习增强指令(例如,VPDPBUSD)用于加速oneAPI深度神经网络库(oneDNN)中的基元(primitive)。然而,在一些情况下,寄存器不能被充分利用。从图2可以看出,模型A中的卷积基元j的指令利用率为70%,而模型B中的卷积基元k的指令利用率为30%,这表明指令利用率较低。

通常,对于各自具有多个层的多个模型,存储器中的存储区域将被独立地分配用于将在每个模型的每一层中执行的指令。然而,在这种情况下,ZMM寄存器大小通常大于卷积核,这导致VPPDBUSD指令无法被充分利用,如图3a所示。

本公开的基本思想是融合来自不同模型的多个层,然后可以融合来自不同模型的相同指令(例如,相同的SIMD指令)以充分利用寄存器。具体地,将来自不同模型的多个层中的指令融合为融合指令,将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据,并在存储器中为组合输入数据分配连续存储区域。如此操作之后,从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。可以看出在融合之后,用于计算的总存储器大小不会改变,并且总指令数会减少,这将有利于提升整体性能。如图3b所示,在指令融合之后,3个模型中的3个卷积层将共享同一指令和寄存器。

根据本公开,提出了一种层融合装置,用于通过融合来自不同模型的多个层的指令来执行层融合。层融合装置可以在控制器、微控制器或处理器内实现。在一个实施例中,层融合装置实现深度学习(DL)加速器服务,其可以作为守护进程来运行,以处理来自用户应用进程的所有推理请求。为了实现层融合,根据本公开的层融合装置被配置为:搜索来自不同模型的多个层并确定来自不同模型的多个层中的指令是否应被融合;响应于确定来自不同模型的多个层中的指令应被融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

在一些实施例中,层融合装置可以被配置为包含两个组件:图形优化器和存储器管理器,如图4所示。然而,应注意,虽然层融合装置被示出为具有图形优化器和存储器管理器,但这仅是为了更清楚地示出本公开的原理的说明性目的,并且本公开不限于该特定配置。在一些实施例中,图形优化器和存储器管理器两者的功能均由层融合装置单独实现。在一些实施例中,根据实际需要,层熔合装置还可以包含其他组件。

下面将描述图形优化器和存储器管理器的一般设计。

图形优化器

根据一些实施例,图形优化器可以是离线工具,用于在不同模型的每个模型中搜索哪个层可被融合。此外,图形优化器可以配置为具有成本函数来确定其是否将从融合受益。根据一些实施例,提出使用层的饱和程度σ作为第一融合度量,以通过考虑每个层中的指令(例如,SIMD指令)利用率来确定是否执行层融合,饱和程度σ表征SIMD指令实际利用的寄存器的部分与被分配给SIMD指令的全部寄存器的比率。在一些实施例中,饱和程度可以用于指示oneDNN中的基元的效率。饱和程度与平台和层实施方式有关。例如,量化模型中的卷积层使用OIhw4i16O4i实施方式用于oneDNN中的并行化,其可以利用AVX512/VNNI指令集。

图5是示出由量化模型中的卷积层使用的OIhw4i16O4i实施方式的饱和程度的图示,其中底部被虚线包围的点是有效数据。如图5所示,在这种情况下,卷积输入形状为1×1×218×12,内核形状为34×1×19×12,由于内核的输入信道等于1,ZMM寄存器中仅25%的数据有效。因此,这种情况下饱和程度为25%,表明该基元的效率较低。根据一些实施例,饱和程度的预定阈值可以在图形优化器的配置文件中设置,并且图形优化器被配置为基于层中的饱和程度与饱和程度的预定阈值的比较来确定是否执行层融合。在一些实施例中,饱和程度的预定阈值可以设置为50%,并且图形优化器被配置为如果该层中的指令的饱和程度小于饱和程度的预定阈值,则确定执行层融合。根据一些实施例,指令饱和程度高于饱和程度的预定阈值的层可以被过滤掉并且不被融合。应理解,饱和程度的预定阈值可以根据实际需要来设置。

根据一些实施例,还提出使用针对来自不同模型的多个层计算的影响因子

根据一些实施例,可以如下计算将第m模型中的第i层与第n模型中的第j层进行融合的影响因子

其中

根据一些实施例,影响因子

应理解,虽然本公开给出了用于针对来自不同模型的两个层计算影响因子

虽然饱和程度和影响因子可以用作融合度量来确定是否执行层融合,但在一些情况下是不足的。根据一些实施例,还提出使用针对来自不同模型的多个层计算的分数作为第三融合度量,以通过综合考虑饱和程度、影响因子和其他因素来确定是否执行层融合。计算分数的等式如下:

其中,

在一些实施例中,分数的预定阈值可以在图形优化器的配置文件中设置,并且图形优化器被配置为基于针对多个层计算的分数与分数的预定阈值的比较来确定是否执行层融合。在一些实施例中,图形优化器被配置为如果针对多个层计算的分数高于分数的预定阈值,则确定执行层融合。

应理解,虽然本公开描述了利用上述等式来计算分数,但这只是本公开的一个实施例,并且可以根据实际需要采用其他合适的计算分数的方法。

当确定应执行层融合时,将来自不同模型的多个层中的指令融合为融合指令,并将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据。

存储器管理器

在来自不同模型的多个层中的指令被融合为融合指令,并且用于来自不同模型的多个层中的指令的输入数据被组合为组合输入数据之后,存储器管理器为每一层,特别是被融合的层,布置存储器分配。具体地,存储器管理器被配置为确保融合指令从多个进程被馈送到或写入存储器中的连续存储区域。为了满足该要求,存储器管理器在存储器中为融合指令分配连续缓冲池作为共享存储区域,并为进程提供接口来加载用于融合指令的组合输入数据,并存储在执行融合指令的操作之后获得的输出数据。如图7所示,存储器管理器从融合卷积基元为VPPDBUSD指令分配组合输入数据,并且数据加载指令可以仅使用来自存储器管理器进程的虚拟地址。连续存储器缓冲池还可以有助于减少数据缓存未命中。

应理解,全部存储器占用将保持与层融合相同,因为存储器管理器分配的存储器大小与融合之前由单独的用户进程分配的存储器大小相同(不同之处在于存储器管理器为层指令融合分配连续的物理存储器)。基于此,考虑以下情况中的算术强度:

情况1:在计算受限时,层融合提高了计算效率,算术强度可以提升,如图8所示。

情况2:在存储器受限时,指令总数在层融合之后应减少,整体性能将提升,如图9所示。

具体地,在层融合优化的过程中不会产生额外的存储器或其他资源瓶颈。为简单起见,假设模型A和模型B的批量大小等于1,并且模型被量化。如图10中的(a)和图10中的(b)所示,在层融合优化之前,模型A的X层需要ih×iw×ic存储器大小。模型B的Y层需要ih′×iw′×ic′存储器大小。在X层和Y层融合之后,使用的总存储器是相同的。为了减少数据加载和存储缓存未命中,输入数据在融合各层之后被一起组织在连续物理存储器中。如图10中的(c)和图10中的(d)所示,在融合之后,寄存器利用率将提高。

由于图形优化器是离线的,它在运行时不会引入任何存储器开销。

仿真数据

已经进行了简化实施方式以优化利用开放式视觉推理和神经网络优化(OpenVisual Inference&Neural Network Optimization,OpenVINO)运行的客户的一些模型。模型具有若干具有特殊内核大小的卷积层。例如,一些卷积只有一个输入信道,这意味着SIMD指令的利用率具有大的开发来提升。优化进程如以下步骤所示:

步骤1:在图形加载阶段将两个模型组合为组合模型。

步骤2:在图形优化器中分析组合模型。可以发现卷积层的饱和程度约为25%。

步骤3:图形优化器融合组合模型中的卷积。若干卷积将使用同一指令并共享同一寄存器。在融合之后,SIDM指令的利用率将具有很大提升。

步骤4:在图形优化之后推断执行图。

结果显示每服务器的AI工作负载吞吐量提升了约66%。如图11所示,卷积的执行时间具有减少了约50%的提升。

图12是示出根据本公开一些实施例的用于融合不同模型的多个层的方法的流程图。如图12所示,方法1200包括:S1202,搜索来自不同模型的多个层并确定是否执行层融合;S1204,响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;S1206,将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;S1208,在存储器中为组合输入数据分配连续存储区域;S1210,从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及S1212,将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

在一些实施例中,该方法还包括基于第一融合度量来确定是否执行层融合。

在一些实施例中,第一融合度量为指示层中的指令利用率的饱和程度,该饱和程度表征指令实际利用的寄存器的部分与被分配给指令的全部寄存器的比率。

在一些实施例中,该方法还包括基于层中的饱和程度与饱和程度的预定阈值的比较来确定是否执行层融合。

在一些实施例中,其中该方法还包括如果层中的饱和程度高于饱和程度的预定阈值,则滤除该层。

在一些实施例中,该方法还包括基于第二融合度量来确定是否执行层融合。

在一些实施例中,第二融合度量是针对来自不同模型的多个层计算的影响因子,该影响因子指示执行层融合是否会增加将导致性能下降的同步点开销。

在一些实施例中,影响因子通过以下等式计算:

其中,

在一些实施例中,该方法还包括基于针对多个层计算的影响因子与影响因子的预定阈值的比较来确定是否执行层融合。

在一些实施例中,该方法还包括如果针对多个层计算的影响因子高于影响因子的预定阈值,则确定执行层融合。

在一些实施例中,该方法还包括基于第三融合度量来确定是否执行层融合。

在一些实施例中,第三度量是针对来自不同模型的多个层计算的分数,该分数指示在执行层融合之后所能获得的益处。

在一些实施例中,分数通过以下等式计算:

其中,

在一些实施例中,该方法还包括基于针对多个层计算的分数与分数的预定阈值的比较来确定是否执行层融合。

在一些实施例中,该方法还包括如果针对多个层算的层分数高于分数的预定阈值,则确定执行层融合。

在一些实施例中,搜索来自不同模型的层可以通过离线操作来执行。

在一些实施例中,该方法还包括在存储器中为融合指令分配连续缓冲池作为共享存储区域。

在一些实施例中,该方法还包括提供接口以用于加载用于融合指令的组合输入数据,并存储在执行融合指令的操作之后获得的输出数据。

在一些实施例中,指令包括单指令多数据(SIMD)指令,SIMD指令包括向量神经网络指令(VNNI)、块矩阵乘法单元(TMUL)和高级矩阵扩展(AMX)。

在一些实施例中,模型为AI模型。

图13示出了根据本公开一些实施例的可以实现用于融合不同模型的多个层的方法的示例计算系统1300。计算系统1300可以包括与存储器1304通信的处理器1302。存储器1304可以包括能够存储、访问、组织和/或取回数据的任何设备、设备组合、电路等。非限制性示例包括SAN(存储区域网络)、云存储网络、易失性或非易失性RAM、相变存储器、光学介质、硬盘驱动器类型介质等,包括其组合。

计算系统1300可以另外包括本地通信接口1306,用于系统的各种组件之间的连接。例如,本地通信接口1306可以是本地数据总线和/或可能需要的任何相关的地址或控制总线。

计算系统或设备1300还可以包括I/O(输入/输出)接口1308,用于控制系统的I/O功能,以及用于到计算系统1300外部的设备的I/O连接。还可以包括网络接口1310以用于网络连接。网络接口1310可以控制系统内和系统外的网络通信。网络接口可以包括有线接口、无线接口、蓝牙接口、光学接口等,包括其适当的组合。此外,计算系统1300可以另外包括用户接口1312,以及对此系统有益的各种其他组件。

处理器1302可以是单个处理器或者多个处理器,并且存储器1304可以是单个存储器或者多个存储器。本地通信接口1306可以用作路径以促进任何有用组合中的任何单个处理器、多个处理器、单个存储器、多个存储器、各种接口等之间的通信。

下面提供一些非限制性示例。每个示例本身都是单独的实施例。

示例1包括一种层融合装置,包括:接口电路;处理器电路,耦合到接口电路并且被配置为:搜索来自不同模型的多个层并确定是否执行层融合;响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

示例2包括示例1的层融合装置,其中处理器电路还被配置为基于第一融合度量来确定是否执行层融合。

示例3包括示例2的层融合装置,其中第一融合度量为指示层中的指令利用率的饱和程度,该饱和程度表征指令实际利用的寄存器的部分与被分配给指令的全部寄存器的比率。

示例4包括示例3的层熔合装置,其中处理器电路还被配置为基于层中的饱和程度与饱和程度的预定阈值的比较来确定是否执行层融合。

示例5包括示例4的层熔合装置,其中处理器电路还被配置为如果层中的饱和程度高于饱和程度的预定阈值,则滤除该层。

示例6包括示例5的层融合装置,其中处理器电路还被配置为基于第二融合度量来确定是否执行层融合。

示例7包括示例6的层融合装置,其中第二融合度量是针对来自不同模型的多个层计算的影响因子,该影响因子指示执行层融合是否会增加将导致性能下降的同步点开销。

示例8包括示例7的层融合装置,其中影响因子通过以下等式计算:

其中,

示例9包括示例8的层融合装置,其中处理器电路还被配置为基于针对多个层计算的影响因子与影响因子的预定阈值的比较来确定是否执行层融合。

示例10包括示例9的层融合装置,其中处理器电路还被配置为如果针对多个层计算的影响因子高于影响因子的预定阈值,则确定执行层融合。

示例11包括示例10的层融合装置,其中处理器电路还被配置为基于第三融合度量来确定是否执行层融合。

示例12包括示例11的层融合装置,其中第三度量是针对来自不同模型的多个层计算的分数,该分数指示在执行层融合之后所能获得的益处。

示例13包括示例12的层熔合装置,其中分数通过以下等式计算:

其中,

示例14包括示例13的层融合装置,其中处理器电路还被配置为基于针对多个层计算的分数与分数的预定阈值的比较来确定是否执行层融合。

示例15包括示例14的层融合装置,其中处理器电路还被配置为如果针对多个层计算的分数高于分数的预定阈值,则确定执行层融合。

示例16包括示例15的层融合装置,其中处理器电路还被配置为执行离线操作以搜索来自不同模型的多个层。

示例17包括示例1的层融合装置,其中处理器电路还被配置为在存储器中为融合指令分配连续缓冲池作为共享存储区域。

示例18包括示例17的层融合装置,其中处理器电路还被配置为提供接口以用于加载用于融合指令的组合输入数据,并存储在执行融合指令的操作之后获得的输出数据。

示例19包括示例1的层融合装置,其中来自不同模型的多个层中的指令包括单指令多数据(SIMD)指令,SIMD指令包括向量神经网络指令(VNNI)、块矩阵乘法单元(TMUL)和高级矩阵扩展(AMX)。

示例20包括示例1的层融合装置,其中模型为AI模型。

示例21包括一种用于融合不同模型的多个层的方法,包括:搜索来自不同模型的多个层并确定是否执行层融合;响应于确定执行层融合,将来自不同模型的多个层中的指令融合为融合指令;将用于来自不同模型的多个层中的指令的输入数据组合为组合输入数据;在存储器中为组合输入数据分配连续存储区域;从存储器中的连续存储区域加载用于融合指令的组合输入数据以执行融合指令;以及将执行融合指令之后获得的输出数据存储到存储器中的连续存储区域。

示例22包括示例21的方法,其中该方法还包括基于第一融合度量来确定是否执行层融合。

示例23包括示例22的方法,其中第一融合度量为指示层中的指令利用率的饱和程度,该饱和程度表征指令实际利用的寄存器的部分与被分配给指令的全部寄存器的比率。

示例24包括示例23的方法,其中该方法还包括基于层中的饱和程度与饱和程度的预定阈值的比较来确定是否执行层融合。

示例25包括示例24的方法,其中该方法还包括如果层中的饱和程度高于饱和程度的预定阈值,则滤除该层。

示例26包括示例25的方法,其中该方法还包括基于第二融合度量来确定是否执行层融合。

示例27包括示例26的方法,其中第二融合度量是针对来自不同模型的多个层计算的影响因子,该影响因子指示执行层融合是否会增加将导致性能下降的同步点开销。

示例28包括示例27的方法,其中影响因子通过以下等式计算:

其中,

示例29包括示例28的方法,其中该方法还包括基于针对多个层计算的影响因子与影响因子的预定阈值的比较来确定是否执行层融合。

示例30包括示例29的方法,其中该方法还包括如果针对多个层计算的影响因子高于影响因子的预定阈值,则确定执行层融合。

示例31包括示例30的方法,其中该方法还包括基于第三融合度量来确定是否执行层融合。

示例32包括示例31的方法,其中第三度量是针对来自不同模型的多个层计算的分数,该分数指示在执行层融合之后所能获得的益处。

示例33包括示例32的方法,其中分数通过以下等式计算:

其中,

示例34包括示例33的方法,其中该方法还包括基于针对多个层计算的分数与分数的预定阈值的比较来确定是否执行层融合。

示例35包括示例34的方法,其中该方法还包括如果针对多个层计算的分数高于分数的预定阈值,则确定执行层融合。

示例36包括示例21的方法,其中搜索来自不同模型的多个层可以通过离线操作来执行。

示例37包括示例21的方法,其中该方法还包括在存储器中为融合指令分配连续缓冲池作为共享存储区域。

示例38包括示例37的方法,其中该方法还包括提供接口以用于加载用于融合指令的组合输入数据,并存储在执行融合指令的操作之后获得的输出数据。

示例39包括示例21的方法,其中来自不同模型的多个层中的指令包括单指令多数据(SIMD)指令,SIMD指令包括向量神经网络指令(VNNI)、块矩阵乘法单元(TMUL)和高级矩阵扩展(AMX)。

示例40包括示例21的方法,其中模型为AI模型。

示例41包括一种计算机可读存储介质,其上存储有程序指令,程序指令在由处理器执行时使得处理器实现示例21-40中任一项的方法。

以上详细说明包括对附图的参考,附图形成详细说明的一部分。附图通过说明的方式示出了可以实施的具体实施例。这些实施例在本文中也被称为“示例”。这样的示例可以包括除了所示或所描述的要素之外的要素。然而,本发明人还考虑了仅提供所示或所描述的那些要素的示例。此外,相对于本文所示或所描述的特定示例(或其一个或多个方面)或者相对于本文所示或所描述的其他示例(或其一个或多个方面),本发明人还考虑了使用所示或所描述的那些要素(或其一个或多个方面)的任意组合或排列的示例。

本文件中引用的所有出版物、专利和专利文件均通过引用整体并入本文,如同通过引用分别并入一样。如果本文件与通过引用并入的那些文件之间的用法不一致,则并入的(一个或多个)参考文献中的用法应视为对本文件的补充;对于不可调和的不一致,以本文件中的用法为准。

在本文件中,如专利文件中常见的,术语“一”或“一个”用于包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其他实例或用法。在本文件中,术语“或”用于指代非排他性的或,使得“A或B”包括“A但没有B”、“B但没有A”和“A和B”,除非另有说明。在所附权利要求中,术语“包含(including)”和“在其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的简明英语等同物。此外,在所附权利要求中,术语“包含”和“包括”是开放式的,即包括除权利要求中该术语之后列出的那些要素之外的要素的系统、设备、物品或过程仍被认为落入该权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”和“第三”等仅用作标记,并不旨在对其对象强加数字要求。

以上描述旨在是说明性的而非限制性的。例如,上述示例(或其一个或多个方面)可以彼此组合使用。例如,本领域普通技术人员在审阅以上描述后可以使用其他实施例。摘要是为了让读者快速确定技术公开的性质,并且是在理解其不会被用来解释或限制权利要求的范围或含义的情况下提交的。此外,在上面的详细说明中,各种特征可以被分组在一起以改进本公开。这不应被解释为意图在于未要求保护的公开特征对于任何权利要求都是必要的。相反,发明主题可以在于少于特定公开的实施例的所有特征。因此,所附权利要求特此并入详细说明中,其中每个权利要求本身作为单独的实施例。实施例的范围应当参考所附权利要求以及这些权利要求所赋予的等同物的完整范围来确定。

相关技术
  • 一种大米加工用可调过滤均匀出料的收放谷米装置
  • 一种化工用过滤装置
  • 一种塑料袋加工用塑料颗粒融化装置
  • 一种生物质颗粒燃料加工用筛分装置
  • 一种泥皮画加工用加香辅助装置
  • 一种肥料加工用颗粒过滤装置
  • 一种生物肥料颗粒加菌装置
技术分类

06120116520389