一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

无线电信号处理数据流操作的放置与调度的制作方法

2021-12-14 22:43:00 来源:中国专利 TAG:

无线电信号处理数据流操作的放置与调度
1.分案申请信息
2.本技术是申请日为2018年4月17日、申请号为201880038280.1、发明名称为“无线电信号处理数据流操作的放置与调度”的中国发明专利申请的分案申请。
3.相关申请的交叉引用
4.本技术要求于2017年4月17日提交的美国临时申请第62/486,198号的优先权。在先申请的公开被视为本技术的公开的一部分并且通过引用的方式并入本技术的公开中。
技术领域
5.本说明书涉及表达、放置和调度表示无线电信号处理算法的计算图操作以用于在目标硬件平台中执行。


背景技术:

6.目标硬件平台可以包含具有单个处理器或使用网络连接、存储器或总线连接的多个处理器的计算装置。目标硬件平台可以是移动电话、处理射频(rf)数据的软件无线电系统嵌入式处理器或现场可编程门阵列、或大规模数据中心。目标硬件平台内的多个处理器执行包含计算图操作的软件内核。
7.确定软件内核内的操作的分布和调度以及软件内核跨目标硬件平台中的计算装置的分布会具有挑战性,例如考虑到各个无线电信号处理操作和特定目标硬件平台所需的计算资源使用情况、功率使用情况、吞吐量和能量使用情况的差异。


技术实现要素:

