当前位置: 首页 > 专利查询>辉达公司专利>正文

使用向量处理器配置用于片上系统中的特征跟踪操作的直接存储器访问系统技术方案

技术编号:36616274 阅读:18 留言:0更新日期:2023-02-15 00:22
本公开涉及使用向量处理器配置用于片上系统中的特征跟踪操作的直接存储器访问系统。在各种示例中,可以优化VPU和相关联的组件以提高VPU性能和吞吐量。例如,VPU可以包括最小值/最大值收集器、自动存储预测功能、允许通道间共享的SIMD数据路径组织、具有步幅参数功能的转置负载/存储、具有置换和零插入功能的加载、硬件、逻辑和存储器布局功能,以允许两点和逐两点查找,以及每个存储器组加载高速缓存功能。此外,可以使用解耦加速器来卸载VPU处理任务以提高吞吐量和性能,并且硬件定序器可以被包括在DMA系统中以降低VPU和DMA系统的编程复杂性。DMA和VPU可以执行允许VPU和DMA在没有用于执行基于动态区域的数据移动操作的处理控制器的情况下操作的VPU配置模式。制器的情况下操作的VPU配置模式。制器的情况下操作的VPU配置模式。

【技术实现步骤摘要】
使用向量处理器配置用于片上系统中的特征跟踪操作的直接存储器访问系统

技术介绍

[0001]向量处理单元(VPU)用于并行执行单指令多数据(SIMD)操作。VPU的流行用途包括诸如图像处理、计算机视觉、信号处理、深度学习(例如,用于卷积操作)等操作。
[0002]在一些计算机视觉应用中,例如,中间值的动态范围是很好理解的。因此,为了检测异常,可以将计算值与这些动态范围进行比较。然而,用于检测和分析这些最小值和最大值的常规解决方案包括将所有值写入存储器,然后对存储器中的值进行分析,这需要额外的处理周期。此外,为了实现高吞吐量,尽管存在加载使用延迟,高时钟速率处理器可以执行软件管线和/或循环展开。然而,在原始迭代计数没有均匀地除以展开因子的情况下,在完成展开循环后可能会保留一些迭代次数,从而需要额外的余数循环来计算一个或更多个最终迭代的值。此余数循环增加了系统的代码大小和延迟——例如,因为无法展开余数循环以实现最佳性能。在传统的单指令多数据(SIMD)操作中,每个SIMD单元可以在其自己的数据通道(lane)中并行且彼此独立地操作。一些架构可能允许相邻邻居之间共享,但这种有限的共享是有限制的,并且使得操作的实现通常需要将相同的操作数复制到每个数据通道进行处理。此外,向量SIMD处理器可能要求每个存储器读取操作使用标准或一致的单元,例如,等于向量处理宽度,这在存储器组很宽的情况下可能效率低下。例如,从存储器宽度为64字节的元素4到67读取时,可能需要两次存储器读取——例如,一次从0到63,一次从64到67。但是,这会导致读取许多附加值——例如,值0

3和值68

