首页 / 专利库 / 人工智能 / 专用逻辑 / 数据传输方法及相关产品

数据传输方法及相关产品

阅读:256发布:2020-05-11

专利汇可以提供数据传输方法及相关产品专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种数据传输方法及相关产品,其中相关产品包括组合处理装置,该组合处理装置包括计算装置,通用互联 接口 和其他处理装置。所述计算装置与所述其他处理装置进行交互,共同完成用户 指定 的计算操作,从而提高不同计算载体之间的数据传输效率。,下面是数据传输方法及相关产品专利的具体信息内容。

1.一种计算装置,其特征在于,所述计算装置包括多个计算载体、与所述多个计算载体中每一计算载体的片上缓存电路连接的片上存储数据通路控制电路、以及与所述片上存储数据通路控制电路连接的片上存储数据通路,其中:
所述片上存储数据通路控制电路,用于接收所述多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令;对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址,所述接收数据地址为所述多个计算载体中的第二计算载体的第二片上缓存电路中的一个地址;
所述片上缓存电路数据通路,用于根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。
2.根据权利要求1所述的计算装置,其特征在于,所述片上存储数据通路控制电路包括指令缓存单元、与所述指令缓存单元连接的指令译码单元及与所述指令缓存单元和所述指令译码单元连接的内存管理单元,其中:
所述指令缓存单元,用于缓存所述数据传输指令;
所述指令译码单元,用于对所述数据传输指令进行译码,以得到所述发送数据地址和所述接收数据地址;
所述内存管理单元,用于管理所述数据传输指令。
3.根据权利要求2所述的计算装置,其特征在于,所述内存管理单元包括地址映射模请求仲裁模块和一致性控制模块,其中:
所述地址映射模块,用于确定所述接收数据地址对应的所述第二片上缓存电路;
所述请求仲裁模块,用于若所述指令缓存单元包括多个所述数据传输指令,则确定所述多个数据传输指令中每一数据传输指令的执行顺序;
所述一致性控制模块,用于保证数据传输一致性。
4.根据权利要求1-3任一项所述的计算装置,其特征在于,所述计算装置还包括快速外部设备互连总线PCIE数据通路,用于实现所述多个计算载体中任意两个计算载体的片外缓存电路之间的数据传输。
5.根据权利要求1-4任一项所述的计算装置,其特征在于,所述多个计算载体包括中央处理器CPU、图像处理器GPU、专用集成电路ASIC、现场可编程逻辑阵列FPGA、粗粒度可重构阵列CGRA或数字信号处理器DSP中的至少两种。
6.根据权利要求1-5任一项所述的计算装置,其特征在于,所述计算载体包括至少一个计算单元,所述计算单元包括:主处理电路、分支处理电路与基础处理电路,所述主处理电路与所述分支处理电路连接,所述基础处理电路与所述分支处理电路连接,其中:
所述主处理电路,用于获取所述计算单元以外的数据,并将该数据划分成广播数据和分发数据;
所述主处理电路,用于将所述广播数据以广播方式发送给所有分支处理电路,将所述分发数据选择性的分发给不同的分支处理电路;
所述分支处理电路,用于在所述主处理电路与所述基础处理电路之间转发数据;
所述基础处理电路,用于接收所述分支处理电路转发的广播数据和分发数据,并对该广播数据和分发数据执行运算得到运算结果,将该运算结果发送至所述分支处理电路;
所述主处理电路,用于接收分支处理电路转发的所述基础处理电路的运算结果,将该运算结果进行处理得到计算结果。
7.根据权利要求6所述的计算装置,其特征在于,所述主处理电路,具体用于将所述广播数据以一次广播或多次广播发送给所有分支处理电路;
所述基础处理电路具体用于对该广播数据和分发数据执行内积运算、乘积运算或向量运算得到运算结果。
8.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求1-7任意一项所述的计算装置,通用互联接口和其他处理装置;
所述计算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
9.一种系统级芯片,其特征在于,包括如权利要求1-7任意一项所述的计算装置或如权利要求8所述的组合处理装置。
10.一种数据传输方法,其特征在于,应用于如权利要求1-7任意一项所述的计算装置,所述方法包括:
通过所述片上存储数据通路控制电路接收所述多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令;
通过所述片上存储数据通路控制电路对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址,所述接收数据地址为所述多个计算载体中的第二计算载体的第二片上缓存电路中的一个地址;
通过所述片上缓存电路数据通路根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。
11.根据权利要求10所述的方法,其特征在于,所述片上存储数据通路控制电路包括指令缓存单元、与所述指令缓存单元连接的指令译码单元及与所述指令缓存单元和所述指令译码单元连接的内存管理单元,所述通过所述片上存储数据通路控制电路对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址,包括:
通过所述指令译码单元对所述数据传输指令进行译码,以得到所述发送数据地址和所述接收数据地址;
所述方法还包括:
通过所述指令缓存单元缓存所述数据传输指令;
通过所述内存管理单元管理所述数据传输指令。
12.根据权利要求11所述的方法,其特征在于,所述内存管理单元包括地址映射模块、请求仲裁模块和一致性控制模块,所述通过所述内存管理单元管理所述数据传输指令,包括:
通过所述地址映射模块确定所述接收数据地址对应的所述第二片上缓存电路;
若所述指令缓存单元包括多个所述数据传输指令,则通过所述请求仲裁模块确定所述多个数据传输指令中每一数据传输指令的执行顺序;
通过所述一致性控制模块保证数据传输一致性。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述计算装置还包括快速外部设备互连总线PCIE数据通路,所述方法还包括:
通过所述PCIE数据通路实现所述多个计算载体中任意两个计算载体的片外缓存电路之间的数据传输。
14.根据权利要求10-13任一项所述的方法,其特征在于,所述多个计算载体包括中央处理器CPU、图像处理器GPU、专用集成电路ASIC、现场可编程逻辑门阵列FPGA、粗粒度可重构阵列CGRA或数字信号处理器DSP中的至少两种。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述计算载体包括至少一个计算单元,所述计算单元包括:主处理电路、分支处理电路与基础处理电路,所述主处理电路与所述分支处理电路连接,所述基础处理电路与所述分支处理电路连接,所述方法还包括:
通过所述主处理电路获取所述计算单元以外的数据,并将该数据划分成广播数据和分发数据;
通过所述主处理电路将所述广播数据以广播方式发送给所有分支处理电路,将所述分发数据选择性的分发给不同的分支处理电路;
通过所述分支处理电路在所述主处理电路与所述基础处理电路之间转发数据;
通过所述基础处理电路接收所述分支处理电路转发的广播数据和分发数据,并对该广播数据和分发数据执行运算得到运算结果,将该运算结果发送至所述分支处理电路;
通过所述主处理电路接收分支处理电路转发的所述基础处理电路的运算结果,将该运算结果进行处理得到计算结果。
16.根据权利要求15所述的方法,其特征在于,所述通过所述主处理电路将所述广播数据以广播方式发送给所有分支处理电路,包括:
通过所述主处理电路将所述广播数据以一次广播或多次广播发送给所有分支处理电路;
所述通过所述基础处理电路对该广播数据和分发数据执行运算得到运算结果,包括:
通过所述基础处理电路对该广播数据和分发数据执行内积运算、乘积运算或向量运算得到运算结果。