8.本说明书描述了用于在目标硬件平台的计算装置中跨软件内核表达并且动态地分配和调度无线电信号处理计算图操作的技术。这些技术总体上涉及用于在考虑到特定计算环境和优化目标的情况下确定对无线电信号计算图操作的最优执行放置和调度的方法和系统。
9.一般而言,本说明书中描述的主题的一个创新方面可以体现在方法中,所述方法包含放置和调度无线电信号处理数据流操作的动作。这方面的其它实施例包含各自被配置成执行方法的动作的对应的计算机系统、设备和记录在一或多个计算机存储装置上的计算机程序。将一或多个计算机的系统配置成执行特定操作或行动意味着系统上已安装有软件、固件、硬件或其组合上,所述软件、固件、硬件或其组合在操作时使系统执行操作或行动。将一或多个计算机程序配置成执行特定操作或动作意味着所述一或多个程序包含当由数据处理设备执行时使设备执行操作或动作的指令。
10.前述和其它实施例可以各自任选地单独地或组合地包含以下特征中的一或多个。具体地说,一个实施例组合地包含所有以下特征。
11.一个实例实施方案包含提供包括表示操作的节点和表示数据流的有向边的原始无线电信号处理计算数据流图,所述原始无线电信号处理数据流图表示功能无线电信号处
理应用。分割所述原始无线电信号处理计算数据流图的所述节点和所述有向边以产生软件内核的集合,所述软件内核当在目标硬件平台的处理单元上执行时实现特定的优化目标。限定包含所述软件内核集合中的各个软件内核的数据放置的运行时资源调度,以在所述目标硬件平台的多个处理单元上高效地执行操作。根据限定的运行时资源调度分配所述目标硬件平台中的所述多个处理单元的资源。
12.在一些实施方案中,在提供所述原始无线电信号处理计算数据流图之前,提供功能无线电信号处理张量块以构建功能无线电信号处理应用。所述功能无线电信号处理张量块表示无线电张量符号表达式和表示数据流的有向边。获得包含功能张量块的功能无线电信号处理块数据流图,所述功能张量块表示特定的功能无线电信号处理应用。将所述功能无线电信号处理块数据流图映射到与所述特定的功能无线电信号处理应用的功能相对应的特定的原始无线电信号处理计算数据流图。然后将所述特定的原始无线电信号处理计算数据流图用作所述原始无线电信号处理计算数据流图。
13.在一些实施方案中,限定资源运行时调度进一步包含:确定软件内核之间的缓冲器大小;确定每个软件内核在给定时间执行的数据量;确定所述软件内核执行的顺序;以及确定在内核执行之间在每个时间通过总线或存储器区域传送的或在处理器域之间移动的信息量。
14.可以根据所述限定的资源运行时调度在所述目标硬件平台的所述处理单元上执行所述各个软件内核。
15.在一些实施方案中,跨所述目标硬件平台的所述处理单元使操作流水线化。另外或可替代地,并行地执行所述操作。
16.所述功能无线电信号张量块可以表示作用于输入张量数据并且产生输出张量数据流的常用无线电信号处理操作。常用无线电信号处理操作可以包含以下中的一或多个:有限脉冲响应滤波器、快速傅里叶变换、无限脉冲响应滤波器、数字振荡器和混频器、自动增益控制功能、同步算法、符号调制器或解调器、纠错编码器或解码器、gnu无线电功能操作或matlab功能操作。
17.在一些实施方案中,分割所述原始无线电信号处理计算数据流图的所述节点和所述有向边以产生软件内核的集合包含:预测最小化对所述处理单元的总体资源使用的软件内核的初始集合;测量对具有所述软件内核初始集合的所述处理单元的资源使用;以及改变所述分割以产生基于测量的资源使用实现优化目标的软件内核的更新集合。测量资源使用可以包含测量当所述处理单元执行所述软件内核初始集合时对所述处理单元的实际资源使用。测量资源使用可以包含测量当流入所述原始无线电信号处理计算数据流图中的数据改变时的实际资源使用。流入所述原始无线电信号处理计算数据流图中的所述数据可以包含:射频数据、信号、信号加载或内容类型。
18.基于所述测量的资源使用实现优化目标包含:将所述优化目标识别为最小化总体资源使用;预测每个处理单元的存储器访问时间;预测所述处理单元之间的通信时间;以及迭代地分割所述原始无线电信号处理计算数据流图的所述节点和所述有向边以产生软件内核的集合,所述软件内核基于预测的处理容量、预测的存储器访问时间和预测的通信时间最小化所述总体资源使用。
19.所述优化目标可以是:跨所有可用处理单元最大化处理单元使用情况;最小化通
过处理单元进行图形处理的等待时间;获得最大吞吐量;最小化功耗;最小化对其它正在运行的软件进程的干扰;或者最小化用于以固定速率或等待时间执行的处理器、逻辑门或存储器需求。
20.在一些实施方案中,获得包括表示操作的节点和表示依赖性的有向边的第二原始无线电信号处理计算数据流图,并且将所述特定的优化目标识别为当执行所述第一原始无线电信号处理计算数据流图和所述第二原始无线电信号处理计算数据流图两者时最小化对所述处理单元的总体资源使用。
21.所述目标硬件平台的所述处理单元可以包含多种类型的处理单元。
22.限定所述各个软件内核的数据放置以跨所述目标硬件平台的所述处理单元高效地分布操作可以包含:从所述目标硬件平台中的所述多种类型的处理单元中确定在其上执行至少一个软件内核的最优处理单元类型;以及限定所述软件内核集合中的所述至少一个软件内核相对于所述目标硬件平台中的确定的最优处理单元类型的处理单元的数据放置。
23.所述功能无线电信号处理应用可以包含:实施通信调制解调器;执行蜂窝基带处理任务;执行无线电感测、标记、分析或映射;处理无线电信号以移除干扰或校正失真;或者发送或接收雷达脉冲。执行蜂窝基带处理任务可以包含收发(例如发射或接收)长期演进(lte)波形、5g波形或6g波形。执行无线电感测可以包含感测用于识别威胁、异常、硬件故障、干扰或映射的无线电信号。所述功能无线电信号处理应用可以包含处理射频信号以生成移除了干扰或失真的射频信号。所述功能无线电信号处理应用可以包含处理雷达信号以生成脉冲作为张量并且接收脉冲响应并估计反射项的性质。
24.在一些实施方案中,所述目标硬件平台包含具有调制解调器的大规模数据中心,所述调制解调器从天线和模数转换器以及计算装置接收来自输入流的数据。所述目标硬件平台可以包含以下中的至少一个:单个处理器、同一类型的多个处理器、具有多种类型的协处理器的共享存储器架构、分布式存储器架构、或各自具有单独的存储器架构的多处理器或多种多处理器(multi

multi

processor)的网络。
25.所述张量数据可以包含如数字采样的同相和正交时间序列号等无线电信号、数字采样的声学时间序列信息、如频谱图等功率频率光谱信息、如脉冲整合等雷达数据立方体处理信息或者可能产生位、数据包、消息、样本或值的向量的其它软件的输出。
26.在一些实施方案中,获得包括表示特定的功能无线电信号处理应用的功能张量块的功能无线电信号处理块数据流图可以包含:提供用户界面,所述用户界面允许用户选择功能信号处理块并且将所述功能信号处理块连接在一起以形成功能无线电信号处理应用;以及从所述用户界面以功能无线电信号处理块数据流图的形式接收所述功能无线电信号处理应用。
27.在一些实施方案中,分割可以包含迭代分割。
28.在一些实施方案中,所述功能无线电信号张量块可以表示作用于输入张量数据并且产生输出张量数据流的一或多个无线电信号处理操作和机器学习操作的组合。
29.在另一个实施方案中,可以识别功能无线电信号处理应用以在部署的无线电系统中执行。可以获得包括表示操作的节点和表示数据流的有向边的原始无线电信号处理计算数据流图。这个图可以表示功能无线电信号处理应用并且在所述部署的无线电系统中的硬件平台上执行期间实现特定的优化目标。可以在所述部署的无线电系统中的所述硬件平台
上执行所述原始无线电信号处理计算数据流图。
30.另一个实施方案可以是一种系统,所述系统包括:一或多个计算机;以及存储指令的一或多个存储装置,所述指令当在所述一或多个计算机上执行时是可操作的以使所述一或多个计算机执行以上实施方案中的任何一个实施方案。
31.又另一个实施方案可以是包括存储于其上的指令的一或多个非暂时性计算机可读存储媒体,所述指令可由处理装置执行并且在进行这种执行时使所述处理装置执行以上实施方案中的任何一个实施方案。
32.本说明书中描述的主题可以在特定的实施例中实施以实现以下优点中的一或多个优点。
33.如本文档中描述的操作放置和调度技术可以动态地分配并且调度无线电信号处理操作以用于在目标硬件平台上执行,所述目标硬件平台具有多个不同的配置以提供最优执行从而实现各种优化目标。这种优化目标包含例如最小化资源使用情况、最大化吞吐量、最小化等待时间、最大化计算处理元件以及最小化功耗。
34.常规技术在高级功能能力与低级计算图操作之间常常不作区分,从而导致次佳映射到软件内核。在gnu无线电中,例如,功能能力直接对应于刚性预定软件内核。
35.虽然常规技术在表达无线电信号处理算法的方式以及处理算法以放置到特定架构上的方法方面受到限制,但是本文描述的操作放置和调度方法以及系统能够通过跨功能能力加入操作以便跨多个不同的硬件平台架构配置高效地映射和调度操作来将无线电信号处理块图平坦化为细粒度无线电信号处理操作图。加入的操作然后可以在目标硬件平台中,例如在低功率小型移动无线电装置内或在大型企业信号处理环境中放置和调度,以优化无线电信号处理执行。所公开的方法和/或系统相对于现有技术的改进在于,在同质(例如,同一类型处理器的多个核)或异质(例如,通过某种存储器和/或总线连接的不同类型的处理器和协同处理器的集合)多核和分布式存储器架构处理器或两者上进行高效算法合成。对无线电信号处理算法进行高效表达和合成、调度和执行的所公开技术主要应用于低功率小型移动无线电装置中以及在具有多个处理器和多个波形的大型企业信号处理环境中等。
36.通过动态地估计对无线电信号处理操作的最优放置和调度,所公开系统和方法确保更高效地使用资源,例如各种处理单元的计算容量、缓冲器大小、存储器和缓存器架构、处理器域之间的吞吐量、以及目标硬件平台中操作的放置和调度,所述放置和调度与常规无线电信号处理操作放置和调度技术相比将实现限定的优化目标。由于缓解了限制应用的扩展能力的瓶颈,目标硬件平台可以例如利用已经使用公开的技术优化的操作针对应用获得更高的聚合吞吐量或更短的等待时间。通过使用所公开的技术,目标硬件平台还可以能够降低资源消耗,如通过基于操作的最优运行时调度降低所需的最小元素时钟速度或减少给定的固定速率信号处理应用所需的缓冲量。与常规系统相比,这种能力主要提供了节电优势。
37.公开的操作放置和调度方法和系统可以通过训练了解从硬件平台能力到优化目标到最优放置和调度的映射。例如,技术可以将操作映射到物理装置以最小化处理元件容量、存储器访问和通信等待时间的总成本。
38.公开的操作放置和调度方法和系统还可以将表达为计算图的传统无线电信号处
理与也表达为计算图的机器学习模型混合,以确定对包含这两种处理类型的应用的高效放置和调度。
39.另外,通过允许经由这一映射进行从功能定义到硬件目标装置的高效且自动化映射,公开的操作放置和调度方法和系统确保应用和波形在目标硬件平台架构之间将显著地更便携。
40.下文的附图和描述中阐述了本说明书的主题的一或多个实施例的细节。根据描述、附图和权利要求书,主题的其它特征、方面和优点将变得显而易见。
附图说明
41.图1是示出了用于在目标硬件平台的处理单元上最优地分配和调度无线电信号操作的实例操作放置和调度系统的整体系统图。
42.图2展示了实例功能无线电信号处理块数据流图。
43.图3a展示了完全被限定为数字信号处理任务的实例无线电信号处理应用。
44.图3b展示了由数字信号处理任务和机器学习模型限定的实例无线电信号处理应用。
45.图3c展示了被限定为完全学习型系统的实例无线电信号处理应用。
46.图4展示了向用户提供通过用户界面使用功能数据张量块构建应用的能力的实例操作放置和调度系统。
47.图5展示了由平坦化如图2所示的数据流图等功能无线电信号处理块数据流图而得到的原始无线电信号处理计算数据流图的实例。
48.图6展示了用于确定用于在目标硬件平台中执行计算图操作的最优运行时资源调度的实例过程的流程图。
49.图7展示了软件内核跨目标硬件平台的多个处理单元的实例分布。
50.图8a展示了操作的运行时调度的实例,所述实例示出了可以通过张量维度的数据并行化操作的方法。
51.图8b展示了操作的运行时调度的实例,所述实例示出了可以以两倍的工作量执行图8a的并行化操作的方法。尽管图8b展示了并行地执行的操作,但在一些实施方案中,操作跨目标硬件平台中的处理器流水线化。
52.图9a展示了实例无线电接收机系统,在所述实例无线电接收机系统中,通过运行时资源调度来限定资源和内核放置,以在目标平台上高效地执行操作从而实现优化执行。
53.图9b展示了实例无线电发射器系统,在所述实例无线电发射器系统中,通过运行时资源调度来限定资源和内核放置,以在目标平台上高效地执行操作从而实现优化执行。
54.在各个附图中,相似的参考标记和名称指示相似元素。
具体实施方式
55.本说明书总体上描述了操作放置和调度系统和方法,其将功能无线电信号应用表达为原始无线电信号处理计算数据流图操作并且确定操作和其它资源在目标硬件平台中的最优执行放置和调度。
56.操作放置和调度系统和方法可以用于设计和部署执行特定应用的无线电信号处
理系统。一个实例无线电信号处理应用可以感测用于识别威胁、异常、硬件故障和/或干扰的无线电信号。另一个实例无线电信号处理应用可以合成用于空间通信系统、蜂窝通信系统、回程通信系统或军用网状联网通信系统的无线电通信调制解调器。另外的实例无线电信号处理应用可以处理射频(rf)信号以生成移除了干扰或失真的rf信号。无线电信号处理应用可以执行蜂窝基带处理任务以收发(例如发射或接收)lte波形、5g波形或6g波形。无线电信号处理应用还可以对来自基站或蜂窝塔处的一或多个天线的信号进行处理,以调制、发射、接收、组合或恢复突发到或自多个用户,如在蜂窝大规模多输入多输出(mimo)基带处理器中。
57.操作放置和调度系统和方法可以用于创建用于处理雷达信号的无线电信号处理系统,以生成脉冲、接收脉冲响应并且估计反射项的性质。进一步地,操作放置和调度系统和方法可以用于在进行大规模数据中心处理时设计和部署系统。例如,无线电处理系统可以安装在数据中心中,所述数据中心包含操作具有影响调制解调器复杂性的各种调制和编码的100个调制解调器的卫星互联网运营商,所述调制解调器各自从天线和模数转换器跨50
×
40兆赫兹(mhz)输入流发射或接收20mhz的带宽。这100个调制解调器可以跨具有20个带图形处理单元(gpu)的多核计算机的网络环境运行。操作放置和调度系统可以估计调制解调器上的应用跨计算机的最优放置和调度。
58.除更大规模的数据中心平台外,无线电信号处理功能也可以部署在一或多个无线电接收器、一或多个雷达处理器、一或多个无线电发射器或者另一个硬件平台或硬件平台的组合上。
59.图1展示了实例操作放置和调度系统100。操作放置和调度系统100是被实施为在一或多个位置处的一或多个计算机上的计算机程序的系统的实例,在所述系统中可以实施下文所描述的系统、组件和技术。操作放置和调度系统100为在目标硬件平台110内表示为原始无线电信号处理计算数据流图102的应用确定计算图操作和资源的最优放置和调度。操作放置和调度模型107采取表示为原始无线电信号处理计算数据流图102的应用以及关于将要调度和部署应用的目标硬件平台106的信息作为输入。
60.原始无线电信号处理计算数据流图102包含由有向边连接的节点。计算图中的每个节点表示操作。节点的传入边表示到节点中的输入的数据流,即到节点所表示的操作的输入。来自节点的外出边表示节点所表示的操作的输出流以用作到另一个节点所表示的操作的输入。因此,将图形中的第一节点连接到图形中的第二节点的有向边指示,使用第一节点所表示的操作生成的输出作为到第二节点所表示的操作的输入。流入原始无线电信号处理计算数据流图中的数据可以包含:射频环境数据、信号、信号加载、数据包或其它内容类型。
61.目标硬件平台110可以包含:单个处理器;同一类型的多个处理器;具有多种类型的协处理器(例如如图形协处理器卡等多种类型的多个处理器)的共享存储器架构;神经形态处理器,如现场可编程门阵列等可编程逻辑装置;分布式存储器架构,如每个处理器具有单独的存储区域的处理器;或者各自具有多核和分割的或分离的存储器架构的多个处理器或多种类型的处理器的网络。目标硬件平台可以是蜂窝电话、手持电话、嵌入式数字信号处理器(dsp)或嵌入式处理器上的多个核、或在大型网络配置中具有图形或其它张量协处理器的大量不同的多处理器计算机。
62.关于目标硬件平台106的信息可以包含:识别目标硬件平台中的可用处理单元、处理单元的处理能力、目标硬件平台中的可用存储器的数据;关于连接目标硬件平台中的处理器的总线或网络的数据,例如目标硬件平台中的计算装置的带宽、通信等待时间或速度、可用能量或电池寿命中的一或多个;以及关于目标硬件平台106的其它信息(例如,一或多个处理器或数字逻辑装置的硬件规格、可用指令和能力、编译工具链、在其上运行的其它软件、总线和互连信息、存储器容量、输入信息的速率、关于输入和输出信息流的信息等)。
63.在一些实施方案中,系统可以例如从用户另外任选地接收识别在图形的处理期间应当强调的一或多个优化目标的优化输入。优化输入可以由用户、设计者或自动控制器通过指定一或多个优化目标函数的权重来进行传送。这些权重例如可以估计或测量如吞吐量、功耗或等待时间等性能度量,或者以其它方式基于多个放置和调度候选项。系统可以与所选目标的权重成比例地选择最好地实现所选目标的配置。
64.例如,优化目标可以是最小化总体资源使用。可以通过当将原始无线电信号处理计算数据流图分割为软件内核的集合时最小化对目标硬件平台的总体资源使用来实现此目标。系统100可以在确定如何分割时使用目标硬件平台的已知或预测的资源使用情况和能力。系统100可以确定目标硬件平台的每个处理单元的处理能力和容量、运行计算图的已知或预测的存储器访问时间、在处理单元之间传送信息所需的已知或预测的通信时间、由处理器在上下文切换上花费的开销时间以及影响所调度应用的性能的其它系统行为和约束。
65.其它优化目标可以是:跨所有可用处理单元最大化有效的处理单元使用情况;最小化通过处理单元进行图形处理的等待时间;获得最大吞吐量;在执行计算图的同时最小化目标硬件平台计算装置的功耗;在目标硬件平台上运行其它软件进程的同时最小化对计算图的干扰;以及以严格的数据吞吐率约束(例如18.72兆样本每秒(msamples/sec))或以特定的最小等待时间(例如10毫秒期限)最小化用于以固定速率执行图的处理器、逻辑门或存储器需求的资源消耗。这一点可以例如通过以下来实现:明确地减少未达到所需吞吐量或等待时间的所述多个调度和放置候选项,并且然后选择一或多个候选项具有如通过对这些目标的加权指定的最佳资源使用情况度量。
66.操作放置和调度模型107使用计算图102的输入、目标硬件平台信息106以及任选地优化输入来分割原始无线电信号处理计算数据流图102的节点和有向边,以产生当在目标硬件平台上执行时实现优化目标或优化输入所指定的目标的软件内核的集合。除产生软件内核外,模型107还确定了对软件内核以及目标硬件平台110中的其它资源的运行时资源调度。下面关于图6更详细地描述了此过程。
67.系统然后将运行时资源调度信息108提供到目标硬件平台110,以用于在目标硬件平台110上最优地执行特定的无线电信号处理应用102。运行时资源调度信息108可以是高效映射/实现,其可以包含内核的处理器分配、缓冲区大小、内核之间的位置和引用、分离的存储器域之间的存储器传送指令、软件内核的工作顺序和/或工作量(例如所处理的项目数)等。可以以编译程序、如抽象语法树等中间语言表示以及描述系统、其放置和执行的元数据文件或数据结构的形式提供运行时资源调度信息。目标硬件平台110然后可以以张量的形式接收输入信息数据流103并且在输入103上执行计算图107以产生输出105。张量是指密集地布置成n个维度的数字集合,如向量(n

1级张量)、矩阵(n

2级张量)或更高维度的张
量。此输入张量数据可以包含如数字采样的同相和正交时间序列号等无线电信号、数字采样的声学时间序列信息、如频谱图等功率频率信息、如脉冲整合等雷达数据立方体处理信息、或者可能产生位、数据包、消息、样本或值的向量的其它软件进程的输出。输出105是在目标硬件系统中在输入数据103上运行特定的应用图的结果。
68.操作放置和调度系统100表示使用如图2所示的功能张量块(202a

202c)的无线电信号处理应用。每个功能张量块(202a

c)表示作用于输入张量数据(201)并且产生张量输出(203)的常用信号处理操作。所选功能张量块(202a

c)一起构成无线电信号处理应用。常用信号处理操作可以包含有限脉冲响应滤波器、快速傅里叶变换、无限脉冲响应滤波器、自动增益控制、同步或解调算法、纠错解码算法、波束操控或多天线组合算法、或者其它高级信号处理操作。高级功能信号处理块的类似集合的一个实例是gnu无线电应用的块集合。高级功能信号处理块还可以表示matlab功能。
69.例如,如图3a