127——即使当前操作不需要这些值。在需要附加数据操作的传统指令集中,在数据被读出并存储在寄存器中之后,附加指令可用于对寄存器中的存储器数据进行操作。例如,这可能需要加载数据,对数据执行置换,然后使用重组后的数据执行操作。因此,数据操作需要额外的周期并增加延迟。当使用现有的VPU执行表查找时,可以复制表,以便可以从复制的表中提取每个单个值,或者可以将附加的读取端口添加到每个存储器组以允许从同一组的同一表中读取多个值。但是,为每个值复制表需要附加的存储器和处理,并且添加附加的读取端口需要芯片上的附加空间。在传统的VPU中,由于VPU被编程为在一组较小的高度优化的代码上执行,因此可能无法实现数据高速缓存,因为程序员可能会管理本地数据存储器中的内容。然而,通过这样做,每次访问都需要从每个存储器组读取值,即使下一次迭代的数据包括与一个或更多个先前读取操作的重叠。
[0003]为了优化处理器(例如VPU)的性能,可以增强指令集架构(ISA)以创建定制指令以加速常见的操作——例如表查找、卷积操作等。然而,以这种方式使用ISA需要处理器本身也执行这些操作,这意味着处理器在执行这些增强指令期间很忙。
[0004]此外,VPU可以使用直接存储器访问(DMA)系统来检索数据以供VPU处理。这样,DMA系统可以作为数据移动引擎操作,但也可以执行附加操作,例如图像填充、地址操纵、重叠数据管理、遍历顺序管理、帧大小管理等。然而,随着DMA资源(例如描述符、信道(channel)、触发器等)的增加,对DMA系统和VPU进行编程的编程复杂性也随之增加。在帧的图块包含空间或时间依赖性的情况下,DMA资源的动态更新成为系统的处理负担。当获取未知或数据相
关数据时,传统DMA系统需要处理控制器(例如,R5或ARM处理核心)来干预处理周期,以确定用于指导下一次处理迭代的更新信息。例如,在对象或特征跟踪中,VPU可以计算对象或特征的下一个位置,然后处理控制器将进行干预,更新存储器寻址信息,然后触发DMA系统使用更新的信息。然而,处理控制器的干预增加了延迟,并且需要更复杂的编程来使用区域相关的数据移动算法进行操作。
[0005]此外,在诸如自主和半自主机器应用之类的安全关键应用中,对于永久故障检测和隔离存在严格要求。例如,当在机器中执行深度学习、计算机视觉、传感器处理和/或其他应用程序时,必须在分配的时间预算内定期执行永久性故障检测,以便进行准确的测试,同时也允许应用程序正确执行——例如,低延迟。为此,可能需要端到端的覆盖,具有低延迟,同时满足每个特定应用程序的运行时间预算。传统方法使用内置自测试(BIST)来识别故障,但这些BIST技术要么不包括足够的覆盖范围,要么在系统中引入过多的延迟,和/或不满足某些应用程序的运行时间预算。

技术实现思路

[0006]本公开的实施例涉及对向量处理单元(VPU)、可用于处理来自VPU的卸载处理的解耦加速器以及支持存储器和VPU之间的数据移动的直接存储器访问(DMA)系统的改进。为了解决传统或现有解决方案的各种缺点,本公开的VPU可以包括最小值/最大值硬件收集器,该硬件收集器包括在从VPU到存储器的数据路径中,从而可以在存储到存储器之前存储最小值/最大值。以这种方式,最小值/最大值可以在存储器写入操作完成后立即可用,从而减少在将值存储到存储器之后确定最小值/最大值的延迟。此外,VPU可以包括自动预测功能,该功能可以通过为在最终迭代之后的迭代中计算的每个值设置预测位来应用预测标志。结果,每组迭代可以包括相同数量的已执行迭代,但是来自最终迭代组的一个或更多个值可能由于预测标志而不被写出到存储器。为了解决现有解决方案的数据通道之间共享的限制,本公开的SIMD架构可以在处理器中定义切片,每个切片包括多个通道,并且每个通道可以被配置为在彼此之间进行通信。这样,来自一个通道的操作数可以被其他通道使用,从而消除了将每个操作数复制到每个通道以进行处理的要求。为了解决从单个宽存储器组加载的低效率,VPU可以包括多个较小的存储器组以允许较小的位对齐——例如,16位对齐,其中存储器组是每个16位。这样,读取值4到67的示例可能发生在一次存储器读取中,而不是0

63和64

