System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于处理流式传输输入数据的可扩展硬件架构模板制造技术_技高网

用于处理流式传输输入数据的可扩展硬件架构模板制造技术

技术编号:41396842 阅读:6 留言:0更新日期:2024-05-20 19:20
描述了用于生成增强的硬件架构以处理流式传输输入数据的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。在一个方面,一种方法包括接收表示硬件架构模板的数据(195、810)。硬件架构模板包括可配置设计参数集合。基于流式传输输入数据的特性来确定该设计参数集合的值(820)。确定过程包括:基于针对可配置设计参数集合的搜索空间来生成多个候选硬件架构(840),每个候选硬件架构包括相应的设计参数值;确定与每个候选硬件架构相关联的相应的性能值(850);基于相应的性能值来选择硬件架构(860);以及基于与所选择的候选硬件架构相关联的参数值来确定值(870)。生成包括值的输出数据以用于使用硬件架构模板来实例化硬件架构。

【技术实现步骤摘要】
【国外来华专利技术】

本说明书涉及使用可缩放硬件架构模板来生成对流式传输输入数据执行操作的硬件组件——例如,机器学习处理器——的硬件设计参数,并使用所述参数来制造处理器。


技术介绍

1、人工智能(ai)是由机器演示的智能,并且表示计算机程序或机器思考和学习的能力。一个或多个计算机可以用于执行ai计算以训练机器进行相应的任务。ai计算可以包括由一个或多个机器学习模型表示的计算。

2、神经网络属于机器学习模型的子领域。神经网络可以采用表示多个运算——例如,向量或矩阵运算——的一层或多层节点。一个或多个计算机可以被配置为执行神经网络的操作或计算以生成输出,例如,针对接收到的输入的分类、预测或分割。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一层——即,下一个隐藏层或输出层——的输入。网络的每个层根据网络参数的相应集合的当前值从接收到的输入生成输出。


技术实现思路

1、以下说明书中描述的技术涉及使用可缩放硬件架构模板来生成硬件组件——例如,机器学习处理器——的硬件设计参数,所述硬件组件对流式传输输入数据执行操作并使用所述参数来制造处理器。硬件架构模板可以包括用于制造可以被配置为对流式传输输入数据执行操作的硬件组件的可配置设计参数集合,使得可以基于流式传输输入数据的特性来按比例增大或减小架构。所述技术可以用于确定设计参数集合的值,并且使用硬件架构模板和所确定的值来实例化硬件架构。

2、硬件架构——也称为硬件架构表示——通常涉及工程化(或将要工程化)的电子或机电硬件块、组件或系统的表示。硬件架构可以包含用于识别、原型化和/或制造这样的硬件块、组件或系统的数据。硬件架构可以编码有表示块、组件或系统的结构的数据,例如,标识硬件块、组件或系统中包括的子组件或子系统及其相互关系的数据。硬件架构还可以包括表示制造硬件块、组件或系统的过程的数据,或者表示用于有效地实现硬件块、组件或系统或两者的设计的学科的数据。

3、本文中的术语“硬件架构模板”是指表示具有用于硬件组件的设计参数集合的模板的数据,诸如被配置为对流式传输输入执行机器学习计算的机器学习处理器。硬件架构模板可以是用于硬件架构的预设通用设计,其具有基于设计参数集合——例如,要包括在硬件架构中的不同计算单元的类型、数量或层级——来定制或个性化的多个方面。

4、硬件架构模板可以是抽象的并且直到设计参数集合的值被确定才被实例化。在确定设计参数的值之后,例如,使用本文档中描述的各种过程,硬件架构模板可以用于基于设计参数集合的所确定的值来实例化硬件架构。在一些实施方式中,硬件架构模板可以表示以高级计算机语言编码的数据,其可以被合成到硬件电路并且以面向对象的方式(例如,c或c++)编程。为了简单起见,术语“硬件架构模板”在本文档中有时被称为“模板”。

5、该设计参数集合可以在多个维度上形成或具有“搜索空间”,在该“搜索空间”内,给定特定设计要求或标准,执行该设计参数集合的搜索相应值。可以通过使用一种或多种算法或技术探索搜索空间来确定设计参数的值。在本文档中,术语“搜索空间”是指包含给定可用资源的设计参数集合的所有或至少一组可能的解决方案(例如,值)的解决方案空间,例如,硬件架构中包括的不同计算单元的所有可能类型和数量。

