具有动态卸载的深度学习推理的分割的制作方法

文档序号:26012769发布日期:2021-07-23 21:33阅读:93来源:国知局
具有动态卸载的深度学习推理的分割的制作方法

相关申请的交叉引用

本公开要求2018年11月30日提交的美国申请号16/206,082的优先权的权益,该申请通过引用整体地并入本文。



背景技术:

深度神经网络应用已被应用来解决各种业务、科学和工程问题,诸如图像和语音识别、业务决策、制造和医疗保健。随着物联网(iot)以及边缘和云计算的快速发展,存在增加数量的深度学习应用。神经网络被部署来运行“推理”,即,它被利用来在训练神经网络之后对新输入进行分类、识别和处理,并且被部署在边缘-云环境例如语音识别、感测和视频流中。

因为这些深度学习应用与其他应用共享计算资源和网络带宽,所以它们面临显著的系统和性能变化。例如,因为系统的负载和互连带宽连续地改变,所以需要做出有关在云系统中的哪一个云平台或云平台内的哪一个服务器上卸载特定深度学习任务的决定。如果要跨边缘和云分割深度神经网络,则将不得不做出有关如何考虑到系统变化分割应用的数据流图的决定。

为了找到良好的边缘-云分割解决方案,可以利用基于云系统的负载和互连带宽的方法。然而,因为在线计算出所有组合以找到良好的边缘-云分割解决方案是昂贵的并且这种方法不支持在单个推理或每几个推理内执行的同时进行细粒度的重新分割,这要求较快的决策,所以对于要求或期望频繁分割的情形,不期望跨边缘和云静态地做出卸载和应用分割决定。

附图说明

参考附图阐述详细描述。在图中,附图标记的最左边的数字标识该附图标记首次出现的图。在不同的图中使用相同的附图标记指示类似或相同的项目或特征。

图1图示用于卸载深度学习任务的示例框图。

图2图示用于卸载深度学习任务的另一示例框图。

图3图示用于分割深度学习任务的示例框图。

图4图示用于确定边缘-云分割解决方案的示例过程。

图5图示具有分割点的示例数据流图。

图6图示存储的分割点解决方案的示例数据库。

图7图示图5的数据流图的示例分割范围。

图8是包括参考图7讨论的边缘设备限制的示例查找表。

图9图示用于实现上述用于通过分割深度学习推理来改进深度学习推理性能的过程和方法的示例系统900。

具体实施方式

本文讨论的系统和方法涉及改进深度学习推理性能,并且更具体地涉及通过基于系统波动和可用资源分割深度学习推理来改进深度学习推理性能。

为了允许对重新分割进行快速决定,可以首先执行离线剖析,然后可以预先计算代表性组合,诸如不同的服务器、边缘、互连负载水平及其关联的分割点,从而允许实现快速查找表部署。因为训练后的模型一旦被部署,它就可以在新更新的模型变得可用之前被再用多天/周,所以离线分析可以每训练后的模型被执行仅一次,并且可以在新更新的模型变得可用之前被再用于推理。

图1和图2图示用于卸载深度学习任务的示例框图100和200。

深度学习任务可以由包括多个节点的有向非循环图(dag)102表示。对于此示例,示出了从104到126的12个节点以表示dag102。可以基于系统的负载和互连带宽做出要将dag102卸载到第一云平台128或第二云平台130的决定。或者,如图2所图示的,可以基于系统的负载和互连带宽做出要将dag102卸载到诸如第一云平台128的相同云平台内的服务器202或服务器204的决定。

图3图示用于分割深度神经网络的示例框图300。

深度神经网络可以由诸如包括多个节点的dag302的数据流图表示。对于此示例,示出了13个节点304至328以表示dag302。可以在分割点处将深度神经网络即dag302分割为边缘侧330和云侧332。可以基于系统变化做出关于如何分割特定应用的dag302的决定。在此示例中,基于系统变化的两个可能的分割平面被示出为分割334和336。

图4图示用于确定边缘-云分割解决方案的示例过程400。