c所示,无线电信号处理应用可以是接收样本、同步、解调、解码和输出数据包或位的无线电接收器。如图3a中的实例所示,可以将无线电信号处理应用300a完全限定为数字信号处理任务。
70.在此实例中,无线电接收器接收发送到如增益控制算法303等不同的数字信号处理任务的样本301。在增益控制算法之后,输入使用同步算法305进行同步、使用解调算法307进行解调、使用前向纠错(fec)解码算法309进行解码。然后,接收器输出解码数据包313。可以使用数字信号处理功能来限定此无线电接收器处理应用300a,所述数字信号处理功能可以使用如图2所示的功能数据张量块202来表达,其中每个功能数据张量块代表无线电接收器应用进程中的一个步骤。
71.如图3b中的实例所示,可替代地,可以通过数字信号处理任务和机器学习模型两者来限定类似的无线电接收器处理应用。在此实例实施方案中,无线电接收器处理应用300b包含无线电接收器,所述无线电接收器接收样本输入301并且将样本发送到增益控制算法303和同步算法305。无线电接收器处理应用300b然后使用基于机器学习的映射函数来替换进行解调和fec解码的数字信号处理任务311。然后,接收器输出解码数据包313。传统的数字信号处理任务和机器学习模型两者可以使用如图2所示的功能数据张量块202和张量表达式来限定,使得可以跨计算资源高效地共同优化对所有部分的放置和调度。
72.在一些实施方案中,可以将无线电接收器处理应用限定为如图3c中的实例所示的完全学习型系统。在此实例实施方案中,无线电接收器处理应用300c包含无线电接收器,所述无线电接收器接收样本输入301、最小预处理步骤302以及然后以从样本数据训练的近似解替换用于无线电接收的整个传统数字信号处理链的基于机器学习的映射函数312。在此实例中,基于机器学习的映射函数然后输出解码数据包313。整个应用进行可以使用如图2所示的功能数据张量块202和张量表达式来限定。
73.在一个实施方案中,用户可以具有通过用户界面使用功能数据张量块202构建无线电信号处理应用的能力,例如通过用表示功能块的框呈现以及将框与表示到和自功能块的数据流的箭头连接接。图4展示了向用户提供此能力的实例操作放置和调度系统400。系统400提供向用户呈现功能无线电信号处理块单元407的用户界面405。用户可以通过用户界面405将功能无线电信号处理块407连接在一起以形成功能无线电信号处理应用,并且可以键入描述每个块的高级参数(例如信道索引、前导值、滤波器抽头或其它规格)。将这些高
级参数适当地映射到所产生的应用中。一些实例无线电信号处理应用包含:无线电接收器(例如美国高级电视业务顾问委员会(atsc)、lte、无线保真(wi

fi)、蓝牙、卫星或其它类似的无线电通信系统)、雷达处理器(例如脉冲生成和整合、分析以及状态机或优化驱动的动态控制行为)、无线电发射器或接收器、雷达或感测应用、通信调制解调器、或用于处理无线电信号以移除干扰或校正失真的应用、或处理射频样本数据以推断数据基础信息的应用(例如对应的对象、行为、潜在威胁、装置故障或异常等)。
74.系统400通过用户界面405接收用户的功能无线电信号处理应用。功能无线电信号处理应用可以采取如图2所示的功能无线电信号处理块数据流图的形式。
75.功能无线电信号处理块数据流图按照张量符号表达式表达,所述张量符号表达式可以通过映射单元410映射到平坦化数据流图中以产生原始无线电信号处理计算数据流图。映射单元410通过跨多个功能块组合原始操作以形成原始操作的大图来使功能无线电信号处理块数据流图平坦化。例如,功能块可能已经以其对应的原始图形式进行存储,或者过程式程序可以通过经由操作的集合跟踪数据流的过程转换为原始图形式。映射单元410然后在不考虑由功能无线电信号处理块407的边界边形成的障碍的情况下加入操作,并且可以在不同的处理数据集上复制图的各部分例如以利用数据并行。
76.图5展示了由平坦化如图2所示的数据流图等功能无线电信号处理块数据流图而得到的原始无线电信号处理计算数据流图500的实例。在数据流图500中,在不考虑功能张量块202的功能边界的情况下,将功能张量块202映射到若干个张量运算512。例如,可以通过组合包括每个功能块的原始乘法、加法和其它张量运算将由数字振荡器和混频器限定的调谐操作和之后的滤波和抽取操作合并为单个内核,或者如果认为对于优化目标和目标硬件平台更高效,则可以将两者分为多于两个软件内核。图接收相同的张量输入510作为原始功能无线电信号处理块数据流图并且输出相同或类似的输出513。
77.返回参考图4,一旦系统400将功能无线电信号处理块数据流图平坦化为原始无线电信号处理计算数据流图,则操作放置和调度系统400就类似于图1的操作放置和调度系统100起作用。
78.图6展示了用于确定用于在目标硬件平台中执行计算图操作的最优运行时资源调度的实例过程600的流程图。过程600由具有位于一或多个位置处的一或多个计算机并且根据本说明书进行适当编程的系统执行。例如,经过适当编程的操作放置和调度系统,例如图1的操作放置和调度系统100或图4的操作放置和调度系统400可以执行过程600。
79.如图6所示,为了确定用于在目标硬件平台中执行计算图操作的最优运行时资源调度,系统提供了包含计算图操作的原始无线电信号处理计算数据图602。在一些实施方案中,如上文所描述的,用户使用高级功能张量块图表达无线电信号处理应用。系统将高级图平坦化为低级原始图,以优化图操作执行。然后,系统对原始信号处理计算数据流图进行分割,以产生软件内核集。系统对如何分割软件内核作出初步预测。系统细分图中的操作和其边缘两者,以实现操作并行。在一些情况下,例如当对应的子图区域的吞吐量低于周围区域时,系统还可以在多个处理器上复制图的各部分以对不同的数据集进行操作,从而实现另外的并行。系统还确定了应当遍历每个边缘以提供数据并行和更高效的执行的数据量。
80.图7展示了软件内核跨目标硬件平台的多个处理单元的实例分布。在此实例中,系统分配处理器a例如处理器a1 740a的一个核来执行内核1 722a。处理器b可以具有处理软
件内核内核2 722b的多个内核760a