6、可以基于用于执行计算操作的数据的特性来重新配置模板。在一些情况下,由于输入数据——例如,具有不同稀疏度水平的不同输入矩阵——的改变,由模板生成的硬件架构可以即时重新实例化。

7、术语“硬件组件”是指用于执行计算操作——例如,机器学习计算——的硬件组件,包括例如被配置为基于流式传输输入数据执行向量归约、张量乘法、基本算术运算和逻辑运算的合适的硬件计算单元或计算单元集群。例如,硬件组件可以包括一个或多个图块(例如,乘法-累加运算(mac)单元)、包括多个mac单元的一个或多个处理元件、包括多个处理元件的一个或多个集群、以及诸如图形处理单元(gpu)和张量处理单元(tpu)的处理单元。

8、术语“流式传输输入数据”是指连续提供给硬件组件以处理数据的数据。例如,数据可以包括多个数据帧,其中每个帧以特定时间间隔生成,并且每个数据帧被提供给硬件组件以用于以特定速率进行处理。术语“时间间隔”和“速率”是指用于生成或接收数据帧和下一数据帧的时间段或频率。例如,用于流式传输输入数据的速率可以是每几毫秒、几秒、几分钟或其他适当时间段的一帧数据。

9、流式传输输入数据可以是图像传感器根据时间顺序采集的流式传输图像帧或视频帧。图像传感器可以包括相机或记录器。流式传输图像帧可以由图像传感器以特定速率收集,或者以特定到达速率提供给硬件组件。

10、流式传输输入数据的每个帧可以具有特定大小。例如,每个流式传输图像帧可以包括相应的图像分辨率,例如,50×50像素、640×480像素、1440×1080像素或4096×2160像素。

11、硬件组件可以被配置为处理以特定速率接收的流式传输输入数据。如上所述,流式传输输入数据可以例如从一个或多个源逐帧连续生成,并且以特定到达速率提供给硬件组件。例如,速率可以是每单位时间的帧或每单位时间的像素数量。理想地,硬件组件可以在下一帧输入数据到达之前处理每一帧流式传输输入数据,以及时生成输出数据。然而,如果硬件组件不能在下一帧到达之前处理该帧,则硬件组件可以导致用于处理流式传输输入数据的后续帧的背压。背压可能导致用于生成输出数据的中断或时间延迟,增加系统开销,特别是当系统中的其他硬件组件被配置为处理由硬件组件生成的输出数据时,或者导致硬件组件的操作和/或由硬件组件进行的计算中的错误。

12、在一些实施方式中,系统可以使用具有较大帧大小或以较高频率或两者(例如,每单位时间具有较高分辨率的更多图像帧)的新流式传输输入数据来生成具有较高准确度的输出数据。最初合适的硬件组件可以在下一帧到达之前不能够处理新流式传输输入数据的每个帧,这导致用于处理流式传输输入数据的稍后到达的帧的背压。

13、执行广义矩阵乘法(gemm)和广义矩阵向量乘法(gemv)的技术不能应用于处理流式传输输入数据,因为流式传输输入数据的每个帧是按顺序接收的。例如,流式传输输入数据的每个帧可以由输入矩阵表示,并且输入矩阵在特定时间窗口期间由硬件组件逐行接收。gemm或gemv技术的示例被称为循环分块,也被称为循环嵌套优化,其将循环的迭代空间划分为用于执行矩阵-矩阵或矩阵-向量计算的较小的组块或块,使得可以并行地计算输入的每个较小的组块或块。然而,循环分块技术不太可能适用于处理流式传输输入数据,因为根据序列逐行接收输入。预先存储当前帧的最后一行或下一帧的一行并对这些行执行操作同时并行处理当前帧中的不同行是不可能的或至少不切实际的。

14、一些技术通过在流式传输输入数据的大小或频率增加时包括更多的处理元件(pe)或计算单元来解决背压问题。然而,这可能是低效的、不可缩放的,并且在帧大小或到达速率按比例增大时可能很快达到硬件组件的最大本文档来自技高网...

【技术保护点】

1.一种方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求1所述的方法,其中,所述给定硬件组件的所述相应流式传输输入数据的所述特性包括所述给定硬件组件的所述相应流式传输输入数据的每个帧的到达速率和每个帧的大小。

4.根据权利要求1所述的方法,其中,所述性能度量的集合包括以下中的至少一个:用于处理所述给定硬件组件的所述相应流式传输输入数据的时延、功耗、资源使用或吞吐量,其中,所述性能模型包括分析成本模型、机器学习成本模型或硬件模拟模型中的至少一个。