说明书全文

数据传输方法及相关产品

技术领域

[0001] 本申请涉及信息处理技术领域,具体涉及一种数据传输方法及相关产品。

背景技术

[0002] 神经网络是目前许多人工智能应用的基础,随着神经网络的应用范围的进一步扩大,出现了众多神经网络模型和大批量的请求。在现有技术中,神经网络的计算可采用异构的计算载体进行并行计算,因此,如何提高异构的计算装置之间的数据传输效率是本领域技术人员待解决的技术问题。发明内容
[0003] 本申请实施例提出了一种数据传输方法及相关产品,可提高不同计算载体之间的数据传输效率,便于提高神经网络运算效率。
[0004] 第一方面,本申请实施例提供了一种计算装置,所述计算装置包括多个计算载体、与所述多个计算载体中每一计算载体的片上缓存电路连接的片上存储数据通路控制电路、以及与所述片上存储数据通路控制电路连接的片上存储数据通路,其中:
[0005] 所述片上存储数据通路控制电路,用于接收所述多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令;对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址;
[0006] 所述片上缓存电路数据通路,用于根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址,所述接收数据地址为所述多个计算载体中的第二计算载体的第二片上缓存电路中的一个地址。
[0007] 第二方面,本申请实施例提供了一种组合处理装置,所述组合处理装置包括第一方面所述的计算装置,通用互联接口和其他处理装置;
[0008] 所述计算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
[0009] 第三方面,本申请实施例提供了一种系统级芯片,包括所述第一方面所述的计算装置或所述第二方面所述的组合处理装置。
[0010] 第四方面,本申请实施例提供了一种数据传输方法,应用于如所述第一方面所述的计算装置,所述方法包括:
[0011] 通过所述片上存储数据通路控制电路接收所述多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令;
[0012] 通过所述片上存储数据通路控制电路对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址,所述接收数据地址为所述多个计算载体中的第二计算载体的第二片上缓存电路中的一个地址;
[0013] 通过所述片上缓存电路数据通路根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。
[0014] 第五方面,本申请实施例提供了另一种计算装置,包括处理器、存储器通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于如第四方面中所描述的部分或全部步骤的指令。
[0015] 第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第四方面的方法。
[0016] 采用了上述的数据传输方法及相关产品之后,通过片上存储数据通路控制电路接收多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令,再通过所述片上存储数据通路控制电路对所述数据传输指令进行译码以得到发送数据地址和接收数据地址,通过片上缓存电路数据通路根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。如此,可提高不同计算载体之间的数据传输效率效率,便于提高神经网络运算效率。附图说明
[0017] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 其中:
[0019] 图1是本申请实施例提供的一种计算装置的结构示意图;
[0020] 图1a是本申请实施例提供的一种计算单元的结构示意图;
[0021] 图1b是本申请实施例提供的一种主处理电路的结构示意图;
[0022] 图1c是本申请实施例提供的一种计算单元的数据分发示意图;
[0023] 图1d是本申请实施例提供的一种计算单元的数据回传示意图;
[0024] 图1e是本申请实施例提供的一种片上存储数据通路控制电路的结构示意图;
[0025] 图1f是本申请实施例提供的一种内存管理单元的结构示意图;
[0026] 图2是本申请实施例提供的一种数据传输方法的流程示意图;
[0027] 图3是本申请实施例提供的一种组合处理装置的的结构示意图;
[0028] 图4是本申请实施例提供的一种板卡的结构示意图。