系统可以包括边缘设备、连接该边缘设备和云计算平台的互连以及云计算平台,并且在框402处,可以将神经网络的训练后的神经网络模型如冻结模型文件解析成数据流图。神经网络可以是与边缘设备、互连和云计算平台相关联的深度神经网络。数据流图可以是有向非循环图并且可以包括多个节点。多个节点中的每一个均可以表示对应的张量以及对所对应的张量的关联操作,诸如卷积、矩阵乘、整流线性单位(relu)等。多个节点中的每一个均还可以包括一个或多个边缘。节点的边缘可以表示该节点对该节点的一个或多个相邻节点的依赖性。例如,对于给定节点,它可以仅在其输入边缘的节点结束执行之后才开始执行。在解析期间,还可以收集每个节点中的张量的形状信息,诸如尺寸,以用于计算出在关联互连之上的数据传输开销。

在框404处,可以生成数据流图的遍历次序,其中所生成的数据流图的遍历次序可以是数据流图的多个可能的遍历次序中的一个。

在框406处,可以将各种负载水平指派给深度神经网络中的每个主要组件,即边缘设备、互连和云平台。例如,可以将m、n、k个负载水平分别指派给边缘设备、互连和云计算平台。对于云平台,可能有k个总负载水平。水平1可以指示神经网络应用仅接收1/k计算资源(或者减慢了k-1倍)。可以将资源的其余(k-l)/k部分指派给其他协同调度的应用和/或竞争资源,或者可以将神经网络应用切换成在较慢的服务器上运行等。水平k可以指示神经网络应用接收对所有计算资源的完全访问,神经网络应用能够在深度神经网络中实现假设的全速。对于互连,可以指派n个水平,这可以指示拥塞程度或带宽利用率。可以通过查询硬件性能计数器作为直接或间接指示器来实现测量不同组件的负载水平。

在框408处,多个节点的至少一部分即一个或多个节点在边缘设备和云计算平台的负载水平范围之上的性能被剖析,并且将配置文件存储在数据库中。可以通过改变不同的参数例如改变核心计数、核心和存储器频率、与其他工作负载协同调度等来测量此性能。可以用诸如插值和/或回归的简单模型来扩增数据库,以估计未被存储的点。可以利用微基准来测试在互连之上在不同的拥塞水平下转移不同大小的数据结构的等待时间。在此示例中,存在mxnxk个负载组合。对于每个负载组合,可以标识数据流图的遍历次序中的一个或多个边缘,并且可以通过将切点(测试分割点)放置在数据流图的遍历次序中所标识的边缘中的一个处来计算出等待时间。可以选择具有期望特性如最小等待时间的配置即具有产生最小等待时间或最高能量效率的测试分割点的配置作为针对此特定负载组合的解决方案配置,并且可以将针对每个负载组合的解决方案配置保存或者存储到数据库中。可以将所有解决方案配置存储在数据库中,并且可以通过数据库或查找表中的负载水平(m、n、k)的对应组合来索引每个解决方案配置。

在框410处,可以基于存储在数据库或查找表中的多个节点中的一个或多个节点的剖析性能确定数据流图的分割点。可以通过从查找表中选择具有期望特性如最小等待时间或最高能量效率的分割配置并且将该分割配置的测试分割点标识为数据流图的分割点来确定数据流图的分割点。边缘设备可以执行指令直到分割点为止,然后可以将来自边缘设备的最后节点的结果跨互连传递到云平台侧的节点以恢复执行指令。因为查找表包含多个节点中的每一个的剖析性能,所以如果需要或视需要而定,可以通过参考查找表容易地完成数据流图的重新分割。

图5图示具有分割点502的示例数据流图500。

数据流图500可以包括多个节点,在此示例中示出了从504到528的13个节点,并且每个节点可以如以上关于图4所描述的那样表示对应的张量以及对所对应的张量的关联操作。分割点502可以将数据流图500划分成边缘侧530和云侧532。互连534是从边缘侧530的最后节点512到云侧的第一节点514的互连。