5.根据权利要求1所述的方法,其中,用于所述给定硬件组件的所述相应流式传输输入数据包括根据时间序列流式传输由图像传感器收集的图像帧。

6.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括图像帧的特定到达速率和每个所述图像帧的相应图像分辨率中的至少一个。

7.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括消隐时段,所述消隐时段包括竖直消隐时段或水平消隐时段中的至少一个。

8.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括像素格式,其中,所述像素格式包括RGB或YUV颜色格式。

9.根据权利要求1所述的方法,其中,所述给定硬件组件的所述相应流式传输输入数据包括由音频传感器收集的流式传输音频。

10.根据权利要求9所述的方法,其中,所述流式传输输入数据的特性包括所述流式传输音频的特定采样率、所述流式传输音频的位深度、所述流式传输音频的位速率或所述流式传输音频的音频格式中的至少一个。

11.根据权利要求1所述的方法,其中,使用所述给定硬件组件对所述相应流式传输输入数据执行操作包括:

12.根据权利要求11所述的方法,其中,使用所述给定硬件组件对所述给定硬件组件的所述相应流式传输输入数据执行操作包括基于存储在存储器中的矩阵的稀疏度水平来执行所述操作。

13.根据权利要求1所述的方法,其中,所述执行操作在密集矩阵模式与稀疏矩阵模式之间切换,其中,切换过程由控制和状态CSR寄存器控制。

14.根据权利要求11所述的方法,其中,当在稀疏矩阵模式下执行生成存储在存储器中的所述矩阵的所述部分行的所述对应值时,并且其中,所述生成还包括:

15.根据权利要求14所述的方法,还包括:

16.根据权利要求1所述的方法,其中,所述给定硬件架构包括指示存储在存储器中的一个或多个矩阵的上限稀疏度水平的数据,其中,所述给定硬件架构被配置为动态地重新实例化以利用所述一个或多个矩阵中的第二矩阵来处理所述流式传输输入数据,所述第二矩阵具有与所述一个或多个矩阵中的第一矩阵不同的稀疏度水平。

17.根据权利要求1所述的方法,其中,基于用于所述可配置设计参数的集合的所述搜索空间,使用所述硬件架构模板生成所述多个候选硬件架构包括使用以下中的至少一个来探索用于所述设计参数的集合的所述搜索空间:随机搜索算法、穷举搜索算法或遗传算法。

18.根据权利要求1所述的方法,其中,针对所述可配置设计参数的集合探索所述搜索空间包括:

19.一种存储指令的一个或多个计算机可读存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至18中的任一项所述的相应操作。

20.一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至18中的任一项所述的相应操作。

...

【技术特征摘要】
【国外来华专利技术】

1.一种方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求1所述的方法,其中,所述给定硬件组件的所述相应流式传输输入数据的所述特性包括所述给定硬件组件的所述相应流式传输输入数据的每个帧的到达速率和每个帧的大小。

4.根据权利要求1所述的方法,其中,所述性能度量的集合包括以下中的至少一个:用于处理所述给定硬件组件的所述相应流式传输输入数据的时延、功耗、资源使用或吞吐量,其中,所述性能模型包括分析成本模型、机器学习成本模型或硬件模拟模型中的至少一个。

5.根据权利要求1所述的方法,其中,用于所述给定硬件组件的所述相应流式传输输入数据包括根据时间序列流式传输由图像传感器收集的图像帧。

6.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括图像帧的特定到达速率和每个所述图像帧的相应图像分辨率中的至少一个。

7.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括消隐时段,所述消隐时段包括竖直消隐时段或水平消隐时段中的至少一个。

8.根据权利要求5所述的方法,其中,所述流式传输图像帧的特性包括像素格式,其中,所述像素格式包括rgb或yuv颜色格式。

9.根据权利要求1所述的方法,其中,所述给定硬件组件的所述相应流式传输输入数据包括由音频传感器收集的流式传输音频。

10.根据权利要求9所述的方法,其中,所述流式传输输入数据的特性包括所述流式传输音频的特定采样率、所述流式传输音频的位深度、所述流式传输音频的位速率或所述流式传输音频的音频格式中的至少一个。

11.根据权利要求1所述的方法,其中,使用所述给定硬件组件对所述相应流式传输输入数据执行操作包括:

12....

【专利技术属性】
技术研发人员:杨洋阿基·奥斯卡里·库塞拉
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1