760n,而处理器a的另外的核,例如处理器核780a

780n处理软件内核内核3 722c。
81.返回参考图6的过程,系统可以迭代地分割原始信号处理计算数据流图以确定在目标硬件平台上执行的实现至少一个识别的优化目标的软件内核和映射的最优集合604。
82.为了确定最优分割,系统可以测量当执行软件内核的初始集合时对目标硬件平台中的处理单元的资源使用。测得的资源使用可以来自实际执行、预测执行或模拟执行。在实际执行的情况下,可以将来自目标硬件平台以及来自图的执行和其测得的详细性能度量的信息反馈到操作放置和调度模型,以供模型评估软件内核执行的效率。考虑到测得的资源使用,系统然后可以迭代地改变分割以产生比软件内核初始集合更好地实现至少一个优化目标的软件内核更新集合。在一些实施方案中,系统使用调度测量信息来改进分割。另外或可替代地,系统可以使用到不同处理器和/或架构的映射来改进分割。
83.此迭代执行可以改进性能,例如因为可能难以确切地确定大型多处理器软件系统的确切性能,尤其是在取决于传入信息流的性质、质量和内容(例如高对低信噪比、空载或满载通信信号、变化的采样率、变化的信道损伤复杂度等)的动态负载下。
84.例如,系统可以预测最小化对目标硬件平台中的处理单元的总体资源使用的软件内核初始集合。然后,系统可以测量对运行软件内核初始集合的处理单元的预测、模拟或实际资源使用。然后,系统可以改变软件内核的分割,以产生可更好地实现优化目标的软件内核的更新集合。
85.在一些实施方案中,为了识别软件内核的初始集合或软件内核的更新集合,系统使用了预测和统计模型,所述模型包含用于硬件的计算、存储器和通信成本的模型。另外或可替代地,系统可以使用一或多个机器学习模型。
86.机器学习模型可以是神经网络、贝叶斯(bayesian)推理模型或另一种形式的模型,如随机回归或分类技术(例如,自回归和移动平均值(arma)模型、支持向量机(svm)等)。神经网络是采用一或多层神经元针对其输入生成输出例如一或多个分类或回归以用于其输入的机器学习模型。除输出层之外,神经网络还可以包含一或多个隐藏层。每个隐藏层的输出可以用作到网络中的下一层即下一隐藏层或输出层的输入,并且连接也可以绕过层或者在同一层内返回,如在循环网络单元的情况下那样。神经网络的每一层根据网络架构和层的相应参数集从其输入生成输出。
87.可以在模拟数据或实际目标硬件上训练机器学习模型,在所述目标硬件上将部署表示无线电信号处理应用的计算图,或者可以在操作时基于模型的输出的良好性度量对机器学习模型进行调谐,所述良好性度量可以用作反馈以调整权重或参数。
88.除确定软件内核分割之外,系统还限定了运行时资源调度以在目标硬件平台上高效地执行操作606。限定运行时资源调度包含确定各个软件内核跨目标硬件平台的处理单元的数据放置。除确定对软件内核的放置之外,系统还可以确定内核之间的缓冲器大小、确定每个软件内核应当在给定时间执行的数据量、确定软件内核应当执行的顺序、或确定每次应当在内核执行之间通过总线或存储器区域传递的或者在处理器结构域之间移动的信息量。运行时调度还可以确定线程间通信的存储器写入的大小、线程间通信之间的处理时间的长短以及缓存器的执行情况。
89.此运行时资源调度可以使用与用于确定内核放置的模型相同或类似的模型来确
定。模型可以是预测最优调度以及资源分配和使用的预测和统计模型或机器学习模型。另外或可替代地,模型可以基于根据先前的执行信息对性能的测量。这些模型通常可以预测不同放置和执行调度配置的性能,从而实现从多个候选项中选择对最优配置的最佳估计。在迭代时,可以通过增加估计和测量的置信度来提高这些估计的准确性。
90.图8a和b展示了操作的运行时调度的实例,所述实例示出了可以通过张量维度的数据并行化操作的方法。如图8a和8b中通过操作804a1和804a2所示,只要操作不具有内部状态,就可以通过张量维度上的数据并行化操作。图8a的实例运行时调度800a示出,第一输入信息在第一张量维度上包含16项。操作放置和调度系统可以使用此第一维度上的16个元素来预测或模拟操作a 802a的执行。可以通过此第一维度上的数据将操作b 804a并行化至一半元素进入操作b 804a1的一个实例化并且另一半元素发送到操作b 804a2的第二实例化。将来自操作b的并行化执行的输出发送到操作c 806a,其中,在第一张量维度的所有16个元素上运行操作c,并且输出所得的张量。
91.图8b示出了具有两倍工作量的图8a的操作。代替操作一次在16个元素上执行,操作在32个元素上执行。图8b的实例运行时调度800b示出,第一输入信息在第一张量维度上包含32项。操作放置和调度系统可以使用此第一维度上的32个元素来预测或模拟操作a 802b的执行。可以通过此第一维度上的数据将操作b 804b并行化至一半元素进入操作b 804b1的一个实例化并且另一半元素发送到操作b 804b2的第二实例化。将来自操作b的并行化执行的输出发送到操作c 806b,其中,在第一张量维度的所有32个元素上运行操作c,并且输出所得的张量。
92.使用机器学习模型或预测和统计模型或两者的组合,系统确定了需要较长内核运行和较大i/o尺寸的图8b的运行时调度800b的资源使用在运行时是否产生了比每次执行时进行一半工作的图8a的运行调度800a更高效的性能。然后,系统选择最高效的运行时资源调度以发送到目标硬件平台。
93.为了限定高效的运行时调度,系统还可以考虑到在目标硬件平台上运行或将由目标系统同时执行的其它进程。在一个实施方案中,其它进程可以是第二应用,所述第二应用也表示为原始无线电信号处理计算数据流图。在这种情况下,系统可以识别这两个计算数据流图的特定运行时调度,当这两个计算数据流图在目标系统中执行时,所述计算数据流图实现了特定的优化目标。在其它情况下,未从类似数据流图明确地导出的软件可以在与计算数据流图共享的核上执行或者单独在不包含在数据流图放置算法中的核上执行。
94.在另一个实施方案中,系统可以仅认识到在目标系统上运行的一或多个其它进程以及正在使用的资源。例如,目标系统可以执行不会遭到破坏的高优先级系统任务。当确定计算图的运行时资源调度和放置时,操作放置和调度系统可以将资源可用性和使用情况考虑在内。
95.在一些实施方案中,限定运行时调度包含确定在其上执行来自软件内核的操作的最优处理单元类型以及将软件内核分配到最优处理类型的至少一个处理单元。例如,当跨中央处理单元(cpu)、gpu、dsp、张量或向量数学运算协处理器、其它神经形态处理器和/或fpga分配计算图时,图可以分割成在fpga上有初始高速率操作、在cpu上具有另外的较低复杂度操作并且在gpu上有较高复杂度操作。在现场可编程门阵列(fpga)不可用的一些情况下,可以在gpu上调度高吞吐量和高复杂度操作,同时可以在cpu上放置外部接口或变换或
者较低复杂度操作。在一些情况下,在仅cpu可用时,可以在cpu上调度所有单元。这种放置优化是使用如前面所描述的候选放置和执行候选项的预测性能度量来完成的,从而考虑到每个计算平台上可用的资源。
96.返回参考图6,在限定运行时资源调度以在目标硬件平台上高效地执行操作之后,过程600根据限定的运行时资源调度分配所述目标硬件平台中的资源608。
97.图9a和9b展示了实例系统,在所述实例系统中,通过运行时资源调度来限定资源和内核放置,以在目标平台上高效地执行操作从而实现优化执行。图9a展示了基于张量数据流的无线电接收器系统900a的实例,并且图9b展示了基于张量数据流的无线电发射器系统900b的实例。可以使用上文所描述的过程600创建这两种系统。
98.在一些实施方案中,系统可以使用仅模拟或预测数据以及特定的计算图来确定关于特定目标硬件实施方案的运行时资源调度信息。系统可以确定图的固定配置以及其它运行时调度信息并且将固定配置提供到特定的锁定硬件配置,例如移动电话基带处理器或dsp,以供执行。
99.在其它实施方案中,系统需要在目标硬件平台上执行,以便确定图的正确配置以及其它运行时调度信息。例如,系统可以需要在不同输入采样率下运行或者使用不同的调制,以便正确地确定目标硬件平台的计算图的配置。
100.本说明书中描述的主题和功能操作的实施例可以以数字电子电路系统、有形地体现的计算机软件或固件、计算机硬件(包含本说明书中公开的结构和其结构等同物)、或以其中的一或多个的组合来实施。本说明书中描述的主题的实施例可以实施为一或多个计算机程序,即在有形非暂时性存储媒体上编码以用于由数据处理设备执行或者以用于控制数据处理设备的操作的计算机程序指令的一或多个模块。计算机存储媒体可以是机器可读存储装置、机器可读存储基板、随机或串行存取存储器装置、或其中的一或多个的组合。可替代地或另外,程序指令可以编码在人工生成的传播信号,例如机器生成的电信号、光学信号或电磁信号上,所述传播信号被生成以对用于传输到适合的接收器设备以供数据处理设备执行的信息进行编码。
101.术语“数据处理装置”是指数据处理硬件并且涵盖用于处理数据的所有类型的设备、装置和机器,包含例如可编程处理器、计算机或者多个处理器或计算机。设备还可以是或进一步包含专用逻辑电路系统,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,设备还可以任选地包含为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或其中的一或多个的组合的代码。
102.还可以称为或描述为程序、软件、软件应用、app(应用程序)、模块、软件模块、脚本或代码的计算机程序可以用任何形式的可编程语言编写,包含编译或解释语言或者声明型或过程性语言;并且计算机程序可以用任何形式进行部署,包含作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。程序可以但不需要对应于文件系统中的文件。程序可以存储在文件的保持其它程序或数据的部分(例如存储在标记语言文档中的一或多个脚本)中、存储在专用于所讨论的程序的单个文件中、或者存储在多个协调文件(例如存储一或多个模块、子程序、或代码的各部分的文件)中。计算机程序可以被部署成在一个计算机上或者在位于一个站点或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。
103.本说明书中描述的过程或逻辑流程可以由执行一或多个计算机程序以通过操作输入数据并生成输出来执行功能的一或多个可编程计算机执行。过程或逻辑流程还可以由专用逻辑电路系统例如fpga或asic或者由专用逻辑逻辑电路系统和一或多个可编程计算机的组合来执行。
104.适于执行计算机程序的计算机可以基于通用或专用微处理器或两者或者任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的主要元件是用于执行或施行指令的中央处理单元和用于存储指令和数据的一或多个存储器装置。中央处理单元和存储器可以由专用逻辑电路系统补充或并入专用逻辑电路系统中。通常,计算机还将包含用于存储数据的一或多个大容量存储装置(例如磁盘、磁光盘或光盘),或者被操作性地耦接以从所述一或多个大容量存储装置接收数据或向所述一或多个大容量存储装置传送数据或两者。然而,计算机不需要具有这种装置。而且,仅举几例,计算机可以嵌入在另一个装置中,所述另一个装置例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器、或便携式存储装置例如通用串行总线(usb)闪存驱动器。
105.适于存储计算机程序指令和数据的计算机可读媒体包含所有形式的非易失性存储器、介质和存储器装置,举例来说,包含:半导体存储器装置,例如电可编只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和闪存装置;磁盘,例如内部硬盘或可移动盘;磁光盘;以及紧凑型光盘