可以通过将代表性负载或利用率水平指派给边缘侧530的节点(被表示为边缘536)、互连534和云侧532的节点(被表示为云平台538)来计算出数据流图500的等待时间。如以上参考图4所讨论的,可以将介于1与m之间的负载水平m(540)、介于1与n之间的负载水平或带宽(bw)利用率水平(542)以及介于1与k之间的负载水平k(544)分别指派给边缘536、互连534和云平台538。然后可以将数据流图500的等待时间计算出为:

等待时间=t节点504(m)+t节点506(m)…+t节点512(m)

+t互连(n)(节点512和514)

+t节点514(k)+t节点516(k)…+t节点528(k)

其中t指示在具有指派的负载水平(m、n或k)的关联级(节点或互连)的时间延迟(等待时间)。

对于m、n和k的每个组合,可以选择具有最小等待时间的配置作为针对组合的解决方案并且将其存储在数据库中。也就是说,给定m、n和k作为组合,可以选择具有对于组合产生最小等待时间的分割点位置的配置作为针对组合的解决方案。

图6图示存储的分割点解决方案的示例性数据库或查找表600。

如以上参考图4所描述的,可以将针对所有配置的解决方案602即由两个节点标识的分割点位置存储在数据库600中,并且可以通过数据库600中的负载水平(m、n、k)的对应组合和标识(id)编号606来索引604每个解决方案配置。因为数据库600包含多个节点中的每一个的剖析性能,所以可以通过在数据库600中查找具体配置容易地完成解决方案,诸如数据流图的重新分割,所述数据库也可以被称为查找表600。

在一些场景中,诸如物联网(iot)设备的边缘设备可能受到其存储器容量约束并且不能执行完整数据流图。利用所生成的数据流图的遍历次序,可以做出计算以确定边缘设备可以能够管理直到哪一个节点的负载,诸如计算任务、执行指令、数据流图结构和训练后的权重。

图7图示数据流图500的示例分割范围702。

在此示例中,计算已确定边缘设备能够管理如由分割范围702所指示的直到节点518的负载。因此,边缘侧530可以包含仅直到节点518,并且无需考虑超过节点518和520互连的分割点。通过避免不必要的计算、交换或通信,可以减少计算设备和组件当中的信息,并且还可以减少计算资源(即,用于处理信息的处理器和存储器资源)和网络资源(即,用于发送和接收信息的带宽)。在系统如由数据流图500表示的系统的部署期间,可以将用于可以被包括在边缘设备中的节点(在此示例中为节点504至518)的数据流图结构和训练后的权重存储在边缘设备上。可以将整个数据流图结构和训练后的权重可以存储在云中,在云中可以处理整个数据流图结构。可以将查找表600存储在边缘设备和云两者中。

在操作期间,包括边缘设备、云计算平台的系统可以连续地监视不同的计数器以确定是否重新分割数据流图。例如,如果负载水平m、n、k将从用于确定先前分割的值改变,则可能针对重新分割做出决定。负载水平m、n、k的值可以是一些经验值并且取决于具体系统行为。如果水平间隔太粗糙,则系统可能失去性能改进的一些机会,然而,如果水平间隔太近,则系统可能比必要时更频繁地重新分割并且引入显著的开销。为了解决此问题,可以通过动态地调整用于触发重新分割的水平变化的阈值(t)来控制对重新分割的确定。在操作期间,可以最初将在固定时间间隔期间重新分割的次数与预定重新分割次数进行比较,并且设定时间间隔的阈值t。只有当后续时间间隔的t值超过当前时间间隔的t值时才可以触发重新分割。

可以以推理的粒度执行上述重新分割方案,因为每个推理可以遍历整个数据流图。附加地或可替代地,可以在推理内执行重新分割方案。例如,再次参考图5,当系统处于执行节点508的时刻即节点504和506已完成时,可以在数据流图的稍后部分执行重新分割,使得可以基于在执行节点508的同时指示的负载变化来将节点512和514之间的分割点502改变为节点520和522之间的新分割点。

