本公开总体上涉及基于流的架构中的硬件加速器,诸如在学习/推断机器(例如,人工神经网络(ann),诸如卷积神经网络(cnn))中使用的卷积加速器。
背景技术:
1、各种计算机视觉、语音识别和信号处理应用可以受益于学习/推断机器的使用,这些学习/推断机器可以快速地执行数百、数千甚至数百万个并发操作。如本公开所讨论的,学习/推断机器可以属于机器学习、人工智能、神经网络、概率推断引擎、加速器等的技术名称。
2、这样的学习/推断机器可以包括或以其他方式利用cnn,诸如深度卷积神经网络(dcnn)。dcnn是基于计算机的工具,它处理大量数据,并且通过混合数据内的近端相关特征、对数据进行广泛预测以及基于可靠结论和新的混合改进预测来自适应地“学习”。dcnn被布置在多个“层”中,并且在每个层处进行不同类型的预测。采用基于流的架构的硬件加速器(包括卷积加速器)通常被dcnn用于对大量数据的处理进行加速。
技术实现思路
1、在一个实施例中,一种流交换机包括数据路由器、配置寄存器以及仲裁逻辑。数据路由器具有多个输入端口和多个输出端口,每个输入端口具有多个相关联的虚拟输入通道,每个输出端口具有多个相关联的虚拟输出通道。数据路由器在操作中将数据流从多个输入端口中的输入端口传输到多个输出端口中的一个或多个输出端口。配置寄存器被耦合到数据路由器,并且在操作中存储与多个输出端口中的相应的输出端口的虚拟输出通道相关联的配置数据。所存储的与虚拟输出通道相关联的配置数据标识源输入端口和虚拟输入通道id,源输入端口和虚拟输入通道id与输出端口的虚拟输出通道相关联。仲裁逻辑被耦合到配置寄存器和数据路由器。仲裁逻辑在操作中基于与输入端口的虚拟输入通道相关联的请求信号以及与虚拟输出通道相关联的配置数据来分配数据路由器的带宽。
2、在一个实施例中,一种硬件加速器包括多个处理元件、多个流传输引擎、以及流交换机。流交换机被耦合到多个处理元件和多个流传输引擎。在操作中,流交换机在多个流传输引擎与多个处理元件之间流传输数据。流交换机包括数据路由器、配置寄存器以及仲裁逻辑。数据路由器具有多个输入端口和多个输出端口,每个输入端口具有多个相关联的虚拟输入通道,每个输出端口具有多个相关联的虚拟输出通道。数据路由器在操作中将数据流从多个输入端口中的输入端口传输到多个输出端口中的一个或多个输出端口。配置寄存器被耦合到数据路由器,并且在操作中存储与多个输出端口中的相应的输出端口的虚拟输出通道相关联的配置数据。所存储的与虚拟输出通道相关联的配置数据标识与输出端口的虚拟输出通道相关联的源输入端口和虚拟输入通道id。仲裁逻辑被耦合到配置寄存器和数据路由器。在操作中,仲裁逻辑基于与输入端口的虚拟输入通道相关联的请求信号以及与虚拟输出通道相关联的配置数据来分配数据路由器的带宽。
3、在一个实施例中,一种方法包括:存储与流交换机的数据路由器的输出端口的虚拟输出通道相关联的配置数据。数据路由器具有多个输入端口和多个输出端口,每个输入端口具有相关联的多个虚拟输入通道,每个输出端口具有多个相关联的虚拟输出通道。流交换机接收针对传输与多个输入端口的相应的虚拟输入通道相关联的数据流的请求。针对多个输出端口中的每个输出端口,多个虚拟输出通道中的与输出端口相关联的虚拟输出通道基于与输入端口的虚拟输入通道相关联的请求信号以及与虚拟输出通道相关联的配置数据被选择。数据路由器的带宽基于所选择的虚拟输出通道被分配给输入端口的虚拟输入通道。数据基于所分配的带宽经由数据路由器被流传输。
1.一种流交换机,包括:
2.根据权利要求1所述的流交换机,其中所述仲裁逻辑在操作中生成与相应的虚拟输入通道相关联的停滞信号,并且停滞信号抑制数据由与相应的所述虚拟输入通道以及所述停滞信号相关联的源的传输。
3.根据权利要求2所述的流交换机,包括停滞路由器,所述停滞路由器在操作中将停滞信号路由到与所述输入端口的虚拟输入通道相关联的相应的源。
4.根据权利要求1所述的流交换机,其中所述仲裁逻辑在操作中采用轮循优先化方案以分配所述带宽。
5.根据权利要求1所述的流交换机,其中所述仲裁逻辑包括多个仲裁器,所述多个仲裁器与所述多个输出端口中的相应的输出端口相关联。
6.根据权利要求5所述的流交换机,其中所述仲裁逻辑包括主仲裁器,所述主仲裁器在操作中仲裁所述多个仲裁器中的与相应的输出端口相关联的仲裁器之间的冲突。
7.根据权利要求6所述的流交换机,其中所述仲裁逻辑在操作中基于与输出端口相关联的目的地ip是否准备好接收数据的指示来实现背压机制。
8.根据权利要求1所述的流交换机,其中所述仲裁逻辑在操作中基于与输出端口相关联的目的地ip是否准备好接收数据的指示来实现背压机制。
9.根据权利要求1所述的流交换机,包括请求路由器,所述请求路由器在操作中基于所存储的所述配置数据将与虚拟输入通道相关联的请求信号路由到所述仲裁逻辑。
10.根据权利要求1所述的流交换机,包括目的地路由电路装置,所述目的地路由电路装置在操作中基于与所接收的所述数据流相关联的虚拟输入通道id以及所存储的所述配置数据将在输入端口处被接收到的数据流流传输到所述数据路由器的输出端口。
11.根据权利要求1所述的流交换机,其中所述数据路由器包括:
12.一种硬件加速器,包括:
13.根据权利要求12所述的硬件加速器,其中所述仲裁逻辑在操作中生成与相应的虚拟输入通道相关联的停滞信号,并且停滞信号抑制数据由与相应的所述虚拟输入通道以及所述停滞信号相关联的源的传输。
14.根据权利要求12所述的硬件加速器,其中所述仲裁逻辑包括多个仲裁器,所述多个仲裁器与所述多个输出端口中的相应的输出端口相关联。
15.根据权利要求14所述的硬件加速器,其中所述仲裁逻辑包括主仲裁器,所述主仲裁器在操作中仲裁所述多个仲裁器中的与相应的输出端口相关联的仲裁器之间的冲突。
16.根据权利要求12所述的硬件加速器,其中所述仲裁逻辑在操作中基于与输出端口相关联的目的地ip是否准备好接收数据的指示来实现背压机制。
17.根据权利要求16所述的硬件加速器,其中与所述输出端口相关联的所述目的地是所述多个处理元件中的处理元件。
18.根据权利要求12所述的硬件加速器,其中与所述多个输入端口中的输入端口相关联的所述多个虚拟输入通道包括:
19.一种方法,包括:
20.根据权利要求19所述的方法,包括:
21.根据权利要求19所述的方法,包括:
22.根据权利要求19所述的方法,其中经由所述数据路由器流传输所述数据包括:
23.根据权利要求19所述的方法,其中所述输入端口的第二虚拟输入通道与被耦合到所述输入端口的流传输引擎相关联。
24.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有内容,所述内容引起流交换机执行方法,所述方法包括:
25.根据权利要求24所述的非暂态计算机可读介质,所述方法包括:
26.根据权利要求24所述的非暂态计算机可读介质,其中所述内容包括指令,所述指令由所述流交换机的处理电路装置执行。
