首页> 中国专利> 在嵌入式平台上使用共享服务器支持多视觉流的架构和方法

在嵌入式平台上使用共享服务器支持多视觉流的架构和方法

摘要

公开了一种在多处理器系统中用于处理多个感知流的方法。该方法包括:根据由预定策略确定的读取调度,从多个感知流中读取数据,每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配唯一的标识标记;基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列;以及使用服务器处理标记的感知流。该处理包括:从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。该方法还包括从服务器输出队列中检索已处理的感知流,并基于与检索到的已处理的感知流相关联的标记将每个检索到的已处理的感知流分配到适当的后处理目的地。

著录项

  • 公开/公告号CN112306672A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利号CN202010765230.2

  • 发明设计人 S.王;M.杨;W.童;U.杜塔博多洛伊;

    申请日2020-08-03

  • 分类号G06F9/50(20060101);G06F9/54(20060101);G06N3/04(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人王增强

  • 地址 美国密歇根州

  • 入库时间 2023-06-19 09:46:20

说明书

技术领域

该专利文件中描述的技术通常涉及计算机系统,并且更具体地涉及允许共享处理资源的计算机系统架构。

背景技术

诸如DLNN(深度学习神经网络)算法之类的现代高级视觉处理算法在控制器上引入了高计算量和存储器工作量。这可以将可以由控制器同时处理的视觉流的数量限制较小数量。

高级自动驾驶车辆(AV)和高级驾驶员辅助系统(ADAS)应用程序利用多个感知设备,例如摄像机,因此处理来自多个感知设备的数据。来自感知设备的感知流的处理可以涉及CPU(中央处理单元)和加速器(例如GPU、DSP、FPGA)两者的计算。当多个感知流需要计算时,多个感知流的处理可能涉及多个CPU和加速器的计算,而这些CPU和加速器通常由多个感知流共享。这些设备、CPU和加速器上的计算可能无法针对多个感知流很好地同步,从而导致处理能力损失和更高的成本。

因此,期望提供一种用于改善多个CPU和加速器上的计算的同步的系统和方法。此外,结合附图和本发明的背景技术,根据本发明的随后的详细描述和所附的权利要求,本发明的其他期望的特征和特性将变得显而易见。

发明内容

提供了用于改善多个CPU和加速器上的计算的同步的系统和方法。在一个实施例中,公开了一种设备上的控制器,该设备具有用于处理多个感知流的多个协处理器。控制器被配置为:根据由预定策略确定的读取调度(schedule),从多个感知流中读取数据,其中,每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配一个唯一的标识标记;基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列,以供服务器处理;从服务器输出队列中检索(retrieve)已处理的感知流,其中,已处理的感知流由服务器处理,并由服务器写入服务器输出队列;以及将每个检索到的已处理的感知流分配到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

在一个实施例中,预定策略标识输入服务器队列中的感知流的顺序。

在一个实施例中,使用预定策略标识的顺序包括读取感知流的顺序。

在一个实施例中,服务器被配置为:以将标记的感知流写入服务器输入队列中的顺序,从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。

在一个实施例中,服务器包括多个冗余服务器,其中每个冗余服务器被配置为与另一冗余服务器并行操作。

在一个实施例中,服务器由加速器硬件实现,该加速器硬件包括数字信号处理器(DSP)或现场可编程门阵列(FPGA)。

在一个实施例中,服务器被实现为在加速器硬件上运行的软件部件,该加速器硬件包括图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。

在一个实施例中,处理算法包括神经网络(NN)算法。

在一个实施例中,服务器包括多个硬件设备,并且处理算法被划分为多个处理算法分区。

在一个实施例中,控制器还包括通信缓冲器,用于在上游处理算法分区的执行与下游处理算法分区的执行之间保存数据。

在一个实施例中,当通信缓冲器中的数据可用时,可以异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。

在另一个实施例中,提供了一种在多处理器系统中用于使用多个处理设备来处理多个感知流的方法。多个处理设备包括中央处理单元(CPU)和加速器设备。该方法包括:根据由预定策略确定的读取调度,从多个感知流中读取数据,其中,每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配唯一的标识标记;基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列;以及使用服务器处理标记的感知流。该处理包括:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。该方法还包括从服务器输出队列中检索已处理的感知流;以及将每个检索到的已处理的感知流分配到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

在一个实施例中,读取第一感知流的频率与读取第二感知流的频率不同。

在一个实施例中,应用处理算法包括应用神经网络(NN)算法。

在一个实施例中,服务器包括多个硬件设备,并且将处理算法划分为多个处理算法分区。

在一个实施例中,该方法还包括通过多个硬件设备中的不同硬件设备来执行每个处理算法分区。

在一个实施例中,该方法还包括提供通信缓冲器,用于在上游处理算法分区的执行与下游处理算法分区的执行之间保存数据。

在一个实施例中,该方法还包括当通信缓冲器中的数据可用时,异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。

在一个实施例中,该方法还包括将来自上游处理算法分区的执行的结果存储在通信缓冲器中,以及从通信缓冲器中检索该结果以由下游处理算法分区执行。

在另一个实施例中,提供了一种用于运送乘客的车辆,该车辆包括多个感知数据源,用于执行对该车辆的检测和观察操作;以及感知数据处理系统,其被配置用于处理来自多个感知数据源的感知数据。感知数据处理系统包括多个处理单元,其包括一个或多个中央处理单元(CPU)和一个或多个加速器模块;具有多个存储器段的存储介质,用于实现服务器输入队列和服务器输出队列;以及由多个处理单元中的一个或多个实现的扫描器。扫描器被配置为:根据由预定策略确定的读取调度,从多个感知流中读取数据,其中,每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配一个唯一的标识标记;以及基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列。感知数据处理系统还包括由多个处理单元中的一个或多个实现的服务器。该服务器被配置为:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。感知数据处理系统还包括由多个处理单元中的一个或多个实现的分派器(dispatcher)。该分派器配置为:从服务器输出队列中检索已处理的感知流;以及将每个检索到的已处理的感知流分配到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

附图说明

在下文中,将结合以下附图描述示例性实施例,其中,相同的附图标记表示相同的元件,并且在附图中:

图1是示出了根据各种实施例的用于处理来自多个感知数据源的感知数据的示例控制器的框图;

图2A描绘了根据各种实施例的示例性车辆,其包括用于处理多个感知(例如,视觉)流的控制器;

图2B描绘了根据各种实施例的具有多个感知源的示例车辆,该多个感知源用于对车辆执行检测和观察操作;

图3A是示出了根据各种实施例的用于处理来自多个感知数据源的感知数据的示例系统的框图;

图3B是示出了根据各种实施例的示例性扫描器的框图;

图3C是示出了根据各种实施例的示例分派器、服务器输出缓冲器和多个流输出缓冲器的框图;

图4A是示出了根据各种实施例的可以由多个冗余服务器组成的示例服务器的框图,其中每个冗余服务器被配置为与另一个冗余服务器并行操作;

图4B是示出了根据各种实施例的可以具有诸如在神经网络中发现的层的多个层的示例服务器算法的图;

图4C是示出了根据各种实施例的可以被划分为多个分区并且每个分区可以被分配给不同的硬件设备以供执行的示例服务器算法层的图;

图4D是示出了根据各种实施例的如何使用图4C中示出的算法划分方案并行地处理多个视觉流的图;

图5是描绘根据各种实施例的用于使用多个处理设备来处理多个感知流的多处理器系统中的示例过程的过程流程图;

图6是示出根据各种实施例的用于控制器的示例硬件配置的框图,该控制器用于处理来自多个感知数据源的感知数据;和

图7是示出根据各种实施例的用于控制器的另一示例硬件配置的框图,该控制器用于处理来自多个感知数据源的感知数据。

具体实施方式

以下详细描述本质上仅是示例性的,并不旨在限制本申请和使用。此外,无意受在前述技术领域、发明内容或以下详细描述中提出的任何明示或暗示的理论约束。如本文所使用的,术语“模块”是指任何硬件、软件、固件、电子控制部件、处理逻辑和/或处理器设备,单独地或以任何组合,包括但不限于:专用集成电路(ASIC)、现场可编程门阵列(FPGA)、电子电路、处理器(共享、专用或成组的)和执行一个或多个软件或固件程序的存储器、组合逻辑电路和/或提供所描述的功能的其他合适部件。

本文可以根据功能和/或逻辑块部件以及各种处理步骤来描述本公开的实施例。应当理解,可以通过被配置为执行指定功能的任何数量的硬件、软件和/或固件组件来实现这样的块部件。例如,本公开的实施例可以采用各种集成电路部件,例如存储器元件、数字信号处理元件、逻辑元件、查找表等,其可以在一个或多个微处理器或其他控制设备的控制下执行各种功能。另外,本领域技术人员将理解,可以结合任何数量的系统来实践本公开的实施例,并且本文描述的系统仅仅是本公开的示例性实施例。

为了简洁起见,与信号处理、数据传输、信令、控制、机器学习模型、雷达、激光雷达、图像分析和该系统的其他功能方面(以及系统的各个操作部件)相关的常规技术在此可能不会详细描述。此外,在此包含的各个附图中所示的连接线旨在表示各个元件之间的示例性功能关系和/或物理联接。应当注意,在本公开的实施例中可以存在许多替代或附加的功能关系或物理连接。

诸如深度学习神经网络(DLNN)之类的现代高级视觉处理算法在控制器上引入了高计算量和存储量。这可以将可以由控制器同时处理的视觉流限制为较少的量。

本文描述的主题公开了描述具有共享协处理器的设备的架构的装置、系统、技术和物品,该共享协处理器用于处理多个感知(例如,视觉)流。所描述的装置、系统、技术和物品采用服务器构思以允许将单个版本的算法应用于多个感知流,而不是将专用版本的算法应用于每个流,从而导致无需附加硬件即可支持更多流。所描述的装置、系统、技术和物品可以将处理算法实现为服务器,该服务器以时分复用方式处理多个流,从而减少了参数存储器。所描述的装置、系统、技术和物品可以实现前端处理,该前端处理可以作为客户端在CPU上运行以处理带有标记的每个输入并与处理服务器进行通信。所描述的装置、系统、技术和物品可以为架构提供通信和同步,以使得能够跨多个设备对服务器计算进行分区。所描述的装置、系统、技术和物品可以提供流水线的能力。

图1是描绘用于处理来自多个感知数据源的感知数据的示例控制器100的框图。示例控制器100包括硬件102和软件104。示例硬件102包括一个或多个中央处理单元(CPU)和加速器、通信硬件以及存储器。加速器的示例可以包括图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、数学协处理器以及其他。当经由硬件102执行时,软件104被配置为提供服务器,该服务器运行用于处理多个感知数据流的算法。通过使用服务器,示例控制器100被配置为使用共享硬件资源来处理感知数据的多个输入感知流106-1至106-m,以生成多个输出流108-1至108-m。此架构可以允许将单个版本的算法应用于多个感知流,而不是将专用版本的算法应用于每个流,从而无需其他硬件即可支持更多的流。

图2A描绘了示例车辆200,其包括用于处理多个感知(例如,视觉)流的控制器210。如图2A所示,车辆200通常包括底盘12、车身14、前轮16和后轮18。车身14布置在底盘12上并且基本上包围车辆200的部件。车身14和底盘12可以共同形成框架。轮16-18分别在车身14的相应拐角附近旋转地联接至底盘12。在图示的实施例中,车辆200被描述为乘用车,但是其他车辆类型,包括摩托车、卡车、运动型多用途车(SUV)、休闲车(RV)、船舶、飞机等也可以被使用。车辆200还包括推进系统20、传动系统22、转向系统24、制动系统26、传感器系统28、致动器系统30、至少一个数据存储设备32、至少一个控制器34和通信系统36,其被配置为与其他实体48无线通信信息。

数据存储设备32存储用于自动控制车辆200的数据。数据存储设备32可以是控制器34的一部分,与控制器34分离,或者控制器34的一部分和单独系统的一部分。控制器34包括至少一个处理器44和计算机可读存储设备或介质46。在各个实施例中,控制器34被配置为实现用于处理多个感知流的控制器210。尽管在图2A中仅示出了一个控制器34,但车辆200的实施例可以包括任意数量的控制器34,它们通过任何合适的通信介质或通信介质的组合进行通信,并协作处理传感器信号、执行逻辑、计算、方法和/或算法,并生成控制信号以自动控制车辆200的特征。

图2B描绘了示例车辆220,其具有多个感知源,用于执行对车辆的检测和观察操作。所述检测操作可以提供对象检测、行人检测、标志检测、交通检测、车道检测、自由空间检测、乘员/安全带/儿童座椅检测等。观察操作可以提环视、后视、盲点视、舱内视等。在该示例中,感知源包括用于自适应巡航控制和距离警告的前雷达202、用于在信息娱乐系统中显示车辆任一侧的视图的环视摄像机204a/204b、盲点检测雷达206a/206b、前视摄像机208,后视摄像机210、具有视觉或触觉警告的前摄像机212和具有触觉或声学警告的驾驶员监视摄像机214。多个感知源生成多个感知数据流。多个感知数据流可以由一组公共资源来处理。

图3A是描绘用于处理来自多个感知数据源的感知数据的示例系统300的框图。示例系统300包括扫描器302、服务器304、分派器306、服务器输入队列308和服务器输出队列310。与示例系统300相关联的硬件包括多个处理单元,该多个处理单元包括一个或多个中央处理单元(CPU)和一个或多个加速器模块,以实现扫描器302、服务器304和分派器306;具有多个存储器段的存储器介质,用于实现服务器输入队列308和服务器输出队列310。

示例扫描器302由多个处理单元中的一个或多个实现,该多个处理单元由对非瞬态计算机可读介质上的编程指令进行配置。示例扫描器302被配置为根据由预定策略确定的读取时间表从多个感知流301-1至301-n读取数据。每个感知流包括来自不同感知传感器的感知数据。感知传感器可以包括摄像机、激光雷达或其他感知传感器数据源中的一个或多个。示例扫描器302还被配置为向每个感知流分配唯一的标识标记(例如,在预处理操作303中),并且基于预定策略(例如,在扫描操作305)将每个感知流及其唯一的标识标记写到服务器输入队列308。

示例服务器304由多个处理单元中的一个或多个实现。该服务器可以由诸如数字信号处理器(DSP)或现场可编程门阵列(FPGA)的加速器硬件来实现。该服务器可以被实现为在加速器硬件上运行的软件部件,该加速器硬件诸如为图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。

示例服务器304被配置为例如以将标记的感知流写入服务器输入队列308中的顺序从服务器输入队列308中检索标记的感知流;应用处理算法来处理检索到的标记感知流;并将已处理的感知流输出到服务器输出队列310。处理算法可以包括神经网络(NN),其通常用于处理感知数据。

示例分派器306由多个处理单元中的一个或多个实施,该多个处理单元由对非瞬态计算机可读介质上的编程指令进行配置。示例性分派器306被配置为从服务器输出队列310检索已处理的感知流,并且将每个检索到的已处理的感知流分派到适当的后处理目的地(例如,经由分派操作307)。从与检索到的已处理的感知流相关联的标记中确定适当的后处理目的地。为了将每个检索到的已处理的感知流分派到适当的后处理目的地,示例分派器306可以被配置为解码每个检索到的已处理的感知流以使用标记信息来分离不同流的结果。为了分派,示例分派器306还可以移除与经处理的感知流相关联的标记(例如,经由后处理操作309),并且将减去该标记的每个检索到的经处理的感知流发送为经处理的输出311(例如,流输出311-1至311-n)。

图3B是描绘示例扫描器322(例如,扫描器302)的框图。示例扫描器322包括读取器模块324、调度器模块326和标记器模块328。读取器模块324被配置为根据由调度器模块326实现的预定策略读取输入流321-1、321-2,...,321-N。预定策略可以标识输入服务器队列中的感知流的顺序和调度。所标识的顺序可以包括读取感知流的顺序。

调度器模块326可以被配置成基于在每个表行中标识流标识符325和预定读取频率327的表323,根据预定策略和调度来确定读取顺序。读取一个感知流(例如,321-1)的频率可以不同于读取另一个感知流(例如,321-2)的频率。

标记器模块328被配置为使用特定于输入流的标记标识符来标记从每个输入流读取的数据,从而可以在服务器(例如服务器304)处理之后重建感知流数据。标记器模块328被配置为将标记的输入流数据及其关联的标记标识符存储在队列3300(例如,服务器输入队列308)中。

图3C是描绘示例分派器342(例如,分派器306)、服务器输出缓冲器344(例如,服务器输出队列310)和多个流输出缓冲器346的框图。示例分派器342由通过对非暂时性计算机可读介质上的指令进行编程而配置的多个处理单元中的一个或多个来实现。示例分派器342被配置为从服务器输出缓冲器344中检索已处理的感知流,使用标记信息对每个检索到的已处理的感知流进行解码(345)以分离不同流的结果,以及将每个检索到的已处理的感知流分派(347)到适当的后处理目标。从与检索到的已处理的感知流相关联的标记中确定适当的后处理目的地。多个流输出缓冲器346可以由存储介质来实现,并且分派器342被配置为将每个检索到的已处理的感知流分派给多个流输出缓冲器346中的适当一个以进行下游处理。

图4A是示出示例服务器402可以由多个冗余服务器404组成的框图,其中每个冗余服务器404被配置为与另一个冗余服务器并行操作。在该示例中,每个冗余服务器404可以从公共服务器输入队列406检索标记的输入流数据,处理检索到的标记的输入流数据,并且将已处理的标记的流数据输出到公共服务器输出队列408。

图4B是示出示例服务器算法410可以具有多个层412(例如在神经网络中发现的层)的图。服务器算法410中的每个层412可以代表神经网络的一层或多层。

图4C是示出示例服务器算法层412可以被划分为多个分区414、416并且每个分区414、416可以被分配给不同的硬件设备418、420以执行的图。执行分区414、416的服务器可以包括多个硬件设备(例如,CPU和/或加速器),并且处理算法被划分为多个处理算法分区414、416。处理算法分区的数量可以等于分配给执行该算法的硬件设备的数量,并且每个处理算法分区可以由多个硬件设备中的不同硬件设备执行。执行分区414、416的服务器还可以包括由存储器实现的通信缓冲器422,用于在上游处理算法分区414的执行与下游处理算法分区416的执行之间保存数据。下游处理算法分区416可以当数据在通信缓冲器422中可用时被异步地调用到存储在通信缓冲器422中的处理数据。因此,可以将来自上游处理算法分区414的执行的结果存储在通信缓冲器422中,并且该结果可以从通信缓冲器422检索,以供下游处理算法分区416执行。

图4D是示出如何使用图4C中示出的算法分区方案并行地处理多个视觉流的图。第一感知流430可以包括用于图像13、图像12和图像11的数据。第二感知流432可以包括用于图像23、图像22和图像21的数据。第三感知流434可以包括用于图像33、图像32和图像31的数据。在该示例中,图像13和图像32可以在设备1上进行处理(418)。图像12和图像22可以在通信缓冲器422中。图像21和图像31可以在设备2上处理(420)。图像11可能已经作为输出结果被输出(424)。图像23和图像33可能正在等待在设备1上进行处理(418)。

图5是描绘了用于使用多个处理设备来处理多个感知流的多处理器系统中的示例过程500的过程流程图。多个处理设备包括中央处理单元(CPU)和加速器设备。过程500内的操作顺序不限于如图5所示的顺序执行,而是可以根据本公开并可适用的一个或多个变化顺序来执行。

示例过程500包括根据由预定策略确定的读取调度从多个感知流读取数据(操作502)。每个感知流包括来自不同感知传感器的感知数据。感知传感器可以包括摄像机、激光雷达或其他感知传感器数据源中的一个或多个。读取第一感知流的频率可以不同于读取第二感知流的频率。

示例过程500包括向每个感知流分配唯一的标识标记(操作504),并基于预定策略将每个感知流及其唯一的标识标记写入服务器输入队列(操作506)。服务器输入队列可以包括可由控制器访问的存储介质,例如存储器。预定策略可以标识输入服务器队列中的感知流的顺序。所标识的顺序可以包括读取感知流的顺序。

示例过程500包括使用服务器处理标记的感知流(操作508)。该服务器可以包括多个冗余服务器,其中每个冗余服务器被配置为与另一个冗余服务器并行地操作。服务器可以由加速器硬件来实现,其中,加速器硬件可以包括数字信号处理器(DSP)或现场可编程门阵列(FPGA)。该服务器可以被实现为在加速器硬件上运行的软件部件,该加速器硬件为诸如图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。

处理可以包括:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流(操作510),应用处理算法来处理所检索的标记的感知流(操作512),并将已处理的感知流输出到服务器输出队列(操作514)。

应用处理算法可以包括应用神经网络(NN)算法。服务器可以包括多个硬件设备,并且处理算法可以被划分为多个处理算法分区。处理算法分区的数量可以等于硬件设备的数量。该过程可以进一步包括通过多个硬件设备中的不同硬件设备来执行每个处理算法分区。该过程可以进一步包括提供通信缓冲器,该通信缓冲器用于在上游处理算法分区的执行与下游处理算法分区的执行之间保存数据。该过程还可包括:当通信缓冲器中的数据可用时,异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。该过程可以进一步包括将来自上游处理算法分区的执行的结果存储在通信缓冲器中,并且从通信缓冲器中检索结果以由下游处理算法分区执行。

示例过程500包括从服务器输出队列中检索已处理的感知流(操作516),并将每个检索到的已处理的感知流分派到适当的后处理目的地(操作518)。可以从与检索到的已处理的感知流相关联的标记中确定适当的后处理目的地。将每个检索到的已处理的感知流分派到适当的后处理目的地可以包括对每个检索到的已处理的感知流进行解码,以标识关联的标记信息,并使用标记信息来分离不同流的结果。可以提供多个流输出缓冲器,并且将每个检索到的已处理的感知流分派到适当的后处理目的地可以包括将每个检索到的已处理的感知流分派到多个流输出缓冲器中的适当的一个以进行下游处理。

图6是示出用于控制器600的示例硬件配置的框图,该控制器600用于处理来自多个感知数据源的感知数据。控制器600中使用的示例硬件包括系统存储器602、CPU 604和加速器606。示例硬件用来实现用于从第一感知数据流检索感知流数据的第一输入缓冲器608、用于从第二感知数据流中检索感知流数据的第二输入缓冲器610、扫描器612、服务器输入队列614、服务器616、服务器输出队列618、分派器620、用于输出用于第一感知流的已处理的流数据的第一流输出缓冲器622、用于输出用于第二感知流的已处理的流数据的第二流输出缓冲器624以及算法626。

第一输入缓冲器608可以由系统存储器602中的第一存储器段609来实现,第二输入缓冲器610可以由系统存储器602中的第二存储器段611来实现,服务器输入队列614可以由系统存储器602中的第三存储器段615实现,服务器输出队列618可以由系统存储器602中的第四存储器段619实现,第一流输出缓冲器622可以由系统存储器602中的第五存储器段623实现,以及第二流输出缓冲器624可以由系统存储器602中的第六存储器段625实现。扫描器612、服务器614和分派器620可以由CPU 604实现,并且算法626可以由加速器606执行。

图7是示出了用于处理来自多个感知数据源的感知数据的控制器700的另一示例硬件配置的框图。控制器700中使用的示例硬件包括第一感知设备702(例如摄像机702)、第二感知设备704(例如摄像机704)、控制器板714、将第一感知设备702连接到控制器板714上的总线710的第一物理链路706、将第二感知设备704连接到控制器板714上的总线710、控制器板714上的CPU 716、控制器板714上的存储器设备718、720、控制器板714上的加速器设备722,724的第二物理链路708、显示设备726和低级控制器728(例如,制动控制器、转向控制器、车身控制器等)。

可以经由控制器板714上的硬件来实现示例性控制器730。示例性控制器730包括扫描器732,CNN(卷积神经网络)服务器734和分派器736。扫描器732和分派器736可以通过CPU 716来实现。CNN服务器734可以具有两个CNN分区738、740。第一CNN分区738可以通过加速器722实现,第二CNN分区740可以通过加速器724实现。

扫描器732可以经由总线710从感知设备702、704接收输入感知流。分派器可以经由到总线710的连接727,729将已处理的感知流分派给下游显示设备726和下游低级控制器728。

系统可以使用队列或缓冲器来将数据从上游系统部件交换到下游系统部件。可以经由存储器设备716、718来实现缓冲器。队列或缓冲器可以具有读取和写入控制件。读取控制件可能仅允许在缓冲器/队列不为空时从缓冲器/队列中读取数据,并防止在缓冲器/队列为空时进行读取。写入控制件可能仅允许在缓冲器/队列未满时将数据写入缓冲器/队列,并防止在缓冲器/队列已满时数据写入缓冲器/队列。

在一个实施例中,公开了一种设备上的控制器,该设备具有用于处理多个感知流的多个协处理器。该控制器被配置为:根据由预定策略确定的读取调度,从多个感知流中读取数据,其中每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配一个唯一的标识标记;基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列,以供服务器处理;从服务器输出队列中检索已处理的感知流,其中,已处理的感知流由服务器处理,并由服务器写入到服务器输出队列;以及将每个检索到的已处理的感知流分配到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

这些方面和其他实施例可以包括以下特征中的一个或多个。读取第一感知流的频率可以不同于读取第二感知流的频率。感知传感器可以包括摄像机、激光雷达或其他感知传感器数据源中的一个或多个。服务器输入队列可以包括控制器可访问的存储介质。预定策略可以标识输入服务器队列中的感知流的顺序。所标识的顺序可以包括读取感知流的顺序。服务器可以被配置为:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;并将已处理的感知流输出到服务器输出队列。该服务器可以包括多个冗余服务器,其中每个冗余服务器被配置为与另一个冗余服务器并行地操作。服务器可以由加速器硬件来实现,其中,加速器硬件包括数字信号处理器(DSP)或现场可编程门阵列(FPGA)。服务器可以被实现为在加速器硬件上运行的软件部件,该加速器硬件包括图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。该处理算法可以包括神经网络(NN)算法。服务器可以包括多个硬件设备,并且处理算法可以被划分为多个处理算法分区。处理算法分区的数量可以等于硬件设备的数量。每个处理算法分区可以由多个硬件设备中的不同硬件设备执行。控制器可以进一步包括通信缓冲器,用于在上游处理算法分区的执行与下游处理算法分区的执行之间保存数据。当数据在通信缓冲器中可用时,可以异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。可以将上游处理算法分区的执行的结果存储在通信缓冲器中,并且可以从通信缓冲器中检索该结果以供下游处理算法分区执行。为了将每个检索到的已处理的感知流分派到适当的后处理目的地,控制器可以被配置为使用标记信息对每个检索到的已处理的感知流进行解码以分离不同流的结果。控制器可以被配置为将每个检索到的已处理的感知流分派给多个流输出缓冲器中的适当的一个,以进行下游处理。

在另一个实施例中,公开了一种在多处理器系统中用于使用多个处理设备来处理多个感知流的方法。多个处理设备包括中央处理单元(CPU)和加速器设备。该方法包括:根据由预定策略确定的读取调度,从多个感知流中读取数据,其中,每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配唯一的标识标记;基于预定策略,将每个感知流及其唯一的标识标记写入服务器输入队列;以及使用服务器处理标记的感知流。该处理包括:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。该方法进一步包括从服务器输出队列中检索已处理的感知流;以及将每个检索到的已处理的感知流分配到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

这些方面和其他实施例可以包括以下特征中的一个或多个。读取第一感知流的频率可以不同于读取第二感知流的频率。感知传感器可以包括摄像机、激光雷达或其他感知传感器数据源中的一个或多个。服务器输入队列可以包括控制器可访问的存储介质。预定策略可以标识输入服务器队列中的感知流的顺序。所标识的顺序可以包括读取感知流的顺序。该服务器可以包括多个冗余服务器,其中每个冗余服务器被配置为与另一个冗余服务器并行地操作。服务器可以由加速器硬件来实现,其中,加速器硬件包括数字信号处理器(DSP)或现场可编程门阵列(FPGA)。服务器可以被实现为在加速器硬件上运行的软件部件,该加速器硬件包括图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。应用处理算法可以包括应用神经网络(NN)算法。服务器可以包括多个硬件设备,并且处理算法可以被划分为多个处理算法分区。处理算法分区的数量可以等于硬件设备的数量。该方法可以进一步包括通过多个硬件设备中的不同硬件设备来执行每个处理算法分区。该方法可以进一步包括提供通信缓冲器,用于在上游处理算法分区的执行与下游处理算法分区的执行之间保存数据。该方法还可以包括当通信缓冲器中的数据可用时,异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。该方法可以进一步包括将来自上游处理算法分区的执行的结果存储在通信缓冲器中,并且从通信缓冲器中检索该结果以由下游处理算法分区执行。将每个检索到的已处理的感知流分派到适当的后处理目的地可以包括对每个检索到的已处理的感知流进行解码,以标识关联的标记信息,并使用标记信息来分离不同流的结果。该方法可以进一步包括将多个流输出缓冲器并将每个检索到的已处理感知流分派给多个流输出缓冲器中的适当的一个以进行下游处理。

在另一个实施例中,公开了一种用于运送乘客的车辆,该车辆包括多个感知数据源,用于执行对该车辆的检测并观察操作;以及感知数据处理系统,用于处理来自多个感知数据源的感知数据。感知数据处理系统包括多个处理单元,该多个处理单元包括一个或多个中央处理单元(CPU)和一个或多个加速器模块;具有多个存储器段的存储介质,用于实现服务器输入队列和服务器输出队列;以及由多个处理单元中的一个或多个实现的扫描器。扫描器被配置为:根据由预定策略确定的读取调度,从多个感知流中读取数据,其中每个感知流包括来自不同感知传感器的感知数据;为每个感知流分配一个唯一的标识标记;以及基于该预定策略,将每个感知流及其唯一的标识标记写入到服务器输入队列。感知数据处理系统还包括由多个处理单元中的一个或多个实现的服务器。服务器被配置为:以将标记的感知流写入服务器输入队列中的顺序从服务器输入队列中检索标记的感知流;应用处理算法来处理检索到的标记感知流;以及将已处理的感知流输出到服务器输出队列。感知数据处理系统还包括由多个处理单元中的一个或多个实现的分派器。该分派器配置为:从服务器输出队列中检索已处理的感知流;以及将每个检索到的已处理的感知流分派到适当的后处理目的地,其中,从与检索到的已处理的感知流相关联的标记来确定适当的后处理目的地。

这些方面和其他实施例可以包括以下特征中的一个或多个。读取第一感知流的频率可以不同于读取第二感知流的频率。感知传感器可以包括摄像机、激光雷达或其他感知传感器数据源中的一个或多个。预定策略可以标识输入服务器队列中的感知流的顺序。所标识的顺序可以包括读取感知流的顺序。该服务器可以包括多个冗余服务器,其中每个冗余服务器被配置为与另一个冗余服务器并行地操作。服务器可以由加速器硬件来实现,其中,加速器硬件包括数字信号处理器(DSP)或现场可编程门阵列(FPGA)。服务器可以被实现为在加速器硬件上运行的软件部件,该加速器硬件包括图形处理单元(GPU)、专用于其他软件部件或与其他软件部件共享的中央处理单元(CPU)或数学协处理器。该处理算法可以包括神经网络(NN)算法。服务器可以包括多个硬件设备,并且处理算法可以被划分为多个处理算法分区。处理算法分区的数量可以等于硬件设备的数量。每个处理算法分区可以由多个硬件设备中的不同硬件设备执行。该系统可以进一步包括由存储介质实现的通信缓冲器,用于在上游处理算法分区的执行与下游处理算法分区的执行之间保持数据。当数据在通信缓冲器中可用时,可以异步调用下游处理算法分区以处理存储在通信缓冲器中的数据。可以将上游处理算法分区的执行结果存储在通信缓冲器中,并且可以从通信缓冲器中检索结果以供下游处理算法分区执行。为了将每个检索到的已处理的感知流分派到适当的后处理目的地,可以将分派器配置为对每个检索到的已处理的感知流进行解码,以使用标记信息来分离不同流的结果。分派器可以被配置为将每个检索到的已处理的感知流分派给多个流输出缓冲器中的适当一个,以进行下游处理。

前述内容概述了几个实施例的特征,使得本领域技术人员可以更好地理解本公开的各方面。本领域技术人员应该理解,他们可以容易地将本公开用作设计或修改其他过程和结构的基础,以实现与本文介绍的实施例相同的目的和/或实现相同的优点。本领域技术人员还应该认识到,这样的等同构造不脱离本公开的精神和范围,并且在不脱离本公开的精神和范围的情况下,它们可以在这里进行各种改变、替换和变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号