再次参考图6,使用基于数据流图500中的所有节点504至528而导出的查找表600可能通常足以改进性能。然而,对于数据流图500(子遍历图)的子遍历次序,例如从节点510到节点528,最佳分割点可以与在查找表600中找到的分割点不同。为了进一步改进性能,可以选择一些代表性点,例如节点512、518和522,并且可以为这些子遍历节点512-528、节点518-528和节点522-528预先计算分割点。可以取决于系统当前正在哪一个节点上执行而利用特定子遍历图的分割点。

图8是包括子遍历图考虑事项的示例查找表800。

与查找表600比较,查找表800可以包括有关子遍历图的附加信息。虚线802、804、806和808指示数据流图500的重新分割范围。范围802覆盖所有节点504-528,从而指示重新分割计算与被执行来确定查找表600中示出的分割点602的分割计算相同。范围804覆盖节点512-528,从而指示重新分割计算基于从节点512到528的子遍历图。类似地,范围806和808分别覆盖节点512-528和522-528,从而指示重新分割计算基于分别从节点518到528和从节点522到节点528的子遍历图。在查找表800中,每个范围802、804、806和808的重分割点810被分别示出在812、814、816和818下面。因为查找表800包含多个节点中的每一个的剖析性能,所以如果需要或视需要而定,可以通过参考查找表800容易地完成数据流图的重新分割。

可以遵循若干指南做出对诸如如上所述的节点512、518和522的代表性节点的选择。例如,已知卷积层在许多图像识别应用中消耗总执行时间的相当大部分。诸如查找表800的剖析数据库在通过对结果进行排序来确定最耗时的卷积层时可能是有用的。子遍历图可以包括这些耗时的节点。进一步地,还可以在选择代表性节点时考虑具有大张量的那些节点,因为在那些节点处进行分割可能影响数据转移开销,该数据转移开销经受影响等待时间的互连带宽。

图9图示用于实现上述用于通过分割深度学习推理来改进深度学习推理性能的过程和方法的示例系统900。

本文描述的技术和机制可以由系统900的多个实例以及由任何其他计算设备、系统、云和/或环境实现。图9所示的系统900仅仅是系统的一个示例,而不旨在关于被利用来执行上述过程和/或程序的任何计算设备的使用范围或功能性建议任何限制。可以适合于与实施例一起使用的其他公知计算设备、系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、游戏机、可编程消费者电子设备、网络pc、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境、使用现场可编程门阵列(“fpga”)和专用集成电路(“asic”)的实现方式和/或类似物。

系统900可以包括一个或多个处理器902和通信地耦合到处理器902的系统存储器904。处理器902可以执行一个或多个模块和/或过程以使处理器902执行各种功能。在一些实施例中,处理器902可以包括中央处理单元(cpu)、图形处理单元(gpu)、cpu和gpu两者、或本领域中已知的其他处理单元或组件。附加地,处理器902中的每一个均可以拥有它自己的本地存储器,该本地存储器还可以存储程序模块、程序数据和/或一个或多个操作系统。

取决于系统900的确切配置和类型,系统存储器904可以是易失性的,诸如ram,可以是非易失性的,诸如rom、闪速存储器、微型硬盘驱动器、存储卡等,或者可以是其某种组合。系统存储器904可以包括可由处理器902执行的一个或多个计算机可执行模块(模块)906。模块906可以包括但不限于解析模块908、遍历模块910、负载指派模块912、剖析模块914和分割模块916。

解析模块908可以被配置成将神经网络的训练后的神经网络模型解析成包括多个节点的数据流图,诸如具有节点504至528的数据流图500。如以上参考图4所描述的,神经网络可以是与边缘设备、互连和云计算平台相关联的深度神经网络,并且每个节点可以表示对应的张量以及对所对应的张量的关联操作并且包括一个或多个边缘。每个边缘可以表示所对应的节点对一个或多个相邻节点的依赖性。深度神经网络可以包括边缘设备、连接该边缘设备和云计算平台的互连以及云计算平台。