具体实施方式

[0029] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0030] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0031] 还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0032] 还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0033] 如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0034] 在本申请中,计算装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminal device)等,计算装置也可以包括系统级芯片(System on Chip,SOC)。
[0035] 在本申请中,计算载体可以是中央处理器(CentralProcessing Unit,CPU)、图像处理器(graphics processing unit,GPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程逻辑阵列(Field-Programmable Gate Array,FPGA)、粗粒度可重构阵列(Coarse-Grained Re-configurable Array,CGRA)、数字信号处理(Digital Signal Processing,DSP)器等。
[0036] 本申请实施例提出了一种数据传输方法及相关产品,可提高不同计算载体之间的数据传输效率,便于提高神经网络运算效率。以下结合具体实施例,并参照附图,对本申请进一步详细说明。
[0037] 请参照图1,图1是本申请实施例提供的一种计算装置的结构示意图。如图1所示,上述计算装置100包括第一计算载体101、第二计算载体102、第N计算载体103等多个计算载体。其中,N为大于2的正整数,该多个计算载体可包括上述的CPU、GPU、ASIC、FPGA、CGRA或DSP中的至少两种,也可以上述的两种同类型的载体,例如,2个CPU、2个GPU、1个ASIC或1个FPGA。
[0038] 在一种可能的实现方式中,每一计算载体可包括至少一个用于神经网络运算的计算单元,例如:处理芯片等。对于计算单元的具体结构不作限定,请参阅图1a,图1a为一种计算单元的结构示意图。如图1a所示,该计算单元包括:主处理电路、基本处理电路和分支处理电路。具体的,主处理电路与分支处理电路连接,分支处理电路连接至少一个基本处理电路。
[0039] 该分支处理电路,用于收发主处理电路或基本处理电路的数据。
[0040] 参阅图1b,图1b为主处理电路的一种结构示意图,如图1b所示,主处理电路可以包括寄存器和/或片上缓存电路,该主处理电路还可以包括:控制电路、向量运算器电路、ALU(arithmetic and logic unit,算数逻辑电路)电路、累加器电路、DMA(Direct MemoryAccess,直接内存存取)电路等电路,当然在实际应用中,上述主处理电路还可以添加,转换电路(例如矩阵转置电路)、数据重排电路或激活电路等等其他的电路。
[0041] 主处理电路还包括数据发送电路、数据接收电路或接口,该数据发送电路可以集成数据分发电路以及数据广播电路,当然在实际应用中,数据分发电路以及数据广播电路也可以分别设置;在实际应用中上述数据发送电路以及数据接收电路也可以集成在一起形成数据收发电路。对于广播数据,即需要发送给每个基础处理电路的数据。对于分发数据,即需要有选择的发送给部分基础处理电路的数据,具体的选择方式可以由主处理电路依据负载以及计算方式进行具体的确定。对于广播发送方式,即将广播数据以广播形式发送至每个基础处理电路。(在实际应用中,通过一次广播的方式将广播数据发送至每个基础处理电路,也可以通过多次广播的方式将广播数据发送至每个基础处理电路,本申请具体实施方式并不限制上述广播的次数),对于分发发送方式,即将分发数据有选择的发送给部分基础处理电路。
[0042] 在实现分发数据时,主处理电路的控制电路向部分或者全部基础处理电路传输数据(该数据可以相同,也可以不同,具体的,如果采用分发的方式发送数据,各个接收数据的基础处理电路收到的数据可以不同,当然也可以有部分基础处理电路收到的数据相同;
[0043] 具体地,广播数据时,主处理电路的控制电路向部分或者全部基础处理电路传输数据,各个接收数据的基础处理电路可以收到相同的数据,即广播数据可以包括所有基础处理电路均需要接收到的数据。分发数据可以包括:部分基础处理电路需要接收到的数据。主处理电路可以通过一次或多次广播将该广播数据发送给所有分支处理电路,分支处理电路该广播数据转发给所有的基础处理电路。
[0044] 可选的,上述主处理电路的向量运算器电路可以执行向量运算,包括但不限于:两个向量加减乘除,向量与常数加、减、乘、除运算,或者对向量中的每个元素执行任意运算。其中,连续的运算具体可以为,向量与常数加、减、乘、除运算、激活运算、累加运算等等。
[0045] 每个基础处理电路可以包括基础寄存器和/或基础片上缓存电路;每个基础处理电路还可以包括:内积运算器电路、向量运算器电路、累加器电路等中一个或任意组合。上述内积运算器电路、向量运算器电路、累加器电路都可以是集成电路,上述内积运算器电路、向量运算器电路、累加器电路也可以为单独设置的电路。
[0046] 分支处理电路和基础电路的连接结构可以是任意的,不局限在图1b的H型结构。可选的,主处理电路到基础电路是广播或分发的结构,基础电路到主处理电路是收集(gather)的结构。广播,分发和收集的定义如下:
[0047] 所述主处理电路到基础电路的数据传递方式可以包括:
[0048] 主处理电路与多个分支处理电路分别相连,每个分支处理电路再与多个基础电路分别相连。
[0049] 主处理电路与一个分支处理电路相连,该分支处理电路再连接一个分支处理电路,依次类推,串联多个分支处理电路,然后,每个分支处理电路再与多个基础电路分别相连。
[0050] 主处理电路与多个分支处理电路分别相连,每个分支处理电路再串联多个基础电路。
[0051] 主处理电路与一个分支处理电路相连,该分支处理电路再连接一个分支处理电路,依次类推,串联多个分支处理电路,然后,每个分支处理电路再串联多个基础电路。
[0052] 分发数据时,主处理电路向部分或者全部基础电路传输数据,各个接收数据的基础电路收到的数据可以不同;
[0053] 广播数据时,主处理电路向部分或者全部基础电路传输数据,各个接收数据的基础电路收到相同的数据。
[0054] 收集数据时,部分或全部基础电路向主处理电路传输数据。需要说明的,如图1a所示的计算单元可以是一个单独的物理芯片,当然在实际应用中,该计算单元也可以集成在其他的芯片内(例如CPU,GPU),本申请具体实施方式并不限制上述芯片装置的物理表现形式。
[0055] 参阅图1c,图1c为一种计算单元的数据分发示意图,如图1c的箭头所示,该箭头为数据的分发方向,如图1c所示,主处理电路接收到外部数据以后,将外部数据拆分以后,分发至多个分支处理电路,分支处理电路将拆分数据发送至基本处理电路。
[0056] 参阅图1d,图1d为一种计算单元的数据回传示意图,如图1d的箭头所示,该箭头为数据的回传方向,如图1d所示,基本处理电路将数据(例如内积计算结果)回传给分支处理电路,分支处理电路在回传至主处理电路。
[0057] 对于输入数据,具体的可以为向量、矩阵、多维(三维或四维及以上)数据,对于输入数据的一个具体的值,可以称为该输入数据的一个元素。
[0058] 本披露实施例还提供一种如图1a所示的计算单元的计算方法,该计算方法应用与神经网络计算中,具体的,该计算单元可以用于对多层神经网络中一层或多层的输入数据与权值数据执行运算。
[0059] 具体的,上述所述计算单元用于对训练的多层神经网络中一层或多层的输入数据与权值数据执行运算;
[0060] 或所述计算单元用于对正向运算的多层神经网络中一层或多层的输入数据与权值数据执行运算。
[0061] 上述运算包括但不限于:卷积运算、矩阵乘矩阵运算、矩阵乘向量运算、偏置运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
[0062] GEMM计算是指:BLAS库中的矩阵-矩阵乘法的运算。该运算的通常表示形式为:C=alpha*op(S)*op(P)+beta*C,其中,S和P为输入的两个矩阵,C为输出矩阵,alpha和beta为标量,op代表对矩阵S或P的某种操作,此外,还会有一些辅助的整数作为参数来说明矩阵的S和P的宽高;
[0063] GEMV计算是指:BLAS库中的矩阵-向量乘法的运算。该运算的通常表示形式为:C=alpha*op(S)*P+beta*C,其中,S为输入矩阵,P为输入的向量,C为输出向量,alpha和beta为标量,op代表对矩阵S的某种操作。
[0064] 本申请对于计算装置中计算载体之间的连接关系不作限定,可以是同构或异构的计算载体,对于计算载体中计算单元之间的连接关系也不作限定,通过上述异构的计算载体或计算单元执行并行任务,可提高运算效率。
[0065] 在如图1中,每一计算载体还至少包括一个片上缓存电路和一个片外缓存电路,例如:第一计算载体101包括第一片上缓存电路1011和第一片外缓存电路1012,第二计算载体102包括第二片上缓存电路1021和第二片外缓存电路1022,第N计算载体103包括第N片上缓存电路1031和第N片外缓存电路1032。
[0066] 该片上缓存电路可以片上存储器(On-chip Memory),具体包括但不仅限于双倍数据速率存储器(Double Data Rate Memory,DDRM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、三倍动态随机存取存储器(three Data DRAM)、三倍静态随机存取存储器(three Data Static Random-Access Memory,3D SRAM)等形式;该片外缓存电路可以是片外存储器(Off-chip Memory),具体包括但不仅限于Shared Memory,Cache等。其中Cache可以包括多层结构,如N层Cache结构,包括L1Cache、L2Cache、……、LN Cache。
[0067] 在如图1中,计算装置100还包括与各个片上缓存电路连接的片上存储数据通路控制电路110,以及与片上存储数据通路控制电路110连接的片上存储数据通路121,其中:所述片上存储数据通路控制电路110用于接收所述多个计算载体中的第一计算载体101的第一片上缓存电路1011发送的数据传输指令;对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址;所述片上缓存电路数据通路121用于根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。
[0068] 其中,第一计算载体101为多个计算载体中的任意一个计算载体,数据传输指令为二进制文件。在本申请中,对数据传输指令进行译码以得到发送数据地址和接收数据地址,还可得到数据容量、数据标识等用于确定目标数据的参数。该发送数据地址为第一片上缓存电路中存储目标数据的地址,接收数据地址为多个计算载体中的第二计算载体102的第二片上缓存电路1021中的一个地址,也就是说,该数据传输指令指示片上存储数据通路控制单元110将第一片上缓存电路1011中缓存的目标数据传输至第二片上缓存电路1021,即确定第一计算载体101预进行数据传输的计算载体为第二计算载体1021。
[0069] 可以理解,当片上存储数据通路控制电路110接收到第一片上缓存电路1011发送的数据传输指令时,对该数据传输指令进行译码以得到发送数据地址和接收数据地址,如此,通过片上缓存电路数据通路121获取发送数据地址对应的目标数据,并将该目标数据传输至接收数据地址,则第二片上缓存电路1021缓存该目标数据,从而完成了两个计算载体的片上缓存电路之间的数据传输。
[0070] 对于片上存储数据通路控制电路110而言,可同时接收到多个数据传输指令,因此,需要确定各个数据传输指令之间的传输顺序。本申请对于如何确定执行顺序不做限定,可获取各个所述数据传输指令对应的优先级,以得到多个优先级;根据所述多个优先级确定所述多个数据传输指令中每一数据传输指令的执行顺序。
[0071] 其中,优先级可通过目标数据的数量容量、目标数据的优先级,或者第一片上缓存电路的优先级、剩余内存大小等多个维度进行获取。
[0072] 可以理解,通过片上存储数据通路控制电路110确定各个数据传输指令之间的执行顺序,并按照该执行顺序控制片上缓存电路数据通路121进行数据传输,可提高传输的稳定性
[0073] 在一种可能的实施例中,如图1e所示,所述片上存储数据通路控制电路110包括指令缓存单元1101、与所述指令缓存单元1101连接的指令译码单元1102以及与所述指令缓存单元1101和所述指令译码单元1102连接的内存管理单元1103,其中:
[0074] 所述指令缓存单元1101用于缓存所述数据传输指令;
[0075] 所述指令译码单元1102用于对所述数据传输指令进行译码,以得到所述发送数据地址和所述接收数据地址;
[0076] 所述内存管理单元1103用于管理所述数据传输指令。
[0077] 可以理解,将片上存储数据通路控制电路110进一步划分,以得到指令缓存单元1101、指令译码单元1102和内存管理单元1103,分别执行对应的步骤,即通过内存管理单元
1103管理数据传输指令,即执行该数据传输指令时直接从指令缓存单元1101中调用,并通过指令译码单元1102翻译该数据传输指令以完成数据传输,如此,提高了执行效率和执行的稳定性。
[0078] 进一步的,如图1f所示,所述内存管理单元1103包括地址映射模11031、请求仲裁模块11032和一致性控制模块11033,其中:
[0079] 所述地址映射模块11031用于确定所述接收数据地址对应的所述第二片上缓存电路;
[0080] 所述请求仲裁模块11032用于若所述指令缓存单元包括多个所述数据传输指令,则分配所述多个数据传输指令中每一数据传输指令的执行顺序;
[0081] 所述一致性控制模块11033用于保证数据传输一致性。
[0082] 可以理解,将内存管理单元1103进一步划分,以得到地址映射模块11031、请求仲裁模块11032和一致性控制模块11033,分别执行对应的步骤,即通过地址映射模块11031确定目标数据的待缓存位置,通过请求仲裁模块11032确定各个数据传输指令的执行顺序,按照该传输顺序控制片上缓存电路数据通路121进行数据传输,可提高传输的稳定性。且通过一致性控制模块11033保证数据传输一致性,提高了传输的稳定性和执行的安全性。
[0083] 在一个实施例中,如图1所示,计算装置100还包括与各个片外缓存电路连接的快速外部设备互连总线(peripheral component interconnect express,PCIE)数据通路122,用于实现所述多个计算载体中任意两个计算载体的片外缓存电路之间的数据传输。
[0084] 可以看出,各个计算载体之间的片外存储数据可直接通过PCIE数据通路122进行数据交互,即片外缓存数据通过专门的片外存储数据通路122进行数据交互,以支持更大规模的机器学习的运算。且还可通过PCIE接口与各种类型的服务器相连接,提高了传输效率。
[0085] 请参考图2,图2为本申请提出的一种数据传输方法的流程示意图。该数据传输方法应用于如图1所示的计算装置,即该计算装置包括多个计算载体、与所述多个计算载体中每一计算载体的片上缓存电路连接的片上存储数据通路控制电路、以及与所述片上存储数据通路控制电路连接的片上存储数据通路。具体的,如图2所示:
[0086] S201:通过片上存储数据通路控制电路接收多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令。
[0087] S202:通过所述片上存储数据通路控制电路对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址。
[0088] S203:通过片上缓存电路数据通路根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。
[0089] 其中,所述接收数据地址为所述多个计算载体中的第二计算载体的第二片上缓存电路中的一个地址。
[0090] 可以理解,通过片上存储数据通路控制电路接收多个计算载体中的第一计算载体的第一片上缓存电路发送的数据传输指令,再通过所述片上存储数据通路控制电路对所述数据传输指令进行译码以得到发送数据地址和接收数据地址,通过片上缓存电路数据通路根据所述发送数据地址获取目标数据,并将所述目标数据传输至所述接收数据地址。如此,可提高不同计算载体之间的数据传输效率效率,便于提高神经网络运算效率。
[0091] 在一种可能的实施例中,所述片上存储数据通路控制电路包括指令缓存单元、与所述指令缓存单元连接的指令译码单元及与所述指令缓存单元和所述指令译码单元连接的内存管理单元,所述通过所述片上存储数据通路控制电路对所述数据传输指令进行译码,以得到发送数据地址和接收数据地址,包括:
[0092] 通过所述指令译码单元对所述数据传输指令进行译码,以得到所述发送数据地址和所述接收数据地址;
[0093] 所述方法还包括:
[0094] 通过所述指令缓存单元缓存所述数据传输指令;
[0095] 通过所述内存管理单元管理所述数据传输指令。
[0096] 在一种可能的实施例中,所述内存管理单元包括地址映射模块、请求仲裁模块和一致性控制模块,所述通过所述内存管理单元管理所述数据传输指令,包括:
[0097] 通过所述地址映射模块确定所述接收数据地址对应的所述第二片上缓存电路;
[0098] 若所述指令缓存单元包括多个所述数据传输指令,则通过所述请求仲裁模块确定所述多个数据传输指令中每一数据传输指令的执行顺序;
[0099] 通过所述一致性控制模块保证数据传输一致性。
[0100] 在一种可能的实施例中,所述计算装置还包括快速外部设备互连总线PCIE数据通路,所述方法还包括:
[0101] 通过所述PCIE数据通路实现所述多个计算载体中任意两个计算载体的片外缓存电路之间的数据传输。
[0102] 在一种可能的实施例中,所述多个计算载体包括中央处理器CPU、图像处理器GPU、专用集成电路ASIC、现场可编程逻辑门阵列FPGA、粗粒度可重构阵列CGRA或数字信号处理器DSP中的至少两种。
[0103] 在一种可能的实施例中,所述计算载体包括至少一个计算单元,所述计算单元包括:主处理电路、分支处理电路与基础处理电路,所述主处理电路与所述分支处理电路连接,所述基础处理电路与所述分支处理电路连接,所述方法还包括:
[0104] 通过所述主处理电路获取所述计算单元以外的数据,并将该数据划分成广播数据和分发数据;
[0105] 通过所述主处理电路将所述广播数据以广播方式发送给所有分支处理电路,将所述分发数据选择性的分发给不同的分支处理电路;
[0106] 通过所述分支处理电路在所述主处理电路与所述基础处理电路之间转发数据;
[0107] 通过所述基础处理电路接收所述分支处理电路转发的广播数据和分发数据,并对该广播数据和分发数据执行运算得到运算结果,将该运算结果发送至所述分支处理电路;
[0108] 通过所述主处理电路接收分支处理电路转发的所述基础处理电路的运算结果,将该运算结果进行处理得到计算结果。
[0109] 在一种可能的实施例中,所述通过所述主处理电路将所述广播数据以广播方式发送给所有分支处理电路,包括:
[0110] 通过所述主处理电路将所述广播数据以一次广播或多次广播发送给所有分支处理电路;
[0111] 所述通过所述基础处理电路对该广播数据和分发数据执行运算得到运算结果,包括:
[0112] 通过所述基础处理电路对该广播数据和分发数据执行内积运算、乘积运算或向量运算得到运算结果。
[0113] 在本发明的一个实施例中提供一种计算装置,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行所述数据传输方法中所描述的实现方式。
[0114] 在本发明的另一实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行所述数据传输方法中所描述的实现方式。
[0115] 本申请还揭露了一个组合处理装置,其包括上述的计算装置,通用互联接口,和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。图3为组合处理装置的结构示意图。
[0116] 其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
[0117] 通用互联接口,用于在所述机器学习运算装置与其他处理装置间传输数据和控制指令。该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
[0118] 可选的,如图3所示的组合处理装置还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其他处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
[0119] 该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标键盘,网卡,wifi接口。
[0120] 在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
[0121] 在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
[0122] 在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图4,图4提供了一种板卡,上述板卡除了包括上述芯片以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件、接口装置和控制器件;
[0123] 所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR SDRAM)。
[0124] DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
[0125] 在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
[0126] 所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
[0127] 所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
[0128] 在一些实施例里,申请了一种电子设备,其包括了上述板卡。
[0129] 电子设备包括数据处理装置、机器人、电脑、打印机扫描仪平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、端服务器、相机、摄像机、投影仪、手表机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
[0130] 所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调微波炉、箱、电饭煲、加湿器洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
[0131] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0132] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0133] 在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0134] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0135] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0136] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0137] 需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
[0138] 以上的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上仅为本申请的具体实施例而已,并不用于限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