CN115525405A - 变形计算机视觉流水线 - Google Patents

变形计算机视觉流水线 Download PDF

Info

Publication number
CN115525405A
CN115525405A CN202210729211.3A CN202210729211A CN115525405A CN 115525405 A CN115525405 A CN 115525405A CN 202210729211 A CN202210729211 A CN 202210729211A CN 115525405 A CN115525405 A CN 115525405A
Authority
CN
China
Prior art keywords
pipeline
edge
node
computing
tasks
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.)
Pending
Application number
CN202210729211.3A
Other languages
English (en)
Inventor
M·E·卡兰扎
F·圭姆伯纳特
D·N·奥利弗
M·古斯曼
C·I·马丁内斯斯佩索特
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN115525405A publication Critical patent/CN115525405A/zh
Pending legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

本申请公开了变形计算机视觉流水线。在一个实施例中,计算设备实现用于执行计算机视觉(CV)流水线的计算基础设施的节点。计算设备接收用于通过CV流水线处理的视频流并执行该CV流水线的第一部分。计算设备然后接收指示计算基础设施中可用于执行CV流水线的第二部分的对等节点的对等节点可用性。基于对等节点可用性,计算设备将CV流水线的第二部分分区为一个或多个部分CV流水线并且将(多个)部分CV流水线迁移到对等节点的子集。

Description