遍历模块910可以被配置成生成数据流图的遍历次序,其可以是如以上参考图4所描述的数据流图的多个可能的遍历次序中的一个。

负载指派模块912可以被配置成如以上参考图4和图5所描述的那样向边缘设备、互连和云计算平台中的每一个指派相应的负载水平范围,诸如m、n和k。负载指派模块912可以还被配置成向边缘设备、互连和云计算平台中的每一个指派来自相应的负载水平范围m、n或k的相应的负载水平,诸如m、n或k,以创建负载组合。该负载组合可以是通过组合负载水平范围m、n和k而导出的可能的负载组合中的一个。

剖析模块914可以被配置成如以上参考图4-6所描述的那样剖析多个节点的至少一部分即一个或多个节点在边缘设备和云计算平台的相应的负载水平范围之上的性能。剖析模块914可以还被配置成:1)标识数据流图的遍历次序中的一个或多个边缘,2)对于所标识的一个或多个边缘中的每个边缘,通过将测试分割点放置在所对应的边缘处来计算出对应的等待时间,3)选择具有期望特性如最小等待时间的解决方案配置,并且4)将该解决方案配置存储到数据库或查找表中。剖析模块914可以还被配置成对于每个负载组合通过以下步骤来标识数据流图的遍历次序中的一个或多个边缘:1)确定边缘设备的存储器容量,2)基于该存储器容量确定边缘设备能够执行的多个节点中的节点的范围,以及3)基于节点的范围限制要标识的一个或多个边缘。

分割模块916可以被配置成如以上参考图4-6所描述的那样基于多个节点中的一个或多个节点的剖析性能确定数据流图的分割点。分割模块916可以还被配置成1)从查找表中存储的解决方案配置中选择具有期望特性如最小等待时间的分割配置,并且2)将该分割配置的测试分割点标识为数据流图的分割点。

系统900可以附加地包括通信地耦合到处理器902以用于交换与系统900的操作相关联的数据的输入/输出(i/o)接口918。系统900还可以包括允许系统900通过网络(未示出)与其他设备(未示出)进行通信的通信模块920。网络可以包括因特网、诸如有线网络或直接有线连接的有线介质以及诸如声学、射频(rf)、红外和其他无线介质的无线介质。

如在下面所定义的,能够通过执行存储在计算机可读存储介质上的计算机可读指令来执行上述方法的一些或全部操作。如说明书和权利要求书中所使用的术语“计算机可读指令”包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。能够在各种系统配置上实现计算机可读指令,所述各种系统配置包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费者电子设备、其组合等。

计算机可读存储介质可以包括易失性存储器(诸如随机存取存储器(ram))和/或非易失性存储器(诸如只读存储器(rom)、闪速存储器等)。计算机可读存储介质还可以包括附加可移动存储部和/或非可移动存储部,包括但不限于可以提供计算机可读指令、数据结构、程序模块等的非易失性存储的闪速存储器、磁存储部、光学存储部和/或带存储部。