只读储存器(cd

rom)盘和数字视频盘

只读存储器(dvd

rom)盘。
106.为了提供与用户的交互,可以在具有用于向用户显示信息的显示装置(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和定点装置(例如鼠标或跟踪球)的计算机上实施本说明书中描述的主题的实施例。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包含声音、语音或触觉输入。另外,计算机可以通过将文档发送到用户所使用的装置并且从所述装置接收文档来与用户交互;例如,通过响应于从用户的装置上的web浏览器接收的请求将网页发送到web浏览器。而且,计算机可以通过向个人装置例如智能电话发送文本消息或其它形式的消息、运行消息传递应用以及进而接收用户的响应消息来与用户交互。
107.本说明书中描述的主题的实施例可以用计算系统实施,所述计算系统包含后端组件(例如作为数据服务器)、或者包含中间件组件(例如应用服务器)、或者包含前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实施方案交互的图形用户界面、web浏览器或app的客户端计算机)、或者包含一或多个这样的后端组件、中间件组件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或媒体,例如通信网络来进行互连。通信网络的实例包含局域网(lan)和广域网(wan)例如互联网。
108.计算系统可以包含客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端与服务器的关系借助于在各自的计算机上运行并且彼此具有客户端

服务器关系的计算机程序产生。在一些实施例中,服务器将数据例如html页面发送到用户装置,例如以用于向与用作客户端的装置交互的用户显示数据并且从所述用户接收用户输入。在用户装置处生成的数据,例如用户交互的结果可以从所述装置在服务器处接收。
109.虽然本说明书包含许多特定的实施方案细节,但是这些细节不应被解释为是对任何发明的范围或对可以要求的范围的限制,而应当解释为是对可以专属于特定发明的特定实施例的特征的描述。在单独的实施例的背景下在本说明书中描述的某些特征还可以组合地实施在单个实施例中。相反,在单个实施例的背景下描述的各个特征也可以单独地或以任何适合的子组合实施在多个实施例中。而且,虽然特征在上文可以被描述为以某些组合起作用并且甚至如此最初被要求,但来自所要求的组合的一或多个特征在某些情况下可以与组合离体,并且所要求的组合可以涉及子组合或子组合的变化。
110.类似地,尽管在附图中以特定顺序描述了操作,但这不应被理解为要求按照所示出的特定顺序或按照先后顺序来执行这种操作,或者要求执行所有展示的操作,以实现期望的结果。在某些情况下,多重任务处理和并行处理可能是有利的。而且,上述实施例中的各个系统模块和组件的分离不应被理解为在所有实施例中都要求这种分离,并且应理解的是,所描述的程序组件和系统通常可以一起整合在单个软件产品中或封装进多个软件产品中。
111.已经描述了主题的特定实施例。其它实施例在以下权利要求书的范围内。例如,权利要求书中叙述的动作可以按照不同顺序执行并且仍然实现了期望的结果。作为一个实例,在附图中描绘的过程不一定需要所示出的特定顺序或者先后顺序来实现期望的结果。在一些情况下,多重任务处理和并行处理可能是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献