127的两次存储器读取中。除了这个存储器组组织之外,VPU可以包括转置负载和/或存储功能,以允许存储的值在存储器组中偏移,从而不会发生存储器组冲突,并且每个周期可以读取或写入更多数据。为了解决传统指令集的数据操作缺陷,可以使用带有置换指令的加载来将置换模式连同存储器地址一起发送到本地存储器,以便根据置换或数据操纵模式从存储器中检索数据。这样,数据操作和数据加载可以在同一周期中执行,从而减少等待时间。为了解决每个值的表复制或用于表查找的附加读取端口的缺点,可以执行两点或逐两点查找,使得每个表每个周期可以分别查找两个或四个点。为了实现这一点,表和每存储器组地址总线和相关逻辑和路由的偏移存储模式可以用于允许两个点或四个点的并行查找。在实施例中,每个存储器组可包括相关联的数据高速缓存,其可根据给定操作启用或禁用。例如,对于迭代之间存在大量数据重叠的过滤操作,数据高速缓存可用于存储来自一个或更多个先前查找的值,这样每个存储器组只需要最少的读取,从而为系统保留能
量和功率。
[0007]为了解决用于VPU或其他处理器类型的传统ISA的缺点,本公开的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种系统,包括:存储器;直接存储器访问DMA系统,其耦合至所述存储器;以及处理器,其耦合至所述存储器,其中所述系统执行以下操作,包括:使用所述处理器并且至少部分基于使用所述DMA系统写入存储器的第一数据,来计算与被跟踪特征的一个或更多个第一更新位置相对应的第一输出;使用所述处理器更新所述存储器以包括表示与所述一个或更多个第一更新位置相对应的一个或更多个地址/数据对的第二数据;使用所述DMA系统并且至少部分地基于所述一个或更多个地址/数据对,来更新与所述被跟踪特征相对应的一个或更多个描述符;使用所述DMA系统并且至少部分地基于所述一个或更多个描述符,将第三数据写入所述存储器;以及使用所述处理器且至少部分地基于所述第三数据,来计算与所述被跟踪特征的一个或更多个第二更新位置相对应的第二输出。2.如权利要求1所述的系统,还包括处理控制器,其中所述系统进一步执行包括使用所述处理控制器来配置所述DMA系统和所述处理器的操作。3.如权利要求1所述的系统,还包括处理控制器,其中所述系统进一步执行包括使用所述处理控制器触发所述DMA系统和所述处理器的操作。4.如权利要求1所述的系统,还包括描述符存储器,其中所述一个或更多个描述符在所述描述符存储器中被更新。5.如权利要求1所述的系统,其中在多个迭代中的每个迭代的循环中执行所述操作。6.如权利要求1所述的系统,其中所述第二数据与数据格式相对应,所述数据格式包括表示所述一个或更多个地址/数据对的地址的一个或更多个字节以及表示所述一个或更多个地址/数据对的数据的一个或更多个字节。7.如权利要求1所述的系统,其中所述系统被包括在以下项的至少一项中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行深度学习操作的系统;片上系统SoC;包括可编程视觉加速器PVA的系统;包括视觉处理单元的系统;使用边缘设备实现的系统;使用机器人实现的系统;合并一个或更多个虚拟机VM的系统;至少部分地在数据中心中实现的系统;或者至少部分地使用云计算资源实现的系统。8.一种系统,包括:
向量存储器VMEM;直接存储器访问DMA系统,其耦合到所述VMEM;以及向量处理单元VPU,其耦合到所述VMEM,其中所述系统执行以下操作,包括:使用所述VPU并且至少部分地基于使用所述DMA系统写入VMEM的第一数据,来计算与被跟踪特征的一个或更多个第一更新位置相对应的第一输出;使用所述VPU更新所述VMEM以包括表示与所述一个或更多个第一更新位置相对应的一个或更多个地址/数据对的第二数据;使用所述DMA系统并且至少部分地基于所述一个或更多个地址/数据对,来更新与所述被跟踪特征相对应的一个或更多个描述符;使用所述DMA系统并且至少部分地基于所述一个或更多个描述符将第三数据写...

【专利技术属性】
技术研发人员:A
申请(专利权)人:辉达公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1