非瞬态计算机可读存储介质是计算机可读介质的示例。计算机可读介质包括至少两种类型的计算机可读介质,即计算机可读存储介质和通信介质。计算机可读存储介质包括用任何过程或技术加以实现以便存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性和非易失性、可移动和非可移动介质。计算机可读存储介质包括但不限于相变存储器(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪速存储器或其他存储器技术、紧致盘只读存储器(cd-rom)、数字通用盘(dvd)或其他光学存储部、磁盒、磁带、磁盘存储部或其他磁存储设备、或能够用于存储信息以供由计算设备访问的任何其他非传输介质。相比之下,通信介质可以在诸如载波的调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机可读存储介质不包括通信介质。

存储在一个或多个非暂时性计算机可读存储介质上的计算机可读指令当由一个或多个处理器执行时,可以执行以上参考图4-9描述的操作。通常,计算机可读指令包括执行特定功能或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序不旨在被解释为限制,并且能够以任何次序和/或并行地组合任何数量的所描述的操作以实现过程。

示例条款

a.一种方法,所述方法包括:将神经网络的训练后的神经网络模型解析成包括多个节点的数据流图,所述神经网络与边缘设备、连接所述边缘设备和云计算平台的互连以及所述云计算平台相关联;生成所述数据流图的遍历次序;向所述边缘设备和所述云计算平台中的每一个指派相应的负载水平范围;剖析所述多个节点的至少一部分在所述边缘设备和所述云计算平台的所述相应的负载水平范围之上的性能;以及基于所述多个节点的所述至少一部分的剖析性能确定所述数据流图的分割点。

b.如段落a所述的方法,其中所述多个节点表示对应的张量以及对所述对应的张量的关联操作。

c.如段落b所述的方法,其中所述多个节点中的每一个均还包括一个或多个边缘,对应的节点的一个或多个边缘中的每一个均表示所述对应的节点对所述对应的节点的一个或多个相邻节点的依赖性。

d.如段落c所述的方法,其中将所述相应的负载水平范围指派给所述边缘设备和所述云计算平台中的每一个包括:向所述边缘设备和所述云计算平台中的每一个指派来自所述相应的负载水平范围的相应的负载水平以创建负载组合,所述负载组合是通过组合所述相应的负载水平范围而导出的负载组合中的一个。

e.如段落d所述的方法,其中对于所述边缘设备和所述云计算平台剖析所述多个节点中的每一个在不同的负载水平下的性能包括,对于每个负载组合:标识所述数据流图的遍历次序中的一个或多个边缘;对于所述标识的一个或多个边缘中的每个边缘,通过将测试分割点放置在所述对应的边缘处来计算出对应的等待时间;选择具有期望特性的解决方案配置;以及将所述解决方案配置存储到查找表中。

f.如段落e所述的方法,其中标识所述数据流图的遍历次序中的所述一个或多个边缘包括:确定所述边缘设备的存储器容量;基于所述存储器容量确定所述边缘设备能够执行的所述多个节点中的节点的范围;以及基于所述节点的范围限制要标识的所述一个或多个边缘。

g.如段落e所述的方法,其中基于所述多个节点的所述至少一部分的剖析性能确定所述数据流图的分割点包括:参考所述查找表;从所述查找表中选择具有所述期望特性的分割配置;以及将所述分割配置的测试分割点标识为所述数据流图的分割点。

h.如段落a所述的方法,其中所述生成的所述数据流图的遍历次序是所述数据流图的多个可能的遍历次序中的一个。

i.一种系统,所述系统包括:一个或多个处理器;以及通信地耦合到所述一个或多个处理器的存储器,所述存储器存储可由所述一个或多个处理器执行的计算机可执行模块,当被执行时,所述计算机可执行模块执行关联操作,所述计算机可执行模块包括:解析模块,所述解析模块被配置成将神经网络的训练后的网络模型解析成包括多个节点的数据流图,所述神经网络与边缘设备、连接所述边缘设备和云计算平台的互连以及所述云计算平台相关联;遍历模块,所述遍历模块被配置成生成所述数据流图的遍历次序,所述生成的所述数据流图的遍历次序是所述数据流图的多个可能的遍历次序中的一个;负载指派模块,所述负载指派模块被配置成向所述边缘设备和所述云计算平台中的每一个指派相应的负载水平范围;剖析模块,所述剖析模块被配置成剖析所述多个节点的至少一部分在所述边缘设备和所述云计算平台的所述相应的负载水平范围之上的性能;以及分割模块,所述分割模块被配置成基于所述多个节点的至少一部分的剖析性能确定所述数据流图的分割点。

j.如段落i所述的系统,其中所述多个节点中的每一个均表示对应的张量以及对所述对应的张量的关联操作并且包括一个或多个边缘,对应的节点的一个或多个边缘中的每一个均表示所述对应的节点对所述对应的节点的一个或多个相邻节点的依赖性。

k.如段落j所述的系统,其中所述负载指派模块还被配置成向所述边缘设备和所述云计算平台中的每一个指派来自所述相应的负载水平范围的相应的负载水平以创建负载组合,所述负载组合是通过组合所述相应的负载水平范围而导出的可能的负载组合中的一个。

l.如段落k所述的系统,其中所述剖析模块还被配置成,对于每个负载组合:标识所述数据流图的遍历次序中的一个或多个边缘;对于所述标识的一个或多个边缘中的每个边缘,通过将测试分割点放置在所述对应的边缘处来计算出对应的等待时间;选择具有期望特性的解决方案配置;并且将所述解决方案配置存储到查找表中

m.如段落l所述的系统,其中所述剖析模块还被配置成对于每个负载组合通过以下步骤来标识所述数据流图的遍历次序中的一个或多个边缘:确定所述边缘设备的存储器容量;基于所述存储器容量确定所述边缘设备能够执行的所述多个节点中的节点的范围;以及基于所述节点的范围限制要标识的所述一个或多个边缘。

n.如段落l所述的系统,其中所述分割模块还被配置成:参考所述查找表;从所述查找表中选择具有期望特性的分割配置;并且将所述分割配置的测试分割点标识为所述数据流图的分割点。

o.一种计算机可读存储介质,所述计算机可读存储介质存储可由一个或多个处理器执行的计算机可读指令,当由所述一个或多个处理器执行时,所述计算机可读指令使所述一个或多个处理器执行操作,所述操作包括:将神经网络的训练后的神经网络模型解析成包括多个节点的数据流图,所述神经网络与边缘设备、连接所述边缘设备和云计算平台的互连以及所述云计算平台相关联;生成所述数据流图的遍历次序;向所述边缘设备和所述云计算平台中的每一个指派相应的负载水平范围;剖析所述多个节点的至少一部分在所述边缘设备和所述云计算平台的所述相应的负载水平范围之上的性能;以及基于所述多个节点的所述至少一部分的剖析性能确定所述数据流图的分割点。

p.如段落o所述的计算机可读存储介质,其中所述多个节点中的每一个均表示对应的张量以及对所述对应的张量的关联操作并且包括一个或多个边缘,对应的节点的一个或多个边缘中的每一个均表示所述对应的节点对所述对应的节点的一个或多个相邻节点的依赖性。

q.如段落p所述的计算机可读存储介质,其中将所述相应的负载水平指派给所述边缘设备和所述云计算平台中的每一个包括:向所述边缘设备和所述云计算平台中的每一个指派来自所述相应的负载水平范围的相应的负载水平以创建负载组合,所述负载组合是通过组合所述相应的负载水平范围而导出的负载组合中的一个。

r.如段落q所述的计算机可读存储介质,其中对于所述边缘设备和所述云计算平台剖析所述多个节点中的每一个在不同的负载水平下的性能包括,对于每个负载组合:标识所述数据流图的遍历次序中的一个或多个边缘;对于所述标识的一个或多个边缘中的每个边缘,通过将测试分割点放置在所述对应的边缘处来计算出对应的等待时间;选择具有期望特性的解决方案配置;以及将所述解决方案配置存储到查找表中。

s.如段落r所述的计算机可读存储介质,其中标识所述数据流图的遍历次序中的所述一个或多个边缘包括:确定所述边缘设备的存储器容量;基于所述存储器容量确定所述边缘设备能够执行的所述多个节点中的节点的范围;以及基于所述节点的范围限制要标识的所述一个或多个边缘。

t.如段落r所述的计算机可读存储介质,其中基于所述多个节点的所述至少一部分的剖析性能确定所述数据流图的分割点包括:参考所述查找表;选择具有期望特性的分割配置;以及将所述分割配置的测试分割点标识为所述数据流图的分割点。

结论

尽管已用特定于结构特征和/或方法学行为的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于所描述的具体特征或行为。相反,具体特征和行为作为实现权利要求的示例性形式被公开。

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