变形计算机视觉流水线
技术领域
本公开总体上涉及计算机视觉领域,并且更具体地但非排他地涉及变形计算机视觉流水线。
背景技术
计算机视觉(CV)流水线可用于实时分析由相机捕获的视频内容。例如,CV流水线可以对由相机捕获的视频流执行一系列任务或步骤,以检测流中的底层视频内容。然而,CV流水线通常需要大量的计算资源,在生成流的相机的视场中发生高活动水平时尤其如此。因此,在一些情况下,智能相机和其他资源受限的边缘设备可能无法处置CV流水线所需的处理。
附图说明
通过结合所附附图来阅读以下具体实施方式,最好地理解本公开。值得强调的是,根据行业内的标准惯例,各种特征不一定是按比例绘制的,并且仅用于说明目的。在显式或隐式地示出比例的情况下,它仅提供一个说明性示例。在其他实施例中,为了使讨论清楚,可以任意地扩大或缩小各种特征的尺寸。
图1图示出根据某些实施例的用于计算机视觉流水线的示例计算基础设施。
图2A-图2C图示出将计算机视觉流水线分区为部分流水线的示例。
图3图示出基于视频输入的计算机视觉流水线的不同资源需求的示例。
图4A-图4B图示出根据某些实施例的基于上下文动态地变形的计算机视觉流水线的示例。
图5图示出支持变形计算机视觉流水线的计算基础设施的示例实施例。
图6图示出根据某些实施例的用于通过变形计算机视觉流水线处理视频流的流程图。
图7图示出用于边缘计算的边缘云配置的概览。
图8图示出端点、边缘云和云计算环境之间的操作层。
图9图示出用于边缘计算系统中的联网和服务的示例方法。
图10图示出在多个边缘节点和多个租户之间操作的边缘计算系统中的虚拟边缘配置的部署。
图11图示出涉及对边缘计算系统中的应用的移动接入的计算和通信用例。
图12示出了根据ETSI多接入边缘计算(MEC)规范布置的示例移动边缘系统参考架构。
图13A提供用于边缘计算系统中的计算节点处所部署的计算的示例组件的概览。
图13B提供边缘计算系统中的计算设备内的示例组件的进一步的概览。
图14图示出用于分发软件的示例软件分发平台。
具体实施方式
图1图示出根据某些实施例的用于计算机视觉(CV)流水线的示例计算基础设施100。在所图示示例中,计算基础设施100包括边缘基础设施110和云基础设施120,它们经由广域网(WAN)115(例如,因特网)通信地耦合。边缘基础设施110包括智能相机102a-102c、用户设备103a-103b和边缘服务器104,它们经由本地网络105(例如,有线和/或无线网络,诸如WiFi网格网络)通信地耦合。云基础设施130包括云计算服务器122和存储服务器124。
在所图示示例中,计算机视觉(CV)流水线可以部署在计算基础设施100上,以实时分析由相机102a-102c捕获的视频内容。例如,CV流水线可以通过处理模块的集合实现的一系列任务或步骤来处理相机102捕获的视频流,这些处理模块通常利用人工智能(AI)和/或机器学习(ML)技术来检测流中捕获的视频内容。典型CV流水线中的任务可包括编码、解码、预处理(例如,重调尺寸)、用于内容检测/识别的机器学习(ML)推理(例如,针对每个馈送使用多个模型)等。
然而,CV流水线通常需要大量的计算资源,在其流被处理的相机的视场中发生高活动水平时尤其如此。因此,由于智能相机102a-c和其他边缘设备的典型资源限制,这些设备可能无法自行执行所有的流水线处理。
因此,在一些情况下,边缘服务器104可被部署和/或供应,以代表相机102a-c的组执行CV流水线处理中的一些或全部。然而,在许多情况下,可能需要单个边缘服务器104服务大量相机102a-c(例如,50台或更多),同时还提供也利用边缘基础设施110的许多其他不相关的服务。因此,边缘服务器104有时会超载,当由相机102a-c捕获的活动水平达到其峰值时尤其如此。
因此,主要挑战之一是确定如何映射边缘架构的不同层中的服务,以确保边缘服务器104上有足够的空间和灵活性来同时地管理大量视频馈送(例如,50个或更多),同时还运行其他不相关的服务(例如,智慧城市服务)。因为服务器通常被容纳在具有有限的物理空间、安装在路边基础设施和其他结构(例如,路灯和红绿灯杆、路边标牌、桥梁、建筑物、广告牌、蜂窝塔等)上或以其他方式作为该路边基础设施和其他机构的一部分,因此在许多情况下,考虑到服务器的部署位置,简单地通过部署额外的边缘服务器104来扩增边缘基础设施110是不切实际的。此外,由于许多CV流水线的等待时间要求,因此沿边缘上或在云中进一步迁移处理也可能存在问题。
另一个重要的考虑因素是,CV流水线的资源需求通常取决于视频输入。例如,如果具有面部检测算法的流水线在视频流的帧中检测到五个面部,则流水线的其余部分可以被复制到五个并行流水线中:每个面部一个流水线(如图2A所示)。即使对于流水线中单独的算法或任务,资源需求也可能基于输入而不同。例如,对于人员检测,针对有一个人的场景相对于有10人的场景,所需的计算资源是不同的(例如,如图3所示)。在一些情况下,这甚至可能导致“差AI”造成的安全缺陷(例如,拒绝服务(DoS)攻击,诸如在最多只能处理15人的相机中显示20人,以便使相机上的资源超载)。
智能相机和其他边缘设备可潜在地被利用来缓解来自边缘的下一层的CV流水线的计算需求,并潜在地减少回程通信量需求。然而,智能相机仍处于相对较早的发展阶段。例如,许多智能相机仅限于基本的客户端-服务器架构,其中每个相机将视频传输到集中式服务器以供进行处理。更新近的智能相机具有针对特定的固定功能处理单个ML模型(例如,用于车牌识别的模型)的能力,但它们通常很难管理,有些甚至需要手动操作才能更新(例如,类似于较旧的嵌入式设备)。然而,这些“固定功能”相机不能作为流水线的一部分动态激活或停用组件来适应于特定上下文。因此,负载通常最终来到边缘服务器上。
最新的智能相机提供了稍微更大的灵活性,诸如供应不同的工作负荷和运行流水线,执行远程管理等。然而,这些相机不具有基于上下文实时动态地调整流水线的灵活性。例如,当流水线因输入而增长(例如,若干面部处理分支被生成)时,相机可能无法处理整个流水线,因为相机上的资源通常非常有限并且可能仅包含单个处理元件(例如,单个处理器核或VPU核)。因此,流水线实现方式将流水线非常小的一部分留在相机上,并将大得多的部分分发给服务器。然而,流水线分发是静态而不是动态地执行的。例如,在开发期间,流水线分发是通过在相机和服务器中的每一者上静态地部署流水线的固定的预定切片来解决的(例如,如图2B-图2C所示)。在许多情况下,该方法未能利用相机中(以及附近其他相机中)的所有可用资源。例如,当视频仅包含几个对象时,即使固定/分割的流水线仅在相机上部署单个模型并且将其余部署在服务器上,相机也能够处理多个模型。
因此,存在若干挑战要克服,以便充分利用智能相机和其他资源受限的边缘设备用于CV流水线来减少边缘服务器上的负载。特别是,智能相机的计算能力有限,这对于一些场景可能是足够的但其他场景并非如此。例如,具有反欺骗机制的人员检测流水线是需要高计算马力的复杂模型,这可超出智能相机的能力。然而,在一些情况下,流水线/模型的一些条件和需求可被放松,以降低计算需求(例如,通过降低图像/视频输入的分辨率),从而使智能相机能够处理该模型。现有流水线未能考虑到这一点。
此外,根据动态条件,在边缘设备和装置上运行的一些AI流水线可能需要更多或更少的计算马力。例如,如果相机仅检测到四个人,则它可能能够使用其自己的资源来执行人员标识。然而,如果八个人被标识,则相机可能无法自行执行计算——相反,计算可能需要在更强大的边缘装置(例如,边缘服务器104)中执行,或者可能需要向外扩展或在多个边缘设备(智能相机102a-c、边缘服务器104和/或其他边缘处理设备)之间分发。此外,如果部署模型有大量的边缘计算设备或装置,则一些设备可能未得到充分利用,而其他设备可能无法应对工作负荷。现有流水线不提供基于运行时上下文跨多个设备动态地调整和分发流水线任务的灵活性。
因此,现有解决方案缺乏允许灵活流水线被分发在若干节点(例如,相机、服务器或任何其他可用计算设备)以使部署更高效并且更安全的机制。
因此,本公开呈现了执行自动负载平衡、资源共享和问题放松(例如,基于适用的服务水平协议(SLA))的实施例,以便使系统利用最大化和/或减少边缘服务器上的负载。由这些实施例实现的功能基于以下类型的信息动态地被执行:(i)AI/CV流水线的不同部分可能的不同选项和配置;(ii)流水线在运行时的动态条件和要求;以及(iii)基础设施中所有可用边缘设备(例如,智能相机102a-c、边缘服务器104)的资源可用性。贯穿本公开对这些实施例进行了更详细的描述。
图2A-图2C图示出在资源可用性低时将计算机视觉(CV)流水线分区为多个部分流水线的示例。特别地,图2A图示出完整CV流水线200,其包括用于与面部检测、面部识别和年龄/性别检测相关的任务的各种模块。例如,在流水线200中,来自视频流的输入帧201被馈送到面部检测模块202,该面部检测模块202检测到N个面部并输出该帧中这些面部被检测到所在的N个相对应的感兴趣区域(RoI)。然后,每个面部/感兴趣区域通过流水线的其余部分独立地被处理。特别地,每个面部被馈送到年龄/性别检测模块204中,以检测人员的年龄/性别。每个面部还被馈送到特征点回归模块205,以使用回归技术检测关键的面部特征点,并且然后这些面部特征点被馈送到面部识别模块206,以检测人员的身份。一旦完成,则流水线的最终结果作为元数据207被输出,潜在地连同视频流的相对应部分/帧一起被输出。例如,元数据207可指示帧中检测到的面部的位置(例如,经由边界框)、每个面部检测到的年龄/性别、每个面部检测到的每个面部特征点的类型/位置、以及使用面部识别检测到的每个面部的身份。
智能相机最初可尝试自行执行完整流水线200(假设它有能力这样做)。然而,当在流中检测到多个面部时,流水线的其余部分的多个并行实例(例如,年龄/性别检测和特征点检测/面部识别)被生成,这大大增加了计算需求。
因此,一旦相机开始耗尽资源,则完整流水线200可静态地被分区为两个预定的部分流水线:被部署在相机上的一个部分流水线210和被迁移到边缘服务器的另一个部分流水线220,如图2B-图2C所示。图2B图示出被部署在相机上的部分流水线210,并且图2C图示出被迁移到边缘服务器的部分流水线220。部署在相机上的部分流水线210仅处置用于面部检测202的单个机器学习(ML)模型(如图2B所示),而部署在边缘服务器上的部分流水线220处置相机无法处置的流水线200的其余部分(如图2C所示),包括针对由相机检测到的所有N个面部的年龄/性别检测204、特征点回归205和面部识别206。
以这种方式,每当智能相机耗尽资源时,完整流水线200静态地被分区为分别部署在相机和边缘服务器上的相同的两个部分流水线210和220。该静态部署模型未能在每种情况下(例如,基于视频输入中包含的内容)均利用相机和其他附近相机中可用的所有资源。
相比之下,本公开中的实施例基于运行时上下文来动态地对CV流水线进行分区。例如,运行时上下文可包括所有可用边缘设备(例如,主相机、其他对等相机、边缘服务器和/或任何其他可用的边缘处理设备)上的资源可用性、基于其当前状态的流水线的计算需求(例如,基于在当前帧中检测到的某种类型的内容(诸如面部)的实例数量的所需计算)、SLA需求等。此外,基于运行时上下文,流水线动态地被分区为可变数量的部分流水线——每个部分流水线包含流水线任务的动态地选择的子集——这些部分流水线被迁移到基于资源可用性动态地选择的对等节点。以这种方式,智能相机和其他对等边缘节点的资源利用显著提高,从而释放了边缘服务器上的一些负载。
图3图示出计算机视觉(CV)流水线304的资源需求可以如何基于视频输入而改变的示例300。在所图示示例中,CV流水线304包括用于对视频流的帧或场景302a-c执行各种任务的处理模块305a-c,诸如用于预处理的神经网络305a、用于人员检测/识别的复杂神经网络305b等。在运行时,流水线304的不同的级或任务305a-c的资源需求可基于流水线304的先前级期间在视频流的帧或场景302a-c中捕获和检测到的内容而波动。
以人员检测为示例,所需的计算资源可能取决于视频流的帧302a-c中捕获和检测到的人数。所图示示例描绘了基于正在分析的每个帧302a-c中的人数的、用于流水线304的不同级或任务305a-c的所需的计算资源306a-d,诸如处理核(例如,CPU核、GPU核、VPU核)的数量和存储器的量。
在图示示例中,无论输入302a-c如何,预处理级305a具有相同的资源需求306a。特别地,针对所示的每一个帧302a-c,预处理级的资源需求306a包括1个核和0.2千兆字节(GB)的存储器。
然而,取决于各个帧302a-c中的人数,用于人员检测的复杂神经网络级305b具有不同的资源需求306b-d。例如,具有三个人的帧302a需要2个核和2GB的存储器,具有一个人的帧302b需要1个核和0.5GB的存储器,并且具有10人的帧302c需要5个核和3.5GB的存储器。
图4A-图4B图示出根据某些实施例的基于上下文动态地变形的计算机视觉(CV)流水线的示例。在图示示例中,基础设施中的每个设备(例如相机402a-b、边缘服务器404或任何其他可用的计算设备)包括CV流水线所需的整个处理模块集,这些处理模块基于运行时上下文有选择地被激活或停用,以便跨可用设备动态分发流水线。
例如,流水线上下文可包括以下类型的信息:
(a)在正在处理的视频的当前部分中的捕获的内容以及针对该内容的计算需求;
(b)所有可用计算设备的资源可用性(例如,当前资源可用性和从过去资源可用性得出的学习/预测);
(c)SLA需求(例如,整个流水线和/或流水线中的各个任务的性能需求,诸如总体流水线等待时间或特定模型的推理准确度);
(d)服务提供商/基础设施需求(例如,使边缘服务器上的负载最小化);
(e)流水线变形标准(例如,在某些情况下降低或增加流水线任务或模型的复杂性/性能的标准);以及
(f)任何其他性能目标、需求或约束。
在图示示例中,主要目标之一在于减少边缘服务器上的负载,以便为基础设施提供的附加服务留出空间。因此,当流水线被分发时,智能相机402a-b优先于边缘服务器404。例如,流水线仅在可用智能相机(或其他边缘设备)的资源耗尽后才被分发到边缘服务器404。以这种方式,边缘服务器404始终是分发的流水线中的最后组件,并接收由智能相机402a-b执行的在先处理的结果。
通常,用于流水线的初始计算将由捕获视频馈送的智能相机402a执行,但基础设施中的任何其他可用计算设备可以用于迁移流水线组件的执行(例如,在同一本地网络中具有可用资源的另一智能相机或计算设备)。负载平衡和迁移决策基于上文引用的流水线上下文信息(例如,视频内容/计算需求、当前/预测资源可用性、SLA/基础设施需求、流水线变形标准)动态地执行。例如,在捕获视频的智能相机402a执行流水线达某个时间量之后,视频中捕获的活动水平可能增加(例如,更多人处于相机的视场中),这增加了流水线的计算需求并可能导致智能相机402a开始资源(例如,计算/存储器)耗尽。例如,在一些情况下,低资源可用性可以基于阈值或范围来确定,该阈值或范围诸如特定资源或资源组合的特定资源利用百分比(例如,CPU/GPU/VPU利用、存储器利用)。或者,低资源可用性可能是当实际/预测资源可用性不足以处置流水线的实际/预测计算需求时。因此,当智能相机402a资源耗尽时,流水线中的一些或全部可被迁移到其他对等节点。
在图4A-图4B中,示出其中相同的流水线被用于处理不同的视频内容的两个场景400a-b。流水线包括对模型A、B和C(以及其他解码/预处理/编码步骤)的顺序调用,并且基础设施中的每个设备被供应有用于完整流水线的处理模块(例如,模型A、B和C)。
在第一个场景400a中,由智能相机402a捕获的视频401a包含两个人。如果合适,则智能相机402a首先对视频401a进行解码并执行一些预处理。由于视频401a中捕获的人数相对较少,因此智能相机402a能够运行模型A和B同时几乎达到其容量限制,但模型C被迁移。由于没有具有可用资源的其他设备,因此模型C被迁移到边缘服务器404。例如,边缘服务器404接收视频流401a和来自模型A和B的已处理的元数据,执行任何适当的预处理,并且然后执行针对模型C的处理。此外,边缘服务器404也可以在可能将视频流410a传输到另一个目的地之前流水线的末端对该视频流401a重新编码。
在第二场景400b中,由智能相机402b捕获的视频401b包含12个人。由于相机402a捕获了更多人,因此计算需求增加,而相机402a仅能够处理模型A,因此相机402a向网络的其他部分公告它在模型B和模型C(以及与这些任务相关联的任何可适用的需求,诸如SLA性能需求)方面需要帮助。
使用分布式选举领导者机制从可用节点(例如,基于其资源可用性)进行选择。由于智能相机402b目前没有被重度使用(其馈送是空闲的)并且也符合工作负荷需求/SLA,因此它通过承担模型B而在流水线处理的一部分上进行协作。然而,智能相机402b也无法承担模型C,因此模型C替代地被迁移到边缘服务器404。
在该场景中,智能相机402b接收来自智能相机402a的视频馈送以及由与模型A相关联的处理生成的现有元数据。然后,智能相机402b执行任何适当的预处理和与模型B相关联的处理,然后将结果发送到边缘服务器404(流水线中最后的接收元件)。然后,边缘服务器404执行与模型C相关联的预处理/处理,然后任选地在将视频流传输到另一个目的地之前对该视频流重新编码。
此外,流水线管理决策正在基于流水线的运行时上下文/状态不断地被重新评估。因此,随着流水线上下文的变化(例如,实际或预测资源可用性和计算需求的变化),流水线可在节点(例如,智能相机402a-b和边缘服务器404)之间定期重新分发。例如,在场景400b中,在某个时间段之后可在智能相机402b上释放附加资源,从而允许智能相机402b执行模型B和C,而不是将模型C迁移到边缘服务器404。因此,流水线可被重新分发,使得智能相机402a执行模型A,智能相机402b执行模型B和C,并且边缘服务器404目前不执行流水线的任何部分。
同时,与流水线相关联的所有遥测(例如,边缘设备的资源可用性和流水线元数据)都被收集在边缘服务器404上以供进行训练,这使待分发的流水线能够以更智能的方式前进。特别地,遥测数据可以被人工智能(AI)和机器学习(ML)技术用于训练模型,以基于过去上下文预测流水线的未来上下文。例如,通过学习何时有更多人在某个时间到达某个地方,以及学习当时边缘设备的资源可用性,可以根据预测可用性主动决定将处理什么和在哪里处理(例如,流水线的哪些任务/部分将在哪些设备上处理)。以这种方式,流水线主动而不是反应性地变形。
在一些情况下,处理流水线也可能允许使用替代模型,以便使得在其他设备上处理某些功能成为可能。特别地,复杂性较低且计算需求较少的替代模型可能适合于无法处置流水线中的默认模型的计算需求的资源受限设备。例如,一些流水线可使用降低的输入分辨率或准确度较低的神经网络模型(例如,准确度为86%的替代模型,而不是准确度为95%的优选模型)来支持复杂性降低。以这种方式,流水线的处理模块可以动态地被变形,以调节流水线在运行时的性能/需求。在这种场景中,一旦决定在设备上执行新负载,则应当使所有替代模型在该设备上可用。与流水线支持的复杂性和性能调节相关的任何标准或需求可以由边缘设备在迁移部分流水线的请求中通知。
图5图示出支持变形计算机视觉(CV)流水线的计算基础设施500的示例实施例。在图示实施例中,计算基础设施500包括计算节点502a-d的集合,包括三个智能相机502a-c和边缘服务器502d。此外,以下组件集在每个计算节点502a-d上实现:(i)流水线管理器503;(ii)流水线504;(iii)模型505的集合;以及(iv)资源监测器506。
流水线504包括用于对视频馈送执行AI操作的任务序列,其包括流水线504所需的主机器学习(ML)模型505,以及任何可接受的替代方案(例如,具有不同分辨率的低复杂性模型)。
AI流水线504中的模型505用于执行某个特定动作,诸如人员检测、面部识别、面部标识、对象检测等。
资源监测器506用于监测、收集和报告遥测数据,该遥测数据诸如资源的使用和可用性(例如,时间、CPU使用百分比、存储器使用等)、流水线处理的结果(例如,流水线元数据)等。
流水线管理器503管理流水线504跨基础设施500中的各个计算节点502a-d的部署和执行。特别地,流水线管理器503基于运行时上下文动态调整流水线504/对流水线504进行变形。
为了做出流水线管理决策,流水线管理器503考虑计算节点502a-d上的可用能力,以及从边缘服务器502d上的训练模块507接收到的、基于针对相同条件的过去使用情况的预测(例如,以便了解何时将需要更多资源)。例如,流水线管理器503可确定设备在夜间的某个时间期间始终有更多的可用资源,而在白天的某个时间期间有很少或根本没有可用的资源。
流水线管理器503还为这些流水线管理决策考虑SLA需求,包括总体流水线SLA需求和流水线中具体动作的SLA需求(例如,模型执行/准确度)。
基于这些考虑,流水线管理器503请求来自具有执行流水线的某些部分的可用能力的其他设备的支持。请求可以指定与将被迁移的流水线的部分相关联的需求,包括特定动作的SLA需求和/或整体流水线SLA。
流水线需求可能还包括在运行时对流水线的性能进行变形和/或调节的标准,诸如通过利用复杂性降低使流水线中的一些或全部能够在资源受限的设备上运行(例如,使用具有较低复杂性、较低准确度、较低精度算术和/或较低输入/视频分辨率的替代模型)。类似地,在一些情况下(例如,当资源可用性高和/或某些高性能或专用资源可用时),流水线变形标准也可使流水线的复杂性和准确度被提高。
为了标识节点寻求迁移的特定流水线和动作,来自节点的请求可包括以下信息:
(i)流水线_id:用于表示或标识具有某种结构的特定流水线的标识符。例如,每个流水线具有定义的模型/函数调用序列,该模型/函数调用序列由流水线_id表示或以其他方式标识。
(ii)流水线_迁移_动作:流水线中需要迁移/执行的动作的表示。在一些实施例中,这可以用向量或矩阵表示,该向量或矩阵的元素对应于流水线中的模型/函数,并具有指示每个模型/函数被激活还是被停用的值(例如,使用1表示活动并且使用0表示停用)。例如,向量[1,0,0]可以表示具有三个模型的简单顺序流水线,其中只有第一个模型处于活动状态且需要处理。矩阵可用于需要分支的流水线。
流水线管理器503还负责在处理请求时对其他流水线管理器作出响应。响应节点将是那些具有流水线定义和对应模型的节点。
此外,边缘服务器502d包括训练模块507,其不断接收来自相机的遥测数据和由流水线生成的元数据,以便主动预测何时/如何分发流水线。以这种方式,流水线主动适应于流水线上下文的预期变化,而并非仅对这些变化做出反应,这降低了设备由于反应迟而超载的风险。例如,在各实施例中,训练模块507可以使用遥测数据来训练模型,以使用任何合适的预测分析或建模的类型或组合生成与流水线上下文和/或流水线管理相关的预测,包括以下形式的人工智能、机器学习、模式识别和/或统计分析中的任一项:人工神经网络(ANN),诸如循环神经网络(RNN)(例如,长短期记忆(LSTM)网络或RNN);移动平均模型;自回归移动平均(ARMA)或自回归集成移动平均(ARIMA)模型;指数平滑模型;和/或回归分析模型。
作为对流的高级描述,当计算节点(例如,图示示例中的智能相机502a)检测到它在流水线处理方面需要帮助时,它基于需求集来公告处理流水线的某些部分(或整个流水线)的请求(步骤1)。网络中的其他计算节点(例如,图示示例中的智能相机502b-c和/或边缘服务器502d)以它们可以做什么来帮助对处理进行迁移来进行响应(假设它们能够满足请求中指定的需求)(步骤2a-b)。最后,节点502a-d上的相应流水线管理器503基于各种考虑因素(包括其资源可用性以及节点之间的等待时间)来共同选择(多个)最佳响应节点。
此时,新的连接在节点之间建立,以共享视频流和任何生成的元数据(步骤3)。例如,如上结合图4B所述,智能相机402b充当智能相机402a的客户端,以获取视频馈送和任何已处理的元数据。
在一些实施例中,节点生成的元数据可包括以下字段:
(i)时间:节点执行处理以生成元数据的时间。
(ii)流水线_id:针对其生成元数据的流水线的标识符。
(iii)流水线_状态:在执行用于生成元数据的处理时节点上流水线的当前状态的表示。这可以用初始迁移请求的流水线_迁移_动作字段的如上文所讨论的类似向量/矩阵表示。
(iv)流水线_输出:节点执行的模型/动作生成的输出(例如,由面部检测模型输出的感兴趣区域(RoI)。
当涉及审计需求时,视频馈送可以被发送到边缘服务器502d,或者视频馈送也可以仅被发送到执行AI流水线的部分所涉及的处理节点。当流水线完成时,边缘服务器502d接收/收集参与流水线处理的相应节点502a-d生成的结果/元数据。
在一些实施例中,出于决定哪个节点是迁移请求的最佳候选节点的目的,在相机502a-c中的每一者上运行的流水线管理器503将相互协商。为了提高弹性和可缩放性,对等通信可以使用Gossip式协议实现,并且将执行进一步处理请求的计算节点的选举可以使用Paxos式协议实现,以供解决计算节点之间的共识。
作为示例情景,考虑图5中描绘的条件。每个相机502a-c具有在其上运行的流水线管理器503,并且边缘服务器502d也具有流水线管理器503的实例,该实例充当相机502a-c上的流水线管理器503的对等体。一般来说,为了可靠且可扩展,每一个计算节点502a-d充当其他节点的对等体,以避免集中的故障点
在图示示例中,相机502a中的流水线管理器503使用用于在对等网络中散播消息的Gossip式协议来公告处理请求。消息的散播可以受到存活时间(TTL)参数限制,或者使用广播域来限制。例如,附近相机的群可以形成广播域,并且这些相机仅在它们之间散播消息。在一些情况下,默认情况下服务器可被添加到每个广播域,以保证它始终接收用于审计目的的消息。经过一组散播轮次,领导者选举阶段开始,其中领导者是将继续进行处理的计算节点502a-d(例如,相机或服务器)。为了在对等网络中选择领导者,可使用Paxos式协议。
在提出的示例中,智能相机502b-c和边缘服务器502d充当提议者,将它们的计算能力和其他相关特性作为领导者选举协议的度量传送,并且基于这些特性,计算节点502b-d中的一个被选举为继续进行处理的领导者。在一些情况下,该协议可通过给予边缘服务器中的能力较低的优先级并且只有在没有智能相机可用时才退回到该服务器来偏向边缘服务器以外的提议者(诸如智能相机或其他边缘设备)。一旦领导者被选出,则它请求用于执行计算步骤的必要信息。
一旦分发的流水线完成,则结果也可以以对等风格被传送,由协议保证结果消息最终将到达边缘服务器502d(并且如果最近的偏好的服务器因某种原因停止服务,则最终到达其他边缘服务器)。
如果需求(例如,SLA需求)无法使用其他设备的一个或组合来满足,则默认选项是将数据发送到有足够资源的服务器,即使该服务器意图是尽可能保持空闲。
在其中资源利用显著增加的场景中,系统可以选择允许较低的准确度,从而使用以不同算术精度级别(例如,int8、FP16、FP32等)、降低的帧分辨率等实现的不同模型集。例如,在资源较低时的一些情况下,可以使用准确率为86%的神经网络而不是准确率为95%的神经网络来进行检测检测。以这种方式,流水线可以变形,从而适于使用设备上可用的不同模型。一旦决策被作出,则流水线的定义被分发给处理该类型的流水线的所有节点。
此外,由于流水线管理器503持续监测流水线的运行时上下文/状态,因此流水线可以在节点502a-d之间定期重新分发(例如,基于实际或预测资源可用性和计算需求的变化)。
在边缘服务器502d上接收所有遥测和作出的决策(例如,分发决策)。这允许服务器502d上的训练模块507通过发现模式并主动向流水线管理器503推荐其何时应该调整分发的流水线来学习。例如,如果每天从下午2点到5点,有许多人频繁地处于特定相机502a-c的视场中,则训练/学习模块507可以向该相机502a-c上的流水线管理器503推荐通过停用相机上的本地功能中的一个来调整其流水线并替代地在服务器502d上处理它。
在一些情况下,相机502a-c的流水线管理器503甚至能够在没有对象被捕获时完全停止视频传输,从而完全降低带宽利用。这可能取决于审计要求,但在一些情况下,可能存在针对此类视频片段的本地存储,从而允许它们成批和/或按需传输。
图6图示出根据某些实施例的用于通过变形计算机视觉(CV)流水线处理视频流的流程图600。在各实施例中,流程图600可以由贯穿本公开所描述的计算设备、平台和系统来执行和/或使用该计算设备、平台和系统来实现。
在一些实施例中,例如,流程图600可以由实现用于执行计算机视觉(CV)流水线的计算基础设施的节点的计算设备、平台或系统来执行和/或使用该计算设备、平台或系统来实现。
计算基础设施可以是包括多个计算设备或节点(诸如智能相机、边缘服务器装置、云服务器装置等)的分布式计算基础设施。智能相机可包括以下各项或可能用作以下各项的部分:安全相机和监控系统、智慧城市部署、智能门铃、智能装置、移动电话、自主交通工具、机器人等。基础设施中的每个计算设备可包括接口电路系统(例如,I/O接口和电路系统、通信电路系统、网络接口电路系统)和处理/加速电路系统(例如,处理器、核、中央处理单元(CPU)、图形处理单元(GPU)、视觉处理单元(VPU)、FPGA/ASIC加速器)的某个组合来执行/加速CV流水线中的任务,诸如机器学习(ML)推理任务。
流程图开始于框602,在框602处,计算基础设施的节点(例如,智能相机)捕获和/或接收用于通过CV流水线处理的视频流。
CV流水线可包括用于对视频流执行的任务序列,这些任务可以由处理模块的集合来实现。例如,每个任务可以由对应的处理模块(或模块集)实现。此外,在一些情况下,单个任务可由多个处理模块独立地实现,这些模块提供不同的性能级别、特性和/或权衡。
可由CV流水线执行的任务的示例包括视频编码/解码、预处理(例如,重调尺寸、裁剪、缩放)、特征检测/提取、对象检测/跟踪、对象标识、面部识别、事件检测、场景识别、运动估计、姿势估计和相机/传感器融合等众多其他示例。此外,由CV流水线使用的任务、处理模块和/或模型可能使用任何合适的视觉处理、人工智能和/或机器学习技术(包括卷积神经网络(CNN)(例如,Inception/ResNet CNN架构)和其他深度学习神经网络或前馈人工神经网络、模式识别、尺度不变特征变换(SIFT)、主成分分析(PCA)、离散余弦变换(DCT)等)来实现。
流程图随后前进到框604,以在节点上执行水线的一部分。例如,节点可以执行流水线中的一个或多个初始任务,诸如解码/预处理、对象检测等。对象检测可以是机器学习(ML)推理任务,其利用经训练的ML模型来检测视频中的对象。此外,在一些实施例中,节点上的加速器电路系统可用于加速对象检测和其他ML推理任务。
流程图随后前进到框606,以确定和/或评估CV流水线的运行时上下文。CV流水线的运行时上下文可包括:节点上(或基础设施中的其他节点上)的可用计算能力;通过CV流水线处理视频流中一种或多种类型的视频内容的所需计算能力;和/或与CV流水线或计算基础设施相关联的一个或多个性能目标。
CV流水线的运行时上下文可包括在当前时间的实际运行时上下文和/或在未来时间的流水线的预测运行时上下文两者。例如,预测运行时上下文可以使用被训练成用于基于CV流水线的过去运行时上下文来预测CV流水线的未来运行时上下文的机器学习(ML)模型来预测。
性能目标可包括CV流水线的服务水平协议(SLA)中指定的性能目标/需求、与计算基础设施相关联的性能目标/需求(例如,使基础设施中的边缘服务器装置上的负载最小化)等。
流程图然后前进到框608,以确定是否基于运行时上下文来修改或调节流水线的性能。例如,在一些情况下,SLA/性能目标可允许流水线动态地被变形,以基于运行时上下文来调节流水线的性能或流水线的某些任务。例如,当资源可用性较低时,流水线可被变形以降低某些任务的性能并降低其处理需求。类似地,当资源可用性很高时,流水线可被变形以提高某些任务的性能
如果不需要基于运行时上下文来修改或调整流水线性能,则流程图前进到框612,如下文进一步所描述。
然而,如果确实需要基于运行时上下文来修改或调整流水线性能,则流程图前进到框610,以(多个)处理模块进行变形以用于某个(些)流水线任务调整其性能。在一些情况下,例如,机器学习(ML)处理模块可被变形以调整CV流水线中的ML推理任务的性能,该任务用于推理视频流中捕获的视频内容的类型。具体而言,ML处理模块最初基于第一ML模型来实现ML推理任务,但ML处理模块被变形以用具有不同的性能特性的第二ML模型取代第一ML模型。
流程图然后前进到框612,以确定是否基于运行时上下文将流水线的一部分迁移到计算基础设施中的其他对等节点。例如,如果流水线的计算需求超出节点上的当前资源可用性,则该节点可决定将流水线中的一些或全部迁移到对等节点。节点还可以将CV流水线的预测运行时上下文视为决策的一部分。例如,在一些实施例中,节点可以接收基于CV流水线在未来时间的预测运行时上下文来迁移流水线的一部分的推荐(例如,来自边缘服务器或其他服务器/资源)。
如果流水线不需要基于运行时上下文而被迁移,则流程图前进到框620,如下文进一步所描述。
然而,如果流水线的一部分确实需要基于运行时上下文而被迁移,则流程图前进到框614,以接收(例如,经由接口电路系统和/或通过网络)计算基础设施中的其他对等节点用于执行/迁移流水线的一部分的对等节点可用性。
在一些实施例中,例如,当前执行流水线的节点可以向其对等节点发送请求,指示需要迁移的流水线的(多个)特定任务,以及执行该(多个)任务的任何可适用的性能目标、约束或需求(例如,如SLA中指定的),并且对等节点可以用其针对执行这些任务的可用性来进行响应。例如,每个对等节点可以指示其可用于执行来自将被迁移的流水线的一部分的哪些任务。
流程图然后前进到框616,以基于对等节点可用性使将被迁移的流水线的一部分分区为一个或多个部分流水线。例如,可使用对等节点可用性来选择将流水线迁移到哪些对等节点,并确定向所选择的对等节点中的每一个迁移来自流水线的哪些任务。然后,将被迁移的流水线的一部分可被分区为用于被迁移到选择的(多个)对等节点的子集的一个或多个部分CV流水线。例如,每个部分CV流水线可以包含用于对等节点中的一个对等节点的、来自将被迁移的CV流水线的部分的任务子集。
流程图然后前进到框618,以将(多个)部分流水线迁移到对应的(多个)对等节点(例如,经由接口电路系统和/或通过网络)。
流程图然后前进到框620,以确定流水线处理是否完成。例如,如果流水线中的所有任务都已对当前正在处理的视频流的部分、片段或(多个)帧执行(例如,无论是由当前节点直接执行还是被迁移到对等节点),则流水线处理可以是完成的。
然而,如果流水线处理未完成,则流程图返回到框604,以基于运行时上下文继续执行、变形和/或迁移流水线的剩余部分或任务,直到流水线处理完成。
一旦流水线处理完成,流程图就可以完成。然而,在一些实施例中,流程图可以重新开始和/或某些框可以被重复。例如,在一些实施例中,流程图可在框602处重新开始,以完全继续接收和处理同一视频流的附加部分或另一视频流。
计算实施例
以下部分呈现可与贯穿本公开所描述的可用于实现计算机视觉流水线解决方案的计算设备、平台、系统和环境的示例。
边缘计算实施例
图7是示出用于边缘计算的配置的概览的框图700,该配置包括在以下许多示例中被称为“边缘云”的处理层。如图所示,边缘云710共同定位在边缘位置(诸如接入点或基站740、本地处理中枢750、或中央局720),并且因此可以包括多个实体、设备、和装备实例。与云数据中心730相比,边缘云710被定位成更靠近端点(消费方和生产方)数据源760(例如,自主交通工具761、用户装备762、商业和工业装备763、视频捕捉设备764、无人机765、智慧城市和建筑设备766、传感器和IoT设备767等)。在边缘云710中的边缘处提供的计算、存储器、和存储资源对于为由端点数据源760使用的服务和功能提供超低等待时间的响应时间以及减少从边缘云710朝向云数据中心730的网络回程通信量(由此改善能耗和整体网络使用等益处)至关重要。
计算、存储器和存储是稀缺资源,并且通常根据边缘位置而减少(例如,在消费方端点设备处可用的处理资源比在基站处、比在中央局处可用的处理资源更少)。然而,边缘位置越靠近端点(例如,用户装备(UE)),空间和功率通常就越受限。因此,边缘计算试图通过分发被定位成既在地理上更靠近又在网络访问时间上更靠近的更多的资源来减少网络服务所需的资源量。以此种方式,边缘计算试图在适当的情况下将计算资源带到工作负荷数据,或者,将工作负荷数据带到计算资源。
以下描述了边缘云架构的各方面,该架构涵盖多种潜在的部署,并解决了一些网络运营商或服务提供商在其自身基础设施中可能具有的限制。这些包括以下各项的变体:基于边缘位置的配置(例如,因为处于基站级别的边缘在多租户场景中可能具有更受限制的性能和能力);基于对边缘位置、位置的层、或位置的组可用的计算、存储器、存储、结构、加速等资源的类型的配置;服务、安全性、以及管理和编排能力;以及实现端服务的可用性和性能的相关目标。取决于等待时间、距离、和定时特性,这些部署可以在网络层中完成处理,这些网络层可以被视为“接近边缘”层、“靠近边缘”层、“本地边缘”层、“中间边缘”层、或“远边缘”层。
边缘计算是一种开发范式,其中计算典型地通过使用在基站、网关、网络路由器、或与产生和消费数据的端点设备靠近得多得多的其他设备处实现的计算平台(例如,x86或ARM计算硬件架构)而在网络的“边缘”处或靠近于网络的“边缘”被执行。例如,边缘网关服务器可装配有存储器池和存储资源,以针对连接的客户端设备的低等待时间用例(例如,自主驾驶或视频监控)实时地执行计算。或者作为示例,基站可被扩充有计算和加速资源,以直接为连接的用户装备处理服务工作负荷,而无需进一步经由回程网络传输数据。或者作为另一示例,中央局网络管理硬件可以以标准化计算硬件来代替,该标准化计算硬件执行虚拟化网络功能,并为服务的执行提供计算资源并且为连接的设备提供消费方功能。在边缘计算网络内,可能存在计算资源将被“移动”到数据的服务中的场景,以及其中数据将被“移动”到计算资源的场景。或者作为示例,基站计算、加速和网络资源可以提供服务,以便通过激活休眠容量(订阅、按需容量)来根据需要缩放至工作负荷需求,以便管理极端情况、紧急情况或为部署的资源在显著更长的实现的生命周期中提供长寿命。
图8图示出端点、边缘云和云计算环境之间的操作层。具体而言,图8描绘了在网络计算的多个说明性层之间利用边缘云710的计算用例805的示例。这些层开始于端点(设备和物)层800,该端点层800访问边缘云710以进行数据创建、分析、和数据消费活动。边缘云710可以跨越多个网络层,诸如:边缘设备层810,该边缘设备层810具有网关、自有(on-premise)服务器、或位于物理上邻近的边缘系统中的网络装备(节点815);网络接入层820,该网络接入层820涵盖基站、无线电处理单元、网络中枢、区域数据中心(DC)、或本地网络装备(装备825);以及位于它们之间的任何装备、设备或节点(在层812中,未详细图示)。边缘云710内、以及各层之间的网络通信可以经由任何数量的有线或无线介质来实现,包括经由未描绘出的连接性架构和技术来实现。
由于网络通信距离和处理时间约束而导致的等待时间的示例的范围可以从在端点层800之间时的小于1毫秒(ms),在边缘设备层810处的低于5ms到当与网络接入层820处的节点通信时的甚至10ms到40ms之间。在边缘云710之外是核心网络830层和云数据中心840层,它们各自具有增加的等待时间(例如,在核心网络层830处的50ms-60ms之间、到在云数据中心层处的100ms或更多ms)。因此,在核心网络数据中心835或云数据中心845处的、具有至少50ms至100ms或更长的等待时间的操作将无法完成用例805的许多时间关键的功能。出于说明和对比的目的,提供这些等待时间值中的每一个等待时间值;将会理解,使用其他接入网络介质和技术可以进一步降低等待时间。在一些示例中,相对于网络源和目的地,网络的各个部分可以被分类为“靠近边缘”层、“本地边缘”层、“接近边缘”层、“中间边缘”层或“远边缘”层。例如,从核心网络数据中心835或云数据中心845的角度来看,中央局或内容数据网络可以被视为位于“接近边缘”层内(“接近”云,在与用例805的设备和端点通信时具有高等待时间值),而接入点、基站、自有服务器或网络网关可以被视为位于“远边缘”层内(“远”离云,在与用例805的设备和端点通信时具有低等待时间值)。将会理解,构成“靠近”、“本地”、“接近”、“中间”或“远”边缘的特定网络层的其他分类可以基于如从网络层800-840中的任一层中的源所测量的等待时间、距离、网络跳数或其他可测量的特性。
由于多个服务利用边缘云,因此各种用例805可能在来自传入流的使用压力下访问资源。为了实现低等待时间的结果,在边缘云710内执行的服务在以下方面平衡了不同的要求:(a)优先级(吞吐量或等待时间)和服务质量(QoS)(例如,在响应时间要求方面,用于自主汽车的通信量可能比温度传感器具有更高的优先级;或者取决于应用,性能灵敏度/瓶颈可能存在于计算/加速器、存储器、存储、或网络资源上);(b)可靠性和复原性(例如,取决于应用,一些输入流需要被作用并且以任务关键型可靠性来路由通信量,而一些其他输入流可以容忍偶尔的故障);以及(c)物理约束(例如,功率、冷却和形状因子)。
这些用例的端对端服务观点涉及服务流的概念,并且与事务相关联。事务详细说明了用于消费服务的实体的整体服务要求、以及用于资源、工作负荷、工作流的相关联的服务、以及业务功能和业务水平要求。利用所描述的“条款”执行的服务可以以确保事务在服务的生命周期期间的实时和运行时合约合规性的方式在每层处被管理。当事务中的组件缺失其约定的SLA时,系统作为整体(事务中的组件)可以提供以下能力:(1)理解SLA违反的影响,以及(2)增强系统中的其他组件以恢复整体事务SLA,以及(3)实现补救的步骤。
因此,考虑到这些变化和服务特征,边缘云710内的边缘计算可以提供实时或接近实时地服务和响应于用例805的多个应用(例如,对象跟踪、视频监控、连接的汽车等)的能力,并满足这些多个应用的超低等待时间要求。这些优势使全新类别的应用(虚拟网络功能(VNF)、功能即服务(FaaS)、边缘即服务(EaaS)、标准过程等)得以实现,这些应用由于等待时间或其他限制而无法利用传统的云计算。
然而,伴随边缘计算的优势而来的有以下注意事项。位于边缘处的设备通常是资源受限的,并且因此存在对边缘资源的使用的压力。典型地,这是通过对供多个用户(租户)和设备使用的存储器和存储资源的池化来解决的。边缘可能是功率受限且冷却受限的,并且因此需要由消耗最多功率的应用对功率使用作出解释。在这些经池化的存储器资源中可能存在固有的功率-性能权衡,因为它们中的许多可能使用新兴的存储器技术,在这些技术中,更多的功率需要更大的存储器带宽。同样,还需要硬件和信任根受信任的功能的改善的安全性,因为边缘位置可以是无人的,并且可能甚至需要经许可的访问(例如,当被容纳在第三方位置时)。在其中服务和应用被许多用户请求的多租户、多所有方、或多访问环境中,特别是当网络使用动态地波动以及多个利益相关方、用例、和服务的组成改变时,此类问题在边缘云710中被放大。
在更一般的级别上,边缘计算系统可以被描述为涵盖在先前讨论的、在边缘云710(网络层800-840)中操作的层处的任何数量的部署,这些层提供来自客户端和分布式计算设备的协调。一个或多个边缘网关节点、一个或多个边缘聚合节点和一个或多个核心数据中心可以跨网络的各个层而分布,以由电信服务提供商(“电信公司”或“TSP”)、物联网服务提供商、云服务提供商(CSP)、企业实体或任何其他数量的实体提供边缘计算系统的实现,或者代表电信服务提供商(“电信公司”或“TSP”)、物联网服务提供商、云服务提供商(CSP)、企业实体或任何其他数量的实体提供边缘计算系统的实现。诸如当进行编排以满足服务目标时,可以动态地提供边缘计算系统的各种实现方式和配置。
与本文提供的示例一致,客户端计算节点可以被具体化为任何类型的端点组件、设备、装置或能够作为数据的生产方或消费方进行通信的其他事物。进一步地,如边缘计算系统中所使用的标签“节点”或“设备”不一定意指此类节点或设备以客户端或代理/仆从/跟随者角色操作;相反,边缘计算系统中的节点或设备中的任一者指代包括分立的或连接的硬件或软件配置以促进或使用边缘云710的各个实体、节点或子系统。
由此,边缘云710由网络层810-830之间的边缘网关节点、边缘聚合节点或其他边缘计算节点操作并在网络层810-830之间的边缘网关节点、边缘聚合节点或其他边缘计算节点内被操作的网络组件和功能特征形成。因此,边缘云710可被具体化为提供边缘计算和/或存储资源的任何类型的网络,这些边缘计算和/或存储资源被定位成接近具有无线电接入网络(RAN)能力的端点设备(例如,移动计算设备、IoT设备、智能设备等),这在本文中进行讨论。换言之,边缘云710可被预想为连接端点设备和传统网络接入点、同时还提供存储和/或计算能力的“边缘”,这些传统网络接入点充当进入到包括移动运营商网络(例如,全球移动通信系统(GSM)网络、长期演进(LTE)网络、5G/6G网络等)的服务提供商核心网络中的入口点。其他类型和形式的网络接入(例如,Wi-Fi、长程无线、包括光学网络的有线网络)也可替代此类3GPP运营商网络被利用或与此类3GPP运营商网络组合来利用。
边缘云710的网络组件可以是服务器、多租户服务器、装置计算设备和/或任何其他类型的计算设备。例如,边缘云710可以包括作为包括壳体、底座、机箱或外壳的自包含电子设备的装置计算设备。在一些情况下,可以针对便携性来确定壳体尺寸,以使得该壳体可由人类携载和/或被运输。示例壳体可包括形成一个或多个外表面的材料,该一个或多个外表面部分地或完整地保护装置的内容物,其中,保护可包括天气保护、危险环境保护(例如,EMI、振动、极端温度)和/或使得能够浸入水中。示例壳体可包括用于为固定式和/或便携式实现方式提供功率的功率电路系统,诸如AC功率输入、DC功率输入、(多个)AC/DC或DC/AC转换器、功率调节器、变压器、充电电路系统、电池、有线输入和/或无线功率输入。示例壳体和/或其表面可包括或连接至安装硬件,以实现到诸如建筑物、电信结构(例如,杆、天线结构等)和/或机架(例如,服务器机架、刀片支架等)之类的结构的附接。示例壳体和/或其表面可支持一个或多个传感器(例如,温度传感器、振动传感器、光传感器、声学传感器、电容传感器、接近度传感器等)。一个或多个此类传感器可被包含在装置的表面中、由装置的表面承载、或以其他方式被嵌入在装置的表面中和/或被安装至装置的表面。示例壳体和/或其表面可支持机械连接性,诸如推进硬件(例如,轮子、螺旋桨等)和/或铰接硬件(例如,机械臂、可枢转附件等)。在一些情况下,传感器可包括任何类型的输入设备,诸如用户接口硬件(例如,按键、开关、拨号盘、滑块等)。在一些情况下,示例壳体包括包含在其中、由其携载、嵌入其中和/或附接于其的输出设备。输出设备可包括显示器、触摸屏、灯、LED、扬声器、I/O端口(例如,USB)等。在一些情况下,边缘设备是为特定目的而存在于网络中、但是可具有可用于其他目的的处理和/或其他能力的设备(例如,红绿灯)。此类边缘设备可以独立于其他联网设备,并且可设置有具有适合其主要目的的形状因子的壳体;但对于不干扰其主要任务的其他计算任务仍然是可用的。边缘设备包括物联网设备。装置计算设备可包括用于管理诸如设备温度、振动、资源利用、更新、功率问题、物理和网络安全性之类的本地问题的硬件和软件组件。结合图13B描述用于实现装置计算设备的示例硬件。边缘云710还可以包括一个或多个服务器和/或一个或多个多租户服务器。此类服务器可包括操作系统并实现虚拟计算环境。虚拟计算环境可包括管理(例如,生成、部署、损毁等)一个或多个虚拟机、一个或多个容器等的管理程序。此类虚拟计算环境提供其中一个或多个应用和/或其他软件、代码或脚本可在与一个或多个其他应用、软件、代码或脚本隔离的同时执行的执行环境。
在图9中,(以智能相机、移动设备、计算机、自主交通工具、业务计算装备、工业处理装备的形式的)各种客户端端点910交换特定于端点网络聚合类型的请求和响应。例如,客户端端点910可以通过借助于自有网络系统932交换请求和响应922,经由有线宽带网络获得网络接入。一些客户端端点910(诸如智能相机)可以通过借助于接入点(例如,蜂窝网络塔)934交换请求和响应924,经由无线宽带网络获得网络接入。一些客户端端点910(诸如自主交通工具)可通过街道定位网络系统936,经由无线机载网络获得针对请求和响应926的网络接入。然而,无论网络接入的类型如何,TSP可以在边缘云710内部署聚合点942、944来聚合通信量和请求。因此,在边缘云710内,TSP可以(诸如在边缘聚合节点940处)部署各种计算和存储资源以提供请求的内容。边缘聚合节点940和边缘云710的其他系统被连接至云或数据中心960,该云或数据中心960使用回程网络950来满足来自云/数据中心对网站、应用、数据库服务器等的更高等待时间的请求。边缘聚合节点940和聚合点942、944的附加或合并的实例(包括部署在单个服务器框架上的那些实例)也可以存在于边缘云710或TSP基础设施的其他区域内。
边缘计算中的容器
图10图示出跨在多个边缘节点和使用此类边缘节点的多个租户(例如,用户、提供商)之间操作的边缘计算系统的虚拟化和基于容器的边缘配置的部署和编排。具体而言,图10描绘了边缘计算系统1000中的第一边缘节点1022和第二边缘节点1024的协调,以满足针对接入各种虚拟边缘实例的各种客户端端点1010(例如,智慧相机、智慧城市/建筑系统、移动设备、计算设备、商业/物流系统、工业系统等)的请求和响应。在此,虚拟边缘实例1032、1034通过接入到云/数据中心1040以获得对网站、应用、数据库服务器等的更高等待时间的请求来提供边缘云中的边缘计算能力和处理。然而,边缘云使得能够协调用于多个租户或实体的多个边缘节点之间的处理。
在图10的示例中,这些虚拟边缘实例包括:提供给第一租户(租户1)的第一虚拟边缘1032,该第一虚拟边缘1032提供边缘存储、计算、和服务的第一组合;以及第二虚拟边缘1034,该第二虚拟边缘1034提供边缘存储、计算、和服务的第二组合。虚拟边缘实例1032、1034分布在边缘节点1022、1024之间,并且可以包括其中请求和响应从相同或不同的边缘节点被满足的场景。用于以分布式但协调的方式操作的边缘节点1022、1024的配置基于边缘供应功能1050来发生。用于在多个租户之间为应用和服务提供协调的操作的边缘节点1022、1024的功能基于编排功能1060而发生。
应当理解,1010中的设备中的一些设备是多租户设备,其中租户1可以在租户1‘切片’内运行,而租户2可以在租户2切片内运行(并且,在进一步的示例中,可能存在附加的租户或子租户;并且每个租户甚至可以对特定特征组具体地享有权利并且在事务上被绑定至特定特征组,一直到对特定的硬件特征具体地享有权利并且在事务上被绑定至特定的硬件特征)。受信任的多租户设备可以进一步包含租户专用的加密密钥,使得密钥和切片的组合可以被视为“信任根”(RoT)或租户专用的RoT。可以进一步计算使用DICE(设备身份组合引擎)架构动态地组成的RoT,使得单个DICE硬件构建块可用于构造用于对设备能力(诸如现场可编程门阵列(FPGA))进行分层的分层受信任的计算基础情境。RoT可进一步用于受信任计算情境,以启用对支持多租户有用的“扇出”。在多租户环境内,相应的边缘节点1022、1024可以作为针对每个节点被分配给多个租户的本地资源的安全性特征实施点来操作。附加地,租户运行时和应用执行(例如,在实例1032、1034中)可以用作安全性特征的实施点,该安全性特征创建跨越潜在多个物理主控平台的资源的虚拟边缘抽象。最后,编排实体处的编排功能1060可以作为用于沿着租户边界对资源进行列队的安全性特征实施点来操作。
边缘计算节点可对资源(存储器、中央处理单元(CPU)、图形处理单元(GPU)、中断控制器、输入/输出(I/O)控制器、存储器控制器、总线控制器等)分区,其中,相应的分区可包含RoT能力,并且其中根据DICE模型的扇出和分层可进一步应用于边缘节点。云计算节点通常使用容器、FaaS引擎、小型服务程序、服务器、或可以根据DICE分层和扇出结构进行分区,以支持每个节点的RoT情境的其他计算抽象。因此,跨越设备1010、1022和1040的相应的RoT可以协调分布式受信任计算基(DTCB)的建立,使得端到端链接所有要素的租户专用的虚拟受信任安全信道可以被建立。
进一步地,将理解,容器可具有保护其内容不受先前边缘节点影响的数据或工作负荷特定的密钥。作为容器迁移的一部分,源边缘节点处的舱控制器可以从目标边缘节点舱控制器获得迁移密钥,其中迁移密钥用于包裹容器特定的密钥。当容器/舱迁移到目标边缘节点时,解包密钥被暴露于舱控制器,该舱控制器随后对经包裹的密钥进行解密。密钥现在可用于对容器特定的数据执行操作。迁移功能可以由被适当地证明的边缘节点和舱管理器(如上所述)来选通。
在进一步的示例中,边缘计算系统被扩展以通过在多所有方、多租户环境中使用容器(提供代码和所需依赖关系的被容纳的、可部署的软件单元)来提供多个应用的编排。多租户编排器可用于执行密钥管理、信任锚管理以及与图10中的受信任的‘切片’概念的供应和生命周期相关的其他安全性功能。例如,边缘计算系统可被配置成用于满足来自多个虚拟边缘实例(以及,来自云或远程数据中心)的针对各种客户端端点的请求和响应。这些虚拟边缘实例的使用可以同时支持多个租户和多个应用(例如,增强现实(AR)/虚拟现实(VR)、企业应用、内容交付、游戏、计算迁移)。此外,虚拟边缘实例内可存在多种类型的应用(例如,普通应用;等待时间敏感的应用;等待时间关键的应用;用户平面应用;联网应用等)。虚拟边缘实例还可以横跨处于不同地理位置的多个所有方的系统(或者由多个所有方共同拥有或共同管理的相应的计算系统和资源)。
例如,每个边缘节点1022、1024可以实现容器的使用,诸如提供一个或多个容器的组的容器“舱”1026、1028的使用。在使用一个或多个容器舱的设置中,舱控制器或编排器负责舱中容器的本地控制和编排。根据每个容器的需要对为相应边缘切片1032、1034提供的各种边缘节点资源(例如,以六边形描绘的存储、计算、服务)进行分区。
凭借容器舱的使用,舱控制器监督容器和资源的分区和分配。舱控制器从编排器(例如,编排器1060)接收指令,该编排器指令控制器如何最佳地对物理资源进行分区以及在什么持续时间内,诸如通过接收基于SLA合约的关键性能指标(KPI)目标。舱控制器确定哪个容器需要哪些资源,以及为了完成工作负荷并满足SLA需要多久。舱控制器还管理容器生命周期操作,诸如创建容器、为容器供应资源和应用、协调在分布式应用上一起工作的多个容器之间的中间结果、当工作负荷完成时拆除容器等。附加地,舱控制器可以充当安全性角色,该安全性角色在正确的租户进行认证之前阻止资源分配,或者在证明结果被满足之前阻止向容器供应数据或工作负荷。
而且,通过使用容器舱,租户边界仍然可以存在,但存在于容器的每一个舱的情境中。如果每个租户特定的舱都有租户特定的舱控制器,则将存在对资源分配请求进行合并的共享舱控制器,以避免典型的资源短缺情况。可提供进一步的控制,以确保舱和舱控制器的证明和可信度。例如,编排器1060可以向执行证明验证的本地舱控制器供应证明验证策略。如果证明满足第一租户舱控制器而不是第二租户舱控制器的策略,则第二舱可以迁移到确实满足第二租户舱控制器的策略的不同边缘节点。替代地,可以允许第一舱执行,并且在第二舱执行之前安装和调用不同的共享舱控制器。
移动性和多接入边缘计算
应当领会,本文讨论的边缘计算系统和布置可以可适用于涉及移动性的各种解决方案、服务和/或用例中。作为示例,图11示出涉及对实现边缘云710的边缘计算系统1100中的应用进行的移动访问的简化的交通工具计算和通信用例。
在该用例中,客户端计算节点1110可以被具体化为位于对应交通工具中的机载计算系统(例如,机载导航和/或信息娱乐系统),该机载计算系统在横越道路期间与边缘网关节点1120通信。相应的客户端计算节点1110也可被具体化为安装在、附接到或与具有位于道路附近(例如,沿着道路、在道路的交叉路口处、或道路附近的其他位置)、其他分开的机械公共设施(诸如路边基础设施(例如,用于路灯或交通信号灯的路杆、路边标志、桥梁)、建筑物、广告牌、手机信号塔等)的结构集成的智能相机。客户端计算节点1110可包括一定量的处理和存储能力,并且由此,可以自行执行一些数据处理和/或数据存储(例如,由智能相机1110捕获的视频数据的处理/存储)。客户端计算节点1110还可包括与边缘网关节点1120和/或边缘资源节点1140通信的通信能力。
例如,边缘网关节点1120可以位于路边机柜或被内置到具有其他分开的、机械公共设施的结构中的其他外壳(例如,路边单元(RSU))中,路边机柜或其他外壳可以沿着道路、在道路的交叉路口处、或在道路附近的其他位置放置。当相应的交通工具沿着道路行驶时,其客户端计算节点1110与特定边缘网关设备1120之间的连接可以传播,以便为客户端计算节点1110保持一致的连接和情境。同样,移动边缘节点可以在高优先级服务处或根据(多个)底层服务(例如,在无人机的情况下)的吞吐量或等待时间分辨率要求进行聚合。相应的边缘网关设备1120包括一定量的处理和存储能力,并且由此,用于客户端计算节点1110的一些数据处理和/或数据存储可以在边缘网关设备1120的一个或多个边缘网关设备上执行。
边缘网关设备1120可以与一个或多个边缘资源节点1140通信,这些边缘资源节点1140说明性地被具体化为位于通信基站1142(例如,蜂窝网络的基站)处或位于通信基站1142(例如,蜂窝网络的基站)中的计算服务器、设备或组件。如上文所讨论,相应的边缘资源节点1140包括一定量的处理和存储能力,并且由此,用于客户端计算节点1110的一些数据处理和/或数据存储可以在边缘资源节点1140上执行。例如,不太紧急或不太重要的数据处理可以由边缘资源节点1140执行,而更高紧急性或重要性的数据处理可以由边缘网关设备1120执行(例如,取决于每个组件的能力,或请求中指示紧急性或重要性的信息)。基于数据访问、数据位置或等待时间,当处理优先级在处理活动期间改变时,工作可在边缘资源节点上继续。同样,可配置的系统或硬件资源本身可以(例如,通过本地编排器)被激活,以提供附加的资源来满足新的需求(例如,使计算资源适配于工作负荷数据)。
(多个)边缘资源节点1140还与核心数据中心1150通信,核心数据中心1150可以包括位于中心位置(例如,蜂窝通信网络的中央局)中的计算服务器、装置和/或其他组件。核心数据中心1150可以为由(多个)边缘资源节点1140和边缘网关设备1120形成的边缘云710操作提供到全球网络云1160(例如,因特网)的网关。附加地,在一些示例中,核心数据中心1150可以包括一定量的处理和存储能力,并且由此,用于客户端计算设备的一些数据处理和/或数据存储(例如,低紧急性或重要性或高复杂性的处理)可以在核心数据中心1150上执行。
边缘网关节点1120或边缘资源节点1140可以提供状态型的应用1132和地理分布式数据库1134的使用。虽然应用1132和数据库1134被图示出为在边缘云710的层处横向地分布,但将理解,应用的资源、服务、或其他组件可以在整个边缘云中竖直地分布(包括,在客户端计算节点1110处执行的应用的一部分,在边缘网关节点1120处或边缘资源节点1140等处执行应用的其他部分)。附加地,如前所述,可以存在任何级别上的对等关系以满足服务目标和义务。进一步地,用于特定客户端或应用的数据可以基于变化的条件(例如,基于加速资源可用性、跟随汽车移动等)从边缘移动到边缘。例如,基于访问的“衰减率”,可以进行预测,以标识要继续的下一个所有方、或者数据或计算访问何时将不再可行。可以利用这些服务和其他服务来完成保持事务合规且无损所需的工作。
在进一步的场景中,容器1136(或容器的舱)可以从边缘节点1120灵活地迁移到其他边缘节点(例如,1120、1140等),使得具有应用和工作负荷的容器不需要被重组、重新编译、重新解释以迁移到工作中。但是,在此类设置中,可能应用一些补救或“混合”的转换操作。例如,节点1140处的物理硬件可能不同于边缘网关节点1120,因此,构成容器底部边缘的硬件抽象层(HAL)将被重新映射到目标边缘节点的物理层。这可能涉及某种形式的后期绑定技术,诸如HAL从容器原生格式到物理硬件格式的二进制转换,或者可能涉及映射接口和操作。舱控制器可用于驱动接口映射,作为容器生命周期的一部分,其中包括迁移到不同的硬件环境/从不同的硬件环境迁移。
图11所涵盖的场景可利用各种类型的移动边缘节点(诸如在交通工具(汽车/卡车/电车/火车)或其他移动单元中主控的边缘节点),因为边缘节点将沿主控它的平台移动到其他地理位置。在交通工具对交通工具通信的情况下,各个交通工具甚至可以充当用于其他汽车的网络边缘节点(例如,以执行高速缓存、报告、数据聚合等)。因此,将理解,在各种边缘节点中提供的应用组件可以按静态或移动设置分布,包括在各个端点设备或边缘网关节点1120处的一些功能或操作、在边缘资源节点1140处的一些其他功能或操作、以及在核心数据中心1150或全球网络云1160中的其他功能或操作之间的协调。
在进一步的配置中,边缘计算系统可以通过使用相应的可执行应用和功能来实现FaaS计算能力。在示例中,开发方编写表示一个或多个计算机功能的功能代码(例如,本文中的“计算机代码”),并且该功能代码被上传到由例如边缘节点或数据中心提供的FaaS平台。触发器(诸如例如,服务用例或边缘处理事件)利用FaaS平台发起对功能代码的执行。
在FaaS的示例中,容器用于提供在其中执行功能代码(例如,可能由第三方提供的应用)的环境。容器可以是任何隔离执行的实体,诸如进程、Docker容器或Kubernetes容器、虚拟机等。在边缘计算系统内,各种数据中心、边缘、和端点(包括移动)设备被用于按需缩放的“旋转加速(spin up)”功能(例如,激活和/或分配功能动作)。功能代码在物理基础设施(例如,边缘计算节点)设备和底层虚拟化容器上得到执行。最后,容器响应于执行被完成而在基础设施上被“旋转减速(spin down)”(例如,去激活和/或解除分配)。
FaaS的进一步的方面可以启用边缘功能以服务方式的部署,包括对支持边缘计算即服务(边缘即服务或“EaaS”)的相应功能的支持。FaaS的附加特征可包括:使客户(例如,计算机代码开发方)仅在其代码被执行时进行支付的细粒度计费组件;用于存储数据以供一个或多个功能重新使用的共用数据存储;各个功能之间的编排和管理;功能执行管理、并行性和合并;容器和功能存储器空间的管理;功能可用的加速资源的协调;以及功能在容器(包括已经部署或操作的“暖”容器,其相对于需要初始化、部署、或配置的“冷”容器)之间的分布。
边缘计算系统1100可以包括边缘供应节点1144或与边缘供应节点1144通信。边缘供应节点1144可以将诸如图13B的示例计算机可读指令1382之类的软件分发到各个接收方,以用于实现本文中所描述的方法中的任何方法。示例边缘供应节点1144可以由任何计算机服务器、家庭服务器、内容交付网络、虚拟服务器、软件分发系统、中央设施、存储设备、存储节点、数据设施、云服务等实现,上述各者能够存储软件指令和/或向其他计算设备传输软件指令(例如,代码、脚本、可执行二进制文件、容器、封装、压缩文件和/或其衍生物)。示例边缘供应节点644的(多个)组件可以位于云中、局域网中、边缘网络中、广域网中、因特网上和/或与(多个)接收方通信耦合的任何其他位置。接收方可以是拥有和/或操作边缘供应节点1144的实体的客户、客户端、合作方、用户等。例如,拥有和/或操作边缘供应节点1144的实体可以是软件指令(诸如图13B的示例计算机可读指令1382)的开发方、销售方和/或许可方(或其客户和/或消费方)。接收方可以是购买和/或许可软件指令以用于使用和/或转售和/或分许可的消费方、服务提供商、用户、零售商、OEM等。
在示例中,边缘供应节点1144包括一个或多个服务器以及一个或多个存储设备。如下文所描述,存储设备主控计算机可读指令,诸如图13B的示例计算机可读指令1382。类似于上文所描述的边缘网关设备1120,边缘供应节点1144的一个或多个服务器与基站1142或其他网络通信实体进行通信。在一些示例中,作为商业事务的部分,一个或多个服务器对将软件指令传送到请求方的请求进行响应。可以由软件分发平台的一个或多个服务器和/或经由第三方支付实体来处置针对软件指令的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从边缘供应节点1144下载计算机可读指令1382。例如,软件指令(其可与图13B的示例计算机可读指令1382相对应)可被下载到(多个)示例处理器平台,该(多个)示例处理器平台用于执行计算机可读指令1382以实现本文所描述的方法。
在一些示例中,执行计算机可读指令1382的(多个)处理器平台可以物理地位于不同的地理位置、法律管辖区等。在一些示例中,边缘供应节点1144的一个或多个服务器周期性地提供、传送和/或强制更新软件指令(例如,图13B的示例计算机可读指令1382),以确保改善、补丁、更新等被分发并应用于在终端用户设备处实现的软件指令。在一些示例中,计算机可读指令1382的不同组件可以分发自不同的源和/或不同的处理器平台;例如,无论是经编译的还是经解释的,不同的库、插件、组件和其他类型的计算模块都可以分发自不同的源和/或向不同的处理器平台分发。例如,软件指令的一部分(例如,本身不可执行的脚本)可以分发自第一源,而(能够执行脚本的)解释器可以分发自第二源。
图12图示诸如由ETSI MEC规范指示的移动边缘系统参考架构(或MEC架构)1200。图12具体图示具有提供根据ETSI GS MEC-003规范的功能的MEC主机1202和1204的MEC架构1200。在一些方面,对MEC平台1232和MEC平台管理器1206的增强可用于在MEC架构1200内提供指定计算功能(例如,在MEC架构1200的虚拟化基础设施1222上部署计算机视觉流水线的处理模块或任务)。
参考图12,MEC网络架构1200可以包括MEC主机1202和1204、虚拟化基础设施管理器(VIM)1208、MEC平台管理器1206、MEC编排器1210、操作支持系统1212、用户应用代理1214、在UE 1220上运行的UE应用1218、以及CFS门户1216。MEC主机1202可以包括MEC平台1232,该MEC平台1232具有过滤规则控制组件1240、DNS处置组件1242、服务注册表1238和MEC服务1236。MEC服务1236可以包括至少一个调度程序,该至少一个调度程序可以用于选择用于在虚拟化基础设施1222上实例化MEC应用(或NFV)1226、1227和1228的资源。MEC应用1226和1228可以被配置成用于提供服务1230和1231,该服务1230和1231可以包括处理与一个或多个无线连接(例如,到一个或多个RAN或电信核心网络实体的连接)相关联的不同类型的网络通信通信量。被实例化在MEC主机1204内的MEC应用1205可以类似于被实例化在MEC主机1202内的MEC应用1226-1228。虚拟化基础设施1222包括经由MP2接口耦合至MEC平台的数据平面1224。图12中图示出MEC架构1200的各种网络实体之间的附加接口。
MEC平台管理器1206可以包括MEC平台元件管理组件1244、MEC应用规则和要求管理组件1246、以及MEC应用生命周期管理组件1248。MEC架构1200内的各种实体可以执行如ETSI GS MEC-003规范所公开的功能。
在一些方面,远程应用(或app)1250被配置成经由MEC编排器1210和MEC平台管理器1206与MEC主机1202(例如,与MEC应用1226-1228)通信。
计算设备和系统
在进一步的示例中,参考当前的边缘计算系统和环境讨论的计算节点或设备中的任一者可以基于图13A和图13B中所描绘的组件来实现。相应的边缘计算节点可以被具体化为能够与其他边缘组件、联网组件或端点组件进行通信的设备、装置、计算机或其他“物”的类型。例如,边缘计算设备可以被具体化为个人计算机,服务器,智能电话,移动计算设备,智能装置,机载计算系统(例如,导航系统),具有外箱、外壳等的自包含设备,或能够执行所描述的功能的其他设备或系统。
在图13A中描绘的简化示例中,边缘计算节点1300包括计算引擎(本文中也称为“计算电路系统”)1302、输入/输出(I/O)子系统1308、数据存储1310、通信电路子系统1312,以及任选地,一个或多个外围设备1314。在其他示例中,相应的计算设备可以包括其他或附加组件,诸如通常在计算机中发现的那些组件(例如,显示器、外围设备等)。附加地,在一些示例中,说明性组件中的一个或多个可被并入另一组件中,或以其他方式形成另一组件的部分。
计算节点1300可被具体化为能够执行各种计算功能的任何类型的引擎、设备、或设备集合。在一些示例中,计算节点1300可被具体化为单个设备,诸如集成电路、嵌入式系统、现场可编程门阵列(FPGA)、芯片上系统(SOC)或者其他集成系统或设备。在说明性示例中,计算节点1300包括或被具体化为处理器1304和存储器1306。处理器1304可被具体化为能够执行本文中所描述的功能(例如,执行应用)的任何类型的处理器。例如,处理器1304可被具体化为(多个)多核处理器、微控制器、处理单元、专门或专用处理单元、或其他处理器或处理/控制电路。
在一些示例中,处理器1304可被具体化为、包括或耦合至FPGA、专用集成电路(ASIC)、可重新配置的硬件或硬件电路系统、或用于促进本文中所描述的功能的执行的其他专门硬件。而且在一些示例中,处理器704可被具体化为专门的x处理单元(xPU),也称为数据处理单元(DPU)、基础设施处理单元(IPU)或网络处理单元(NPU)。此类xPU可被具体化为独立电路或电路封装、被集成在SOC内或与联网电路系统集成在一起(例如,在智能NIC或增强型智能NIC中)、加速电路系统、存储设备或AI硬件(例如,GPU或编程FPGA)。在CPU或通用处理硬件之外,此类xPU可被设计成用于接收编程以处理一个或多个数据流并执行针对数据流的特定任务和动作(诸如主控微服务、执行服务管理或编排、组织或管理服务器或数据中心硬件、管理服务网格、或收集和分发遥测)。然而,将理解,xPU、SOC、CPU和处理器1304的其他变体可以彼此协调工作,以在计算节点1300内并代表计算节点1300执行许多类型的操作和指令。
存储器1306可被具体化为能够执行本文中所述的功能的任何类型的易失性存储器或数据存储(例如,动态随机存取存储器(DRAM)等)或者非易失性存储器或数据存储。易失性存储器可以是需要功率来维持由该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可包括各种类型的随机存取存储器(RAM),诸如DRAM或静态随机存取存储器(SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。
在示例中,存储器设备是块可寻址存储器设备,诸如基于NAND或NOR技术的那些存储器设备。存储器设备还可包括三维交叉点存储器设备(例如,
Figure BDA0003712253040000341
3D XPointTM存储器)或其他字节可寻址的原位写入非易失性存储器设备。存储器设备可指代管芯本身和/或指代封装的存储器产品。在一些示例中,3D交叉点存储器(例如,
Figure BDA0003712253040000342
3D XPointTM存储器)可包括无晶体管的可堆叠的交叉点架构,其中存储单元位于字线和位线的交点处,并且可单独寻址,并且其中位存储基于体电阻的变化。在一些示例中,存储器1306的全部或部分可以被集成到处理器1304中。存储器1306可以存储在操作期间使用的各种软件和数据,诸如一个或多个应用,通过(多个)应用、库以及驱动程序操作的数据。
计算电路系统1302经由I/O子系统1308通信地耦合到计算节点1300的其他组件,该I/O子系统1308可被具体化为用于促进与计算电路系统1302(例如,与处理器1304和/或主存储器1306)以及计算电路系统1302的其他组件的输入/输出操作的电路系统和/或组件。例如,I/O子系统1308可被具体化为或以其他方式包括存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件设备、通信链路(例如,点对点链路、总线链路、线路、线缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些示例中,I/O子系统1308可以形成芯片上系统(SoC)的部分,并可连同计算电路系统1302的处理器1304、存储器1306、和其他组件中的一者或多者一起被并入到计算电路系统1302中。
一个或多个说明性数据存储设备1310可被具体化为被配置成用于数据的短期或长期存储的任何类型的设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。各个数据存储设备1310可包括存储用于数据存储设备1310的数据和固件代码的系统分区。各个数据存储设备1310还可包括根据例如计算节点1300的类型来存储用于操作系统的数据文件和可执行文件的一个或多个操作系统分区。
通信电路系统1312可被具体化为能够实现通过网络在计算电路系统1302与另一计算设备(例如,实现的边缘计算系统的边缘网关)之间进行的通信的任何通信电路、设备或其集合。通信电路系统1312可以被配置成使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,蜂窝联网协议(诸如3GPP 4G或5G标准)、无线局域网协议(诸如IEEE 802.11/
Figure BDA0003712253040000351
)、无线广域网协议,以太网、
Figure BDA0003712253040000352
蓝牙低能量、IoT协议(诸如IEEE 802.15.4或
Figure BDA0003712253040000353
)、低功率广域网(LPWAN)或低功率广域网(LPWA)协议等)来实行此类通信。
说明性通信电路系统1312包括网络接口控制器(NIC)1320,其也可被称为主机结构接口(HFI)。NIC 1320可被具体化为一个或多个插入式板、子卡、网络接口卡、控制器芯片、芯片组或可由计算节点1300用来与另一计算设备(例如,边缘网关节点)连接的其他设备。在一些示例中,NIC 1320可被具体化为包括一个或多个处理器的芯片上系统(SoC)的部分,或NIC 1320可被包括在也包含一个或多个处理器的多芯片封装上。在一些示例中,NIC1320可包括本地处理器(未示出)和/或本地存储器(未示出),这两者均位于NIC 1320本地。在此类示例中,NIC 1320的本地处理器可以能够执行本文中描述的计算电路系统1302的功能中的一个或多个功能。附加地或替代地,在此类示例中,NIC 1320的本地存储器可以在板级、插座级、芯片级和/或其他层级上被集成到客户端计算节点的一个或多个组件中。
附加地,在一些示例中,相应的计算节点1300可以包括一个或多个外围设备1314。取决于计算节点1300的特定类型,此类外围设备1314可包括在计算设备或服务器中发现的任何类型的外围设备,诸如音频输入设备、显示器、其他输入/输出设备、接口设备和/或其他外围设备。在进一步的示例中,计算节点1300可以由边缘计算系统中的相应的边缘计算节点(无论是客户端、网关还是聚合节点)来具体化,或者由类似形式的装置、计算机、子系统、电路系统或其他组件来具体化。
在更详细的示例中,图13B图示出可以存在于边缘计算节点1350中的、用于实现本文所描述的技术(例如,操作、过程、方法和方法论)的组件的示例的框图。该边缘计算节点1350提供在被实现为计算设备(例如,移动设备、基站、服务器、网关等)或计算设备(例如,移动设备、基站、服务器、网关等)的一部分时节点1300的相应组件的更靠近的视图。边缘计算节点1350可包括本文中所引用的硬件或逻辑组件的任何组合,并且该边缘计算节点1350可包括可与边缘通信网络或此类网络的组合一起使用的任何设备或与该任何设备耦合。这些组件可被实现为集成电路(IC)、IC的部分、分立电子器件,或其他模块、指令集、可编程逻辑或算法、硬件、硬件加速器、软件、固件或其适用于边缘计算节点1350中的组合,或被实现为以其他方式被并入在更大的系统的底座内的组件。
边缘计算设备1350可包括采用处理器1352形式的处理电路系统,该处理电路系统可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器、xPU/DPU/IPU/NPU、专用处理单元、专门处理单元,或其他已知的处理元件。处理器1352可以是芯片上系统(SoC)的部分,在该SoC中,处理器1352和其他组件形成为单个集成电路或单个封装,诸如来自加利福尼亚州圣克拉拉市的英特尔公司的爱迪生TM(EdisonTM)或伽利略TM(GalileoTM)SoC板。作为示例,处理器1352可包括基于
Figure BDA0003712253040000361
架构酷睿TM(CoreTM)的CPU处理器(诸如夸克TM(QuarkTM)、凌动TM(AtomTM)、i3、i5、i7、i9或MCU类处理器)、或可从
Figure BDA0003712253040000362
获得的另一此类处理器。然而,可使用任何数量的其他处理器,诸如可从加利福尼亚州桑尼威尔市的超微半导体公司
Figure BDA0003712253040000363
获得的处理器、来自加利福尼亚州桑尼威尔市的MIPS技术公司的基于
Figure BDA0003712253040000364
的设计、许可自ARM控股有限公司的基于
Figure BDA0003712253040000365
的设计,或从上述各公司的客户、被许可方或采纳方获得的处理器。处理器可包括诸如以下单元:来自
Figure BDA0003712253040000366
公司的A5-A13处理器、来自
Figure BDA0003712253040000367
技术公司的骁龙TM(SnapdragonTM)处理器或来自德州仪器公司的OMAPTM处理器。处理器1352和伴随的电路系统可以以单插座形状因子、多插座形状因子或各种其他格式提供,包括以有限的硬件配置或以包括少于图13B中所示的所有元件的配置来提供。
处理器1352可通过互连1356(例如,总线)来与系统存储器1354通信。可使用任何数量的存储器设备来提供给定量的系统存储器。作为示例,存储器754可以是根据联合电子器件工程委员会(JEDEC)设计的随机存取存储器(RAM),诸如DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)。在特定示例中,存储器组件可符合JEDEC颁布的DRAM标准,诸如针对DDR SDRAM的JESD79F、针对DDR2 SDRAM的JESD79-2F、针对DDR3 SDRAM的JESD79-3F、针对DDR4 SDRAM的JESD79-4A、针对低功率DDR(LPDDR)的JESD209、针对LPDDR2的JESD209-2、针对LPDDR3的JESD209-3和针对LPDDR4的JESD209-4。此类标准(和类似的标准)可被称为基于DDR的标准,并且存储设备的实现此类标准的通信接口可被称为基于DDR的接口。在各实现方式中,各个存储器设备可以是任何数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在一些示例中,这些设备可以直接焊接到主板上,以提供薄型解决方案,而在其他示例中,设备被配置为一个或多个存储器模块,这一个或多个存储器模块进而通过给定的连接器耦合至主板。可使用任何数量的其他存储器实现方式,诸如其他类型的存储器模块,例如,不同种类的双列直插存储器模块(DIMM),包括但不限于microDIMM(微DIMM)或MiniDIMM(迷你DIMM)。
为了提供对信息(诸如数据、应用、操作系统等)的持久性存储,存储1358还可经由互连1356而耦合至处理器1352。在示例中,存储1358可经由固态盘驱动器(SSDD)来实现。可用于存储1358的其他设备包括闪存卡(诸如安全数字(SD)卡、microSD卡、极限数字(XD)图片卡,等等)和通用串行总线(USB)闪存驱动器。在示例中,存储器设备可以是或者可以包括使用硫属化物玻璃的存储器设备、多阈值级别NAND闪存、NOR闪存、单级或多级相变存储器(PCM)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、包含忆阻器技术的磁阻随机存取存储器(MRAM)、包括金属氧化物基底、氧空位基底和导电桥随机存取存储器(CB-RAM)的电阻式存储器、或自旋转移力矩(STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁隧穿结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备、或者任何上述或其他存储器的组合。
在低功率实现方式中,存储1358可以是与处理器1352相关联的管芯上存储器或寄存器。然而,在一些示例中,存储1358可使用微硬盘驱动器(HDD)来实现。此外,附加于或替代所描述的技术,可将任何数量的新技术用于存储1358,这些新技术诸如阻变存储器、相变存储器、全息存储器或化学存储器,等等。
组件可通过互连1356进行通信。互连1356可包括任何数量的技术,包括工业标准架构(ISA)、扩展ISA(EISA)、外围组件互连(PCI)、外围组件互连扩展(PCIx)、PCI express(PCI快速,PCIe)或任何数量的其他技术。互连1356可以是例如在基于SoC的系统中使用的专有总线。可包括其他总线系统,诸如集成电路间(I2C)接口、串行外围设备接口(SPI)接口、点对点接口、以及功率总线,等等。
互连1356可将处理器1352耦合至收发器1366,以用于例如与连接的边缘设备1362通信。收发器1366可使用任何数量的频率和协议,诸如IEEE 802.15.4标准下的2.4千兆赫兹(GHz)传输,使用如由
Figure BDA0003712253040000381
特别兴趣小组定义的
Figure BDA0003712253040000382
低能量(BLE)标准、或
Figure BDA0003712253040000383
标准,等等。为特定的无线通信协议配置的任何数量的无线电可用于到连接的边缘设备1362的连接。例如,无线局域网(WLAN)单元可用于根据电气和电子工程师协会(IEEE)802.11标准实现
Figure BDA0003712253040000384
通信。另外,例如根据蜂窝或其他无线广域协议的无线广域通信可经由无线广域网(WWAN)单元发生。
无线网络收发器1366(或多个收发器)可以使用用于不同范围的通信的多种标准或无线电来进行通信。例如,边缘计算节点1350可使用基于蓝牙低能量(BLE)或另一低功率无线电的本地收发器与接近的(例如,在约10米内的)设备通信以节省功率。更远的(例如,在约50米内的)连接的边缘设备1362可通过
Figure BDA0003712253040000385
或其他中间功率的无线电而联络到。这两种通信技术可以以不同的功率水平通过单个无线电发生,或者可通过分开的收发器而发生,分开的收发器例如使用BLE的本地收发器和分开的使用
Figure BDA0003712253040000391
的网格收发器。
可包括无线网络收发器1366(例如,无线电收发器),以经由局域网协议或广域网协议来与云(例如,边缘云1395)中的设备或服务通信。无线网络收发器1366可以是遵循IEEE 802.15.4或IEEE 802.15.4g标准等的低功率广域(LPWA)收发器。边缘计算节点1350可使用由Semtech和LoRa联盟开发的LoRaWANTM(长距离广域网)在广域上通信。本文中所描述的技术不限于这些技术,而是可与实现长距离、低带宽通信(诸如Sigfox和其他技术)的任何数量的其他云收发器一起使用。进一步地,可使用其他通信技术,诸如在IEEE802.15.4e规范中描述的时分信道跳。
除了针对如本文中所描述的无线网络收发器1366而提及的系统之外,还可使用任何数量的其他无线电通信和协议。例如,收发器1366可包括使用扩展频谱(SPA/SAS)通信以实现高速通信的蜂窝收发器。进一步地,可使用任何数量的其他协议,诸如用于中速通信和供应网络通信的
Figure BDA0003712253040000392
网络。收发器1366可包括与任何数量的3GPP(第三代合作伙伴计划)规范(诸如在本公开的末尾处进一步详细讨论的长期演进(LTE)和第五代(5G)通信系统)兼容的无线电。网络接口控制器(NIC)1368可被包括以提供到边缘云1395的节点或到其他设备(诸如(例如,在网格中操作的)连接的边缘设备1362)的有线通信。有线通信可提供以太网连接,或可基于其他类型的网络,诸如控制器区域网(CAN)、本地互连网(LIN)、设备网络(DeviceNet)、控制网络(ControlNet)、数据高速路+、现场总线(PROFIBUS)或工业以太网(PROFINET),等等。附加的NIC 1368可被包括以启用到第二网络的连接,例如,第一NIC1368通过以太网提供到云的通信,并且第二NIC 1368通过另一类型的网络提供到其他设备的通信。
鉴于从设备到另一组件或网络的可适用通信类型的多样性,由设备使用的可适用通信电路系统可以包括组件1364、1366、1368或1370中的任何一个或多个,或由组件1364、1366、1368或1370中的任何一个或多个来具体化。因此,在各示例中,用于通信(例如,接收、传送等)的可适用装置可由此类通信电路系统来具体化。
边缘计算节点1350可以包括或被耦合到加速电路系统1364,该加速电路系统1364可以由一个或多个人工智能(AI)加速器、神经计算棒、神经形态硬件、FPGA、GPU的布置、xPU/DPU/IPU/NPU的布置、一个或多个SoC、一个或多个CPU、一个或多个数字信号处理器、专用ASIC、或被设计用于完成一个或多个专门任务的其他形式的专门处理器或电路系统来具体化。这些任务可以包括AI处理(包括机器学习、训练、推理、和分类操作)、视觉数据处理、网络数据处理、对象检测、规则分析等。这些任务还可包括用于本文档中其他地方讨论的服务管理和服务操作的特定边缘计算任务。
互连1356可将处理器1352耦合至用于连接附加的设备或子系统的传感器中枢或外部接口1370。设备可包括传感器1372,诸如加速度计、水平传感器、流量传感器、光学光传感器、相机传感器、温度传感器、全球定位系统(例如,GPS)传感器、压力传感器、气压传感器,等等。中枢或接口1370可进一步用于将边缘计算节点1350连接至致动器1374,该致动器1374诸如功率开关、阀致动器、可听声音发生器、视觉警告设备等。
在一些任选的示例中,各种输入/输出(I/O)设备可存在于边缘计算节点1350内,或可连接至边缘计算节点1350。例如,可包括显示器或其他输出设备1384来显示信息,该信息诸如传感器读数或致动器位置。可以包括输入设备1386(诸如触摸屏或小键盘)来接受输入。输出设备1384可包括任何数量的音频或视觉显示形式,包括:简单视觉输出,诸如二进制状态指示器(例如,发光二极管(LED));以及多字符视觉输出;或更复杂的输出,诸如显示屏(例如,液晶显示器(LCD)屏),其具有从边缘计算节点1350的操作生成或产生的字符、图形、多媒体对象等的输出。在本系统的情境中,显示器或控制台硬件可用于:提供边缘计算系统的输出并接收边缘计算系统的输入;管理边缘计算系统的组件或服务;标识边缘计算组件或服务的状态;或进行任何其他数量的管理或管理功能或服务用例。
电池1376可为边缘计算节点1350供电,但是在其中边缘计算节点1350被安装在固定位置的示例中,该边缘计算节点1350可具有耦合至电网的电源,或者电池可以用作备用或用于临时功能。电池1376可以是锂离子电池或金属-空气电池(诸如锌-空气电池、铝-空气电池、锂-空气电池),等等。
电池监测器/充电器1378可被包括在边缘计算节点1350中以跟踪电池1376(如果包括的话)的充电状态(SoCh)。电池监测器/充电器1378可用于监测电池1376的其他参数以提供失效预测,诸如电池1376的健康状态(SoH)和功能状态(SoF)。电池监测器/充电器1378可包括电池监测集成电路,诸如来自线性技术公司(Linear Technologies)的LTC4020或LTC2990、来自亚利桑那州的凤凰城的安森美半导体公司(ON Semiconductor)的ADT7488A、或来自德克萨斯州达拉斯的德州仪器公司的UCD90xxx族的IC。电池监测器/充电器1378可通过互连1356将关于电池1376的信息传输至处理器1352。电池监测器/充电器1378也可包括使处理器1352能够直接监测电池1376的电压或来自电池1376的电流的模数(ADC)转换器。电池参数可被用于确定边缘计算节点1350可执行的动作,该电池参数诸如传输频率、网格网络操作、感测频率,等等。
功率块1380或耦合至电网的其他电源可与电池监测器/充电器1378耦合以对电池1376充电。在一些示例中,功率块1380可用无线功率接收器代替,以例如通过边缘计算节点1350中的环形天线来无线地获得功率。无线电池充电电路(诸如来自加利福尼亚州的苗比达市的线性技术公司的LTC4020芯片,等等)可被包括在电池监测器/充电器1378中。可以基于电池1376的尺寸并且因此基于所要求的电流来选择特定的充电电路。可使用由无线充电联盟(Airfuel Alliance)颁布的Airfuel标准、由无线电力协会(Wireless PowerConsortium)颁布的Qi无线充电标准、或由无线电力联盟(Alliance for Wireless Power)颁布的Rezence充电标准等等来执行充电。
存储1358可包括用于实现本文中公开的技术的采用软件、固件或硬件命令形式的指令1382。虽然此类指令1382被示出为被包括在存储器1354和存储1358中的代码块,但是可以理解,可用例如被内置到专用集成电路(ASIC)中的硬连线电路来代替代码块中的任一个。
在示例中,经由存储器1354、存储1358或处理器1352提供的指令1382可被具体化为非瞬态机器可读介质1360,该非瞬态机器可读介质1360包括用于引导处理器1352执行边缘计算节点1350中的电子操作的代码。处理器1352可通过互连1356来访问非瞬态机器可读介质1360。例如,非瞬态机器可读介质1360可由针对存储1358所描述的设备来具体化,或者可包括特定的存储单元,诸如光盘、闪存驱动器或任何数量的其他硬件设备。非瞬态机器可读介质1360可包括用于引导处理器1352执行例如像参照上文中描绘的操作和功能的(多个)流程图和(多个)框图而描述的特定的动作序列或动作流的指令。如本文中所使用,术语“机器可读介质”和“计算机可读介质”是可互换的。
而且,在特定示例中,处理器1352上的指令1382(单独地或与机器可读介质1360的指令1382结合)可以配置受信任执行环境(TEE)1390的执行或操作。在示例中,TEE 1390作为处理器1352可访问的受保护区域来操作,以用于指令的安全执行和对数据的安全访问。例如,可以通过使用
Figure BDA0003712253040000421
Figure BDA0003712253040000422
软件防护扩展(SGX)或
Figure BDA0003712253040000423
硬件安全扩展、
Figure BDA0003712253040000424
Figure BDA0003712253040000425
管理引擎(ME)或
Figure BDA0003712253040000426
融合安全可管理性引擎(CSME)来提供TEE1390的各种实现方式以及处理器1352或存储器1354中伴随的安全性区域。安全强化、硬件信任根、和受信任或受保护操作的其他方面可以通过TEE 1390和处理器1352在设备1350中实现。
软件分发
图14图示出用于将软件分发至一个或多个设备的示例软件分发平台1405,该软件诸如图13B的示例计算机可读指令1382,该一个或多个设备诸如贯穿本公开所描述的(多个)示例处理器平台1400和/或示例连接的边缘设备。示例软件分发平台1405可由能够存储软件并将软件传送到其他计算设备(例如,第三方、贯穿本公开所描述的示例连接的边缘设备)的任何计算机服务器、数据设施、云服务等来实现。示例连接的边缘设备可以是客户方、客户端、管理设备(例如,服务器)、第三方(例如,拥有和/或操作软件分发平台1405的实体的客户方)。示例连接的边缘设备可在商业和/或家庭自动环境中操作。在一些示例中,第三方是诸如图13B的示例计算机可读指令1382之类的软件的开发方、销售方和/或许可方。第三方可以是购买和/或许可软件以用于使用和/或转售和/或分许可的消费方、用户、零售商、OEM等。在一些示例中,所分发的软件引起一个或多个用户界面(UI)和/或图形用户界面(GUI)的显示,以标识地理上或逻辑上彼此分离的一个或多个设备(例如,连接的边缘设备)(例如,被特许负责配水控制的物理上分离的IoT设备(例如,泵)、被特许负责配电控制的物理上分离的IoT设备(例如,继电器)等)。
在图14的所图示示例中,软件分发平台1405包括一个或多个服务器以及一个或多个存储设备。存储设备存储计算机可读指令1382,这些计算机可读指令1382可实现贯穿本公开所描述的计算机视觉流水线功能。示例软件分发平台1405的一个或多个服务器与网络1410通信,该网络1410可以与因特网和/或贯穿本公开所描述的示例网络中的任何网络中的任何一者或多者相对应。在一些示例中,作为商业事务的一部分,一个或多个服务器响应于将软件传送到请求方的请求。可以由软件分发平台的一个或多个服务器和/或经由第三方支付实体来处置针对软件的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从软件分发平台1405下载计算机可读指令1382。例如,包括计算机可读指令1382的软件可被下载至(多个)示例处理器平台1400(例如,示例连接的边缘设备),该(多个)示例处理器平台1400用于执行计算机可读指令1382以实现贯穿本公开所描述的功能。在一些示例中,软件分发平台1405的一个或多个服务器通信地连接至一个或多个安全域和/或安全设备,示例计算机可读指令1382的请求和传送必须穿过该一个或多个安全域和/或安全设备。在一些示例中,软件分发平台1405的一个或多个服务器周期性地提供、传送和/或强制进行软件(例如,图13B的示例计算机可读指令1382)更新以确保改善、补丁、更新等被分发并应用于端用户设备处的软件。
在图14的所图示示例中,计算机可读指令1382以特定的格式被存储在软件分发平台1405的存储设备上。计算机可读指令的格式包括但不限于,特定的代码语言(例如,Java、JavaScript、Python、C、C#、SQL、HTML等)和/或特定的代码状态(例如,未经编译的代码(例如,ASCII)、经解释的代码、链接的代码、可执行代码(例如,二进制文件)等)。在一些示例中,软件分发平台1405中所存储的计算机可读指令1382在被传送至(多个)处理器平台1400时采用第一格式。在一些示例中,第一格式是特定类型的(多个)处理器平台1400可以按其来执行的可执行二进制文件。然而,在一些示例中,第一格式是未经编译的代码,其要求一个或多个准备任务将第一格式转换为第二格式以使得能够在(多个)示例处理器平台1400上执行。例如,(多个)接收处理器平台1400可能需要对采用第一格式的计算机可读指令1382进行编译,以生成能够在(多个)处理器平台1400上执行的采用第二格式的可执行代码。在另外的其他示例中,第一格式是经解释的代码,其在到达(多个)处理器平台1400后由解释器进行解释以促进指令的执行。
在进一步的示例中,机器可读介质也包括任何有形介质,该有形介质能够存储、编码或携载供由机器执行并且使机器执行本公开方法中的任何一种或多种方法的指令,或者该有形介质能够储存、编码或携载由此类指令利用或与此类指令相关联的数据结构。“机器可读介质”因此可包括但不限于固态存储器、光学介质和磁介质。机器可读介质的特定示例包括非易失性存储器,作为示例,包括但不限于:半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存存储器设备);诸如内部硬盘及可移除盘之类的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。可使用传输介质,经由网络接口设备,利用数个传输协议中的任何一种协议(例如,超文本传输协议(HTTP)),进一步通过通信网络来传送或接收由机器可读介质具体化的指令。
机器可读介质可以由能够以非瞬态格式主控数据的存储设备或其他装置提供。在示例中,存储在机器可读介质上或以其他方式提供在机器可读介质上的信息可以表示指令,诸如指令本身或者可以从中导出指令的格式。可以从中导出指令的该格式可以包括源代码、经编码的指令(例如,以压缩或加密的形式)、经封装的指令(例如,分成多个封装)等。表示机器可读介质中的指令的信息可以由处理电路系统处理成指令以实现本文所讨论的任何操作。例如,从信息中导出指令(例如,由处理电路进行的处理)可以包括:(例如,从源代码、目标代码等)编译、解释、加载、组织(例如,动态地或静态地进行链接)、编码、解码、加密、解密、打包、拆包,或者以其他方式将信息操纵到指令中。
在示例中,指令的推导可以包括(例如,通过处理电路系统)对信息进行汇编、编译、或解释,以从机器可读介质提供的某个中间或预处理的格式创建指令。当信息以多个部分提供时,可以对其进行组合、拆包和修改以创建指令。例如,信息可以处于一个或若干远程服务器上的多个经压缩的源代码封装(或目标代码、或二进制可执行代码等)中。源代码封装可以在通过网络传输时被加密,并且可以在本地机器处被解密、被解压缩、(如果必要的话)被汇编(例如,被链接),并且被编译或被解释(例如被编译或被解释成库、独立的可执行文件等),并且由本地机器执行。
示例实施例
下文提供了贯穿本公开所描述的技术的说明性示例。这些技术的实施例可包括下文所描述的示例中的任何一个或多个示例及其任何组合。在一些实施例中,前述图中的一个或多个图中所阐述的系统或组件中的至少一个可被配置成用于执行下列示例中所阐述的一个或多个操作、技术、过程和/或方法。
示例1包括一种用于针对计算机视觉(CV)流水线实现计算基础设施的节点的计算设备,该计算设备包括:接口电路系统;以及处理电路系统,该处理电路系统用于:经由接口电路系统接收用于通过CV流水线处理的视频流,其中CV流水线包括用于对视频流执行的任务序列;在节点上执行CV流水线的第一部分;经由接口电路系统接收针对执行CV流水线的第二部分的对等节点可用性,其中对等节点可用性指示计算基础设施中的多个对等节点可用于执行来自CV流水线的第二部分的哪些任务;将CV流水线的第二部分分区用于被迁移到对等节点的子集的为一个或多个部分CV流水线,其中对等节点的子集基于对等节点可用性而从多个对等节点被选择;以及经由接口电路系统将一个或多个部分CV流水线迁移到该对等节点的子集。
示例2包括示例1的计算设备,其中一个或多个部分CV流水线各自包括来自CV流水线的第二部分的、用于被迁移到对等节点的子集中的对应对等节点的对应任务子集。
示例3包括示例1的计算设备,其中处理电路系统为了在节点上执行CV流水线的第一部分而进一步用于:基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从该节点被迁移。
示例4包括示例3的计算设备,其中CV流水线的运行时上下文包括:节点上的可用计算能力;通过CV流水线处理视频流中的一种或多种类型的视频内容的所需计算能力;以及与CV流水线或计算基础设施相关联的一个或多个性能目标。
示例5包括示例4的计算设备,其中一个或多个性能目标包括以下各项中的一项或多项:与CV流水线相关联的第一性能目标,其中第一性能目标在CV流水线的服务水平协议(SLA)中被指定;或者与计算基础设施相关联的第二性能目标,其中计算基础设施包括多个智能相机和一个或多个边缘服务器装置,并且其中第二性能目标用于使一个或多个边缘服务器装置上的负载最小化。
示例6包括示例3的计算设备,其中CV流水线的运行时上下文包括以下各项中的一项或多项:CV流水线在当前时间的实际运行时上下文;或者CV流水线在未来时间的预测运行时上下文,其中预测运行时上下文基于被训练成用于基于CV流水线的过去运行时上下文来预测CV流水线的未来运行时上下文的机器学习(ML)模型而被预测。
示例7包括示例6的计算设备,其中处理电路系统为了基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从节点被迁移而进一步用于:经由接口电路系统接收基于CV流水线在未来时间的预测运行时上下文来迁移CV流水线的第二部分的推荐。
示例8包括示例3的计算设备,其中处理电路系统进一步用于:基于CV流水线的运行时上下文来确定CV流水线中的一个或多个任务的性能要被调节;以及对CV流水线的一个或多个处理模块进行变形,以调节一个或多个任务的性能,其中一个或多个任务由一个或多个处理模块实现。
示例9包括示例8的计算设备,其中处理电路系统为了对CV流水线的一个或多个处理模块进行变形以调节一个或多个任务的性能而进一步用于:对机器学习(ML)处理模块进行变形,以调节CV流水线中的ML推理任务的性能,其中:ML推理任务用于推理视频流中捕获的视频内容的类型;ML处理模块基于第一ML模型来实现ML推理任务;并且ML处理模块被变形以用具有不同的性能特性的第二ML模型取代第一ML模型。
示例10包括示例1的计算设备,其中:计算设备是智能相机,其中智能相机捕获视频流;或者计算设备是边缘服务器装置,其中边缘服务器装置从智能相机接收视频流。
示例11包括至少一种非瞬态机器可读存储介质,具有存储于其上的指令,其中这些指令当在计算基础设施中的节点的处理电路系统上执行时使该处理电路系统用于:经由接口电路系统接收用于通过计算机视觉(CV)流水线处理的视频流,其中CV流水线包括用于对视频流执行的任务序列;在节点上执行CV流水线的第一部分;基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从节点被迁移;经由接口电路系统接收针对执行CV流水线的第二部分的对等节点可用性,其中对等节点可用性指示计算基础设施中的多个对等节点可用于执行来自CV流水线的第二部分的哪些任务;将CV流水线的第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中对等节点的子集基于对等节点可用性而从多个对等节点被选择;以及经由接口电路系统将一个或多个部分CV流水线迁移到该对等节点的子集。
示例12包括示例11的存储介质,其中一个或多个部分CV流水线各自包括来自CV流水线的第二部分的、用于被迁移到对等节点的子集中的对应对等节点的对应任务子集。
示例13包括示例11的存储介质,其中CV流水线的运行时上下文包括:节点上的可用计算能力;通过CV流水线处理视频流中的一种或多种类型的视频内容的所需计算能力;以及与CV流水线或计算基础设施相关联的一个或多个性能目标。
示例14包括示例13的存储介质,其中一个或多个性能目标包括以下各项中的一项或多项:与CV流水线相关联的第一性能目标,其中第一性能目标在CV流水线的服务水平协议(SLA)中被指定;或者与计算基础设施相关联的第二性能目标,其中计算基础设施包括多个智能相机和一个或多个边缘服务器装置,并且其中第二性能目标用于使一个或多个边缘服务器装置上的负载最小化。
示例15包括示例11的存储介质,其中CV流水线的运行时上下文包括以下各项中的一项或多项:CV流水线在当前时间的实际运行时上下文;或者CV流水线在未来时间的预测运行时上下文,其中预测运行时上下文基于被训练成用于基于CV流水线的过去运行时上下文来预测CV流水线的未来运行时上下文的机器学习(ML)模型而被预测。
示例16包括示例15的存储介质,其中使处理电路系统用于基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从节点被迁移的指令进一步使处理电路系统用于:经由接口电路系统接收基于CV流水线在未来时间的预测运行时上下文来迁移CV流水线的第二部分的推荐。
示例17包括示例11的存储介质,其中指令进一步使处理电路系统用于:基于CV流水线的运行时上下文来确定CV流水线中一个或多个任务的性能要被调节;以及对CV流水线的一个或多个处理模块进行变形,以调节一个或多个任务的性能,其中一个或多个任务由一个或多个处理模块实现。
示例18包括示例17的存储介质,其中使处理电路系统用于对CV流水线的一个或多个处理模块进行变形以调节一个或多个任务的性能的指令进一步使处理电路系统用于:对机器学习(ML)处理模块进行变形,以调节CV流水线中的ML推理任务的性能,其中:ML推理任务用于推理视频流中捕获的视频内容的类型;ML处理模块基于第一ML模型来实现ML推理任务;并且ML处理模块被变形以用具有不同的性能特性的第二ML模型取代第一ML模型。
示例19包括一种通过计算基础设施上的计算机视觉(CV)流水线处理视频流的方法,包括:接收用于通过CV流水线处理的视频流,其中CV流水线包括用于对视频流执行的任务序列;在计算基础设施的第一节点上执行CV流水线的第一部分;基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从第一节点被迁移;接收针对执行CV流水线的第二部分的对等节点可用性,其中对等节点可用性指示计算基础设施中的多个对等节点可用于执行来自CV流水线的第二部分的哪些任务;将CV流水线的第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中对等节点的子集基于对等节点可用性而从多个对等节点被选择;以及将一个或多个部分CV流水线迁移到该对等节点的子集。
示例20包括示例19的方法,其中CV流水线的运行时上下文包括:第一节点上的可用计算能力;通过CV流水线处理视频流中的一种或多种类型的视频内容的所需计算能力;以及与CV流水线或计算基础设施相关联的一个或多个性能目标。
示例21包括示例19的方法,其中CV流水线的运行时上下文包括以下各项中的一项或多项:CV流水线在当前时间的实际运行时上下文;或者CV流水线在未来时间的预测运行时上下文,其中预测运行时上下文基于被训练成用于基于CV流水线的过去运行时上下文来预测CV流水线的未来运行时上下文的机器学习(ML)模型而被预测。
示例22包括示例19的方法,进一步包括:基于CV流水线的运行时上下文来确定CV流水线中的一个或多个任务的性能要被调节;以及对CV流水线的一个或多个处理模块进行变形,以调节一个或多个任务的性能,其中一个或多个任务由一个或多个处理模块实现。
示例23包括示例22的方法,其中对CV流水线的一个或多个处理模块进行变形以调节一个或多个任务的性能包括:对机器学习(ML)处理模块进行变形,以调节CV流水线中的ML推理任务的性能,其中:ML推理任务用于推理视频流中捕获的视频内容的类型;ML处理模块基于第一ML模型来实现ML推理任务;并且ML处理模块被变形以用具有不同的性能特性的第二ML模型取代第一ML模型。
示例24包括一种用于针对计算机视觉(CV)流水线实现计算基础设施的节点的系统,包括:接口电路系统;加速器电路系统,该加速器电路系统用于加速一个或多个机器学习(ML)推理任务;以及处理电路系统,该处理电路系统用于:经由接口电路系统接收用于通过CV流水线处理的视频流,其中CV流水线包括用于对视频流执行的任务序列;在节点上执行CV流水线的第一部分,其中一个或多个ML推理任务被包括在CV流水线的第一部分中并使用加速器电路系统被加速;基于CV流水线的运行时上下文来确定CV流水线的第二部分用于从节点被迁移;经由接口电路系统接收针对执行CV流水线的第二部分的对等节点可用性,其中对等节点可用性指示计算基础设施中的多个对等节点可用于执行来自CV流水线的第二部分的哪些任务;将CV流水线的第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中对等节点的子集基于对等节点可用性而从多个对等节点被选择;以及经由接口电路系统将一个或多个部分CV流水线迁移到该对等节点的子集。
示例25包括示例24的系统,其中:系统是智能相机,其中智能相机捕获视频流;或系统是边缘服务器装置,其中边缘服务器装置从智能相机接收视频流。
尽管本公开的概念易于具有各种修改和替代形式,但是,本公开的特定实施例已作为示例在附图中示出并在本文中详细描述。然而,应当理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。而且,此类短语不一定是指同一实施例。进一步地,当结合实施例来描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例来实施此类特征、结构或特性均落在本领域技术人员的知识范围之内。另外,应当领会,以“A、B和C中的至少一者”的形式包括在列表中的项可意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一者”的形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例也可被实现为由一个或多个瞬态或非瞬态机器可读(例如,计算机可读)存储介质承载或被存储在其上的指令,这些指令可由一个或多个处理器读取和执行。机器可读存储介质可被具体化为用于以可由机器读取的形式存储或传送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘、或其他介质设备)。
在附图中,一些结构或方法特征可按特定布置和/或排序示出。然而,应当领会,此类特定布置和/或排序可以不是必需的。相反,在一些实施例中,可以以与在说明性附图中示出的不同的方式和/或次序来布置此类特征。附加地,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中,可以不包括此类特征,或此类特征可以与其他特征组合。

Claims (25)

1.一种用于针对计算机视觉CV流水线实现计算基础设施的节点的计算设备,包括:
接口电路系统;以及
处理电路系统,所述处理电路系统用于:
经由所述接口电路系统接收用于通过所述CV流水线处理的视频流,其中所述CV流水线包括用于对所述视频流执行的任务序列;
在所述节点上执行所述CV流水线的第一部分;
经由所述接口电路系统接收针对执行所述CV流水线的第二部分的对等节点可用性,其中所述对等节点可用性指示所述计算基础设施中的多个对等节点可用于执行来自所述CV流水线的所述第二部分的哪些任务;
将所述CV流水线的所述第二部分分区为用于迁移到对等节点的子集的一个或多个部分CV流水线,其中所述对等节点的子集基于所述对等节点可用性而从所述多个对等节点被选择;以及
经由所述接口电路系统将所述一个或多个部分CV流水线迁移到所述对等节点的子集。
2.如权利要求1所述的计算设备,其特征在于:
所述计算设备是智能相机,其中所述智能相机捕获所述视频流;或者
所述计算设备是边缘服务器装置,其中所述边缘服务器装置从所述智能相机接收所述视频流。
3.如权利要求1所述的计算设备,其特征在于,所述一个或多个部分CV流水线各自包括来自所述CV流水线的所述第二部分的、用于被迁移到所述对等节点的子集中的对应对等节点的对应任务子集。
4.如权利要求1-3中任一项所述的计算设备,其特征在于,所述处理电路系统为了在所述节点上执行所述CV流水线的所述第一部分而进一步用于:
基于所述CV流水线的运行时上下文来确定所述CV流水线的所述第二部分用于从所述节点被迁移。
5.如权利要求4所述的计算设备,其特征在于,所述CV流水线的所述运行时上下文包括:
所述节点上的可用计算能力;
通过所述CV流水线处理所述视频流中一种或多种类型的视频内容的所需计算能力;以及
与所述CV流水线或所述计算基础设施相关联的一个或多个性能目标。
6.如权利要求5所述的计算设备,其特征在于,所述一个或多个性能目标包括以下各项中的一项或多项:
与所述CV流水线相关联的第一性能目标,其中所述第一性能目标在所述CV流水线的服务水平协议SLA中被指定;或者
与所述计算基础设施相关联的第二性能目标,其中所述计算基础设施包括多个智能相机和一个或多个边缘服务器装置,并且其中所述第二性能目标用于使所述一个或多个边缘服务器装置上的负载最小化。
7.如权利要求4所述的计算设备,其特征在于,所述CV流水线的所述运行时上下文包括以下各项中的一项或多项:
所述CV流水线在当前时间的实际运行时上下文;或者
所述CV流水线在未来时间的预测运行时上下文,其中所述预测运行时上下文基于被训练成用于基于所述CV流水线的过去运行时上下文来预测所述CV流水线的未来运行时上下文的机器学习ML模型而被预测。
8.如权利要求7所述的计算设备,其特征在于,所述处理电路系统为了基于所述CV流水线的所述运行时上下文来确定所述CV流水线的所述第二部分用于从所述节点被迁移而进一步用于:
经由所述接口电路系统接收基于所述CV流水线在所述未来时间的所述预测运行时上下文来迁移所述CV流水线的所述第二部分的推荐。
9.如权利要求4所述的计算设备,其特征在于,所述处理电路系统进一步用于:
基于所述CV流水线的所述运行时上下文来确定所述CV流水线中的一个或多个任务的性能要被调节;以及
对所述CV流水线的一个或多个处理模块进行变形,以调节所述一个或多个任务的性能,其中所述一个或多个任务由所述一个或多个处理模块实现。
10.如权利要求9所述的计算设备,其特征在于,所述处理电路系统为了对所述CV流水线的所述一个或多个处理模块进行变形以调节所述一个或多个任务的性能而进一步用于:
对机器学习ML处理模块进行变形,以调节所述CV流水线中的ML推理任务的性能,其中:
所述ML推理任务用于推理所述视频流中捕获的视频内容的类型;
所述ML处理模块基于第一ML模型来实现所述ML推理任务;并且
所述ML处理模块被变形以用具有不同的性能特性的第二ML模型取代所述第一ML模型。
11.至少一种非瞬态机器可读存储介质,具有存储于其上的指令,其特征在于,所述指令当在计算基础设施中的节点的处理电路系统上执行时使所述处理电路系统用于:
经由接口电路系统接收用于通过计算机视觉CV流水线处理的视频流,其中所述CV流水线包括用于对所述视频流执行的任务序列;
在所述节点上执行所述CV流水线的第一部分;
基于所述CV流水线的运行时上下文来确定所述CV流水线的第二部分用于从所述节点被迁移;
经由所述接口电路系统接收针对执行所述CV流水线的所述第二部分的对等节点可用性,其中所述对等节点可用性指示所述计算基础设施中的多个对等节点可用于执行来自所述CV流水线的所述第二部分的哪些任务;
将所述CV流水线的所述第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中所述对等节点的子集基于所述对等节点可用性而从所述多个对等节点被选择;以及
经由所述接口电路系统将所述一个或多个部分CV流水线迁移到所述对等节点的子集。
12.如权利要求11所述的存储介质,其特征在于,所述一个或多个部分CV流水线各自包括来自所述CV流水线的所述第二部分的、用于被迁移到所述对等节点的子集中的对应对等节点的对应任务子集。
13.如权利要求11-12中任一项所述的存储介质,其特征在于,所述CV流水线的所述运行时上下文包括:
所述节点上的可用计算能力;
通过所述CV流水线处理所述视频流中的一种或多种类型的视频内容的所需计算能力;以及
与所述CV流水线或所述计算基础设施相关联的一个或多个性能目标。
14.如权利要求13所述的存储介质,其特征在于,所述一个或多个性能目标包括以下各项中的一项或多项:
与所述CV流水线相关联的第一性能目标,其中所述第一性能目标在所述CV流水线的服务水平协议SLA中被指定;或者
与所述计算基础设施相关联的第二性能目标,其中所述计算基础设施包括多个智能相机和一个或多个边缘服务器装置,并且其中所述第二性能目标用于使所述一个或多个边缘服务器装置上的负载最小化。
15.如权利要求11-12中任一项所述的存储介质,其特征在于,所述CV流水线的所述运行时上下文包括以下各项中的一项或多项:
所述CV流水线在当前时间的实际运行时上下文;或者
所述CV流水线在未来时间的预测运行时上下文,其中所述预测运行时上下文基于被训练成用于基于所述CV流水线的过去运行时上下文来预测所述CV流水线的未来运行时上下文的机器学习ML模型而被预测。
16.如权利要求15所述的存储介质,其特征在于,使所述处理电路系统用于基于所述CV流水线的所述运行时上下文来确定所述CV流水线的所述第二部分用于从所述节点被迁移的所述指令进一步使处理电路系统用于:
经由所述接口电路系统接收基于所述CV流水线在所述未来时间的所述预测运行时上下文来迁移所述CV流水线的所述第二部分的推荐。
17.如权利要求11-12中任一项所述的存储介质,其中,所述指令进一步使所述处理电路系统用于:
基于所述CV流水线的所述运行时上下文来确定所述CV流水线中的一个或多个任务的性能要被调节;以及
对所述CV流水线的一个或多个处理模块进行变形,以调节所述一个或多个任务的性能,其中所述一个或多个任务由所述一个或多个处理模块实现。
18.如权利要求17所述的存储介质,其特征在于,使所述处理电路系统用于对所述CV流水线的所述一个或多个处理模块进行变形以调节所述一个或多个任务的性能的所述指令进一步使处理电路系统用于:
对机器学习ML处理模块进行变形,以调节所述CV流水线中的ML推理任务的性能,其中:
所述ML推理任务用于推理所述视频流中捕获的视频内容的类型;
所述ML处理模块基于第一ML模型来实现所述ML推理任务;并且
所述ML处理模块被变形以用具有不同的性能特性的第二ML模型取代所述第一ML模型。
19.一种通过计算基础设施上的计算机视觉CV流水线处理视频流的方法,包括:
接收用于通过所述CV流水线处理的所述视频流,其中所述CV流水线包括用于对所述视频流执行的任务序列;
在所述计算基础设施的第一节点上执行所述CV流水线的第一部分;
基于所述CV流水线的运行时上下文来确定所述CV流水线的第二部分用于从所述第一节点被迁移;
接收针对执行所述CV流水线的所述第二部分的对等节点可用性,其中所述对等节点可用性指示所述计算基础设施中的多个对等节点可用于执行来自所述CV流水线的所述第二部分的哪些任务;
将所述CV流水线的所述第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中所述对等节点的子集基于所述对等节点可用性而从所述多个对等节点被选择;以及
将所述一个或多个部分CV流水线迁移到所述对等节点的子集。
20.如权利要求19所述的方法,其特征在于,所述CV流水线的所述运行时上下文包括:
所述第一节点上的可用计算能力;
通过所述CV流水线处理所述视频流中的一种或多种类型的视频内容的所需计算能力;以及
与所述CV流水线或所述计算基础设施相关联的一个或多个性能目标。
21.如权利要求19所述的方法,其特征在于,所述CV流水线的所述运行时上下文包括以下各项中的一项或多项:
所述CV流水线在当前时间的实际运行时上下文;或者
所述CV流水线在未来时间的预测运行时上下文,其中所述预测运行时上下文基于被训练成用于基于所述CV流水线的过去运行时上下文来预测所述CV流水线的未来运行时上下文的机器学习ML模型而被预测。
22.如权利要求19-21中任一项所述的方法,进一步包括:
基于所述CV流水线的所述运行时上下文来确定所述CV流水线中的一个或多个任务的性能要被调节;以及
对所述CV流水线的一个或多个处理模块进行变形,以调节所述一个或多个任务的性能,其中所述一个或多个任务由所述一个或多个处理模块实现。
23.如权利要求22所述的方法,其特征在于,对所述CV流水线的所述一个或多个处理模块进行变形以调节所述一个或多个任务的性能包括:
对机器学习ML处理模块进行变形,以调节所述CV流水线中的ML推理任务的性能,其中:
所述ML推理任务用于推理所述视频流中捕获的视频内容的类型;
所述ML处理模块基于第一ML模型来实现所述ML推理任务;并且
所述ML处理模块被变形以用具有不同的性能特性的第二ML模型取代所述第一ML模型。
24.一种用于针对计算机视觉CV流水线实现计算基础设施的节点的系统,包括:
接口电路系统;
加速器电路系统,所述加速器电路系统用于加速一个或多个机器学习ML推理任务;以及
处理电路系统,所述处理电路系统用于:
经由所述接口电路系统接收用于通过所述CV流水线处理的视频流,其中所述CV流水线包括用于对所述视频流执行的任务序列;
在所述节点上执行所述CV流水线的第一部分,其中所述一个或多个ML推理任务被包括在所述CV流水线的所述第一部分中并使用所述加速器电路系统被加速;
基于所述CV流水线的运行时上下文来确定所述CV流水线的第二部分用于从所述节点被迁移;
经由所述接口电路系统接收针对执行所述CV流水线的所述第二部分的对等节点可用性,其中所述对等节点可用性指示所述计算基础设施中的多个对等节点可用于执行来自所述CV流水线的所述第二部分的哪些任务;
将所述CV流水线的所述第二部分分区为用于被迁移到对等节点的子集的一个或多个部分CV流水线,其中所述对等节点的子集基于所述对等节点可用性而从所述多个对等节点被选择;以及
经由所述接口电路系统将所述一个或多个部分CV流水线迁移到所述对等节点的子集。
25.如权利要求24所述的系统,其特征在于:
所述系统是智能相机,其中所述智能相机捕获所述视频流;或者
所述系统是边缘服务器装置,其中所述边缘服务器装置从所述智能相机接收所述视频流。
CN202210729211.3A 2021-06-26 2022-06-24 变形计算机视觉流水线 Pending CN115525405A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/359,521 2021-06-26
US17/359,521 US20210327018A1 (en) 2021-06-26 2021-06-26 Morphing computer vision pipeline

Publications (1)

Publication Number Publication Date
CN115525405A true CN115525405A (zh) 2022-12-27

Family

ID=78080889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210729211.3A Pending CN115525405A (zh) 2021-06-26 2022-06-24 变形计算机视觉流水线

Country Status (3)

Country Link
US (1) US20210327018A1 (zh)
EP (1) EP4109387A1 (zh)
CN (1) CN115525405A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11394799B2 (en) 2020-05-07 2022-07-19 Freeman Augustus Jackson Methods, systems, apparatuses, and devices for facilitating for generation of an interactive story based on non-interactive data
US11880950B2 (en) 2022-03-14 2024-01-23 Meta Platforms Technologies, Llc Selective offload of workloads to edge devices
US20220247970A1 (en) * 2022-03-14 2022-08-04 Facebook Technologies, Llc Offloading Visual Frames to a Gateway Device
US20230412469A1 (en) * 2022-05-25 2023-12-21 Verizon Patent And Licensing Inc. Systems and methods for selecting a machine learning model and training images for the machine learning model

Also Published As

Publication number Publication date
US20210327018A1 (en) 2021-10-21
EP4109387A1 (en) 2022-12-28

Similar Documents

Publication Publication Date Title
NL2029029B1 (en) Methods and apparatus to coordinate edge platforms
US20210014114A1 (en) Methods, apparatus, and articles of manufacture for workload placement in an edge environment
US20210004265A1 (en) Elastic power scaling
US20210109584A1 (en) Adaptive power management for edge device
NL2029044B1 (en) Intelligent data forwarding in edge networks
CN114253659A (zh) 网格的编排
US20210119962A1 (en) Neutral host edge services
US20210021431A1 (en) Methods, apparatus and systems to share compute resources among edge compute nodes using an overlay manager
US20210327018A1 (en) Morphing computer vision pipeline
US20210328886A1 (en) Methods and apparatus to facilitate service proxying
EP4155933A1 (en) Network supported low latency security-based orchestration
US20220114010A1 (en) Cooperative management of dynamic edge execution
US20210117697A1 (en) Edge automatic and adaptive processing activations
US20220116478A1 (en) Microservice latency reduction
US20220138156A1 (en) Method and apparatus providing a tiered elastic cloud storage to increase data resiliency
EP3985500A1 (en) Methods and apparatus for re-use of a container in an edge computing environment
US20220222584A1 (en) Heterogeneous compute-based artificial intelligence model partitioning
US20220116289A1 (en) Adaptive cloud autoscaling
US20230119552A1 (en) Resource management mechanisms for stateful serverless clusters in edge computing
EP4203381A1 (en) Methods and apparatus for attestation for a constellation of edge devices
EP4109259A1 (en) Power-based adaptive hardware reliability on a device
US20220114033A1 (en) Latency and dependency-aware task scheduling workloads on multicore platforms using for energy efficiency
WO2022271042A1 (en) Automated node configuration tuning in edge systems
US20210119935A1 (en) Objective driven orchestration
US20230018221A1 (en) Adjusting power parameters for frequency control in compute systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication