数据处理方法、装置、系统及计算机可读存储介质制造方法及图纸

技术编号:31638440 阅读:28 留言:0更新日期:2021-12-29 19:19
本申请实施例公开了一种数据处理方法、装置、系统及计算机可读存储介质。该方法包括:将神经网络的子网络模块部署在芯片上的神经网络处理器中,通过神经网络处理器的计算单元将保存子网络输出数据的内存地址封装为报文,该子网络输出数据为神经网络处理器调用神经网络的子网络模块处理而输出的数据,并将报文发送至RDMA引擎中的待发送队列,由RDMA引擎将内存地址中保存的子网络输出数据发送至神经网络另一子网络模块所在的目标神经网络处理器上,如此,提高了神经网络处理器之间传输数据的效率,可在不增加芯片成本的基础上,实现将一个复杂的神经网络部署到多个神经网络处理器上。器上。器上。

【技术实现步骤摘要】
数据处理方法、装置、系统及计算机可读存储介质


[0001]本申请涉及数据处理
,具体涉及一种数据处理方法、装置、系统及计算机可读存储介质。

技术介绍

[0002]在自动驾驶领域,为了提高自动驾驶的准确性(如障碍物检测的准确性)和精度,往往采用增加神经网络的网络层数(如从ResNet

18到ResNet

200,网络层数从18层增加到200层)的方式,随着感知引擎记录了越来越多的对象,导致了神经网络规模迅速膨胀。另一方面,在未来的发展中,自动驾驶领域中的车辆又需要支持更高级别的ADAS系统(Advanced Driving Assistance System,高级驾驶员辅助系统),而更高级别的ADAS系统需要更大的算力。
[0003]目前有很多的AI处理器被开发出来,以用于自动驾驶领域,如硬件化的神经网络处理器(AI Processing Unit,AIPU),包括NPU(Neural Network Processing Unit or Neural Processing Unit,神经网络处理器)、TPU(Neural Processing Unit,张量处理器)等,这些专用的神经网络处理器往往以资源和空间来换取效率,采用多个计算单元排列成矩阵实现并行处理、采用矩阵分解的方式来简化过滤器的计算等。
[0004]为了支持更大规模的神经网络以及提高更大规模的神经网络的计算效率,一个可行的方法是在单块神经网络处理器,如NPU/TPU上增加权重网络存储空间、增加更多的计算单元。由于各个处理器厂商的解决方案不同,就需要有低、中、高算力的系列芯片同时生产,同时更多权重网络存储空间和更多计算单元增加了成本。
[0005]另一个未来可能会使用的方法是把一个复杂的神经网络分布到多个TPU/NPU上,在不同TPU/NPU之间利用CPU通过软件模块来传递子网络输出数据,CPU的介入严重降低了整体的性能和效率;且多个TPU/NPU中的很多中间计算结果和信息都被丢掉了,会显著降低智能性和舒适性;另外,CPU作为中间人在NPU、GPU和CPU的多个软件模块中传递数据导致端到端反应时间超长。这些原因均导致实现一个复杂的神经网络分布到多个TPU/NPU上存在诸多困难。

技术实现思路

[0006]本申请实施例提供一种数据处理方法、装置、系统及计算机可读存储介质及,可以在不增加芯片成本的情况下,实现将一个复杂的神经网络分布到多个神经网络处理器上,且可提高神经网络处理器与其他神经网络处理器之间传输数据的效率。
[0007]本申请实施例提供了一种数据处理方法,应用在芯片中的神经网络处理器上,所述神经网络处理器上安装有集成远程直接内存访问引擎的硬件,所述神经网络处理器上部署有神经网络的子网络模块,所述神经网络处理器包括多个计算单元和存储器,所述数据处理方法,包括:所述神经网络处理器的计算单元获取用于保存子网络输出数据的内存地址,所述
子网络输出数据是调用所述存储器中的子网络模块进行处理而输出的数据;所述计算单元将所述内存地址封装为预设格式的硬件层的报文,并将所述报文发送至所述远程直接内存访问引擎中的待发送队列,所述预设格式为所述直接内存访问引擎支持的格式;所述远程直接内存访问引擎获取所述待发送队列中的所述报文中的所述内存地址,从所述内存地址中获取所述子网络输出数据,并通过所述子网络模块与部署有所述神经网络的另一子网络模块之间创建的传输通道,将所述子网络输出数据发送至所述另一子网络模块所在的目标神经网络处理器上。
[0008]本申请实施例还提供一种数据处理装置,应用在芯片中的神经网络处理器上,所述神经网络处理器上安装有集成远程直接内存访问引擎的硬件,所述神经网络处理器上部署有神经网络的子网络模块,所述神经网络处理器包括多个计算单元和存储器,所述数据处理装置,包括:第一获取模块,用于通过所述神经网络处理器的计算单元获取用于保存子网络输出数据的内存地址,所述子网络输出数据是调用所述存储器中的子网络模块进行处理而输出的数据;封装模块,用于通过所述计算单元将所述内存地址封装为预设格式的硬件层的报文,并将所述报文发送至所述远程直接内存访问引擎中的待发送队列,所述预设格式为所述直接内存访问引擎支持的格式;第二获取模块,用于通过所述远程直接内存访问引擎获取所述待发送队列中的所述报文中的所述内存地址,从所述内存地址中获取所述子网络输出数据;发送模块,用于通过所述子网络模块与部署有所述神经网络的另一子网络模块之间创建的传输通道,将所述子网络输出数据发送至所述另一子网络模块所在的目标神经网络处理器上。
[0009]本申请实施例还提供一种数据处理系统,包括:包括多个神经网络处理器,神经网络的多个子网络模块被部署于各神经网络处理器中,所述神经网络处理器上安装有集成远程直接内存访问引擎的硬件,所述神经网络处理器包括多个计算单元和存储器,所述存储器中存储有子网络模块,所述神经网络处理器用于执行上述任一项所述的数据处理方法。
[0010]本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的数据处理方法中的步骤。
[0011]本申请实施例还提供一种芯片,所述芯片包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的数据处理方法中的步骤。
[0012]本申请实施例提供的数据处理方法、装置、系统及计算机可读存储介质,将神经网络的子网络模块部署在芯片上的神经网络处理器中,通过神经网络处理器的计算单元将保存子网络输出数据的内存地址封装为报文,该子网络输出数据为神经网络处理器调用神经网络的子网络模块处理而输出的数据,并将报文发送至直接内存访问引擎中的待发送队列,并由直接内存访问引擎将内存地址中保存的子网络输出数据发送至神经网络另一子网络模块所在的目标神经网络处理器上,如此,将部署有神经网络的子网络模块的神经网络
处理器处理得到的子网络输出数据发送至部署有神经网络的另一子网络模块的目标神经网络处理器上,子网络输出数据并没有被丢掉,使得可很好的利用子网络模块处理得到的子网络输出数据进行下一步的处理,提高神经网络处理数据的效率,此外,子网络模块处理得到的子网络输出数据的传输不必经过芯片上的CPU,不必生成传输请求(生成传输请求需要调用芯片上的CPU来进行处理),而直接封装为硬件层的报文,从计算单元发送至直接内存访问引擎中的待发送队列,直接通过硬件传输,如此提高了神经网络处理器之间传输数据的效率。在子网络模块处理得到的子网络输出数据没有丢失,且能高效的在神经网络处理器之间传输子网络输出数据的基础上,不增加芯片成本,即可实现将一个复杂的神经网络部署到多个神经网络处理器上,解决了现有技术的难题。
附图说明
[0013]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用在芯片中的神经网络处理器上,所述神经网络处理器上安装有集成远程直接内存访问引擎的硬件,所述神经网络处理器上部署有神经网络的子网络模块,所述神经网络处理器包括多个计算单元和存储器,所述数据处理方法,包括:所述神经网络处理器的计算单元获取用于保存子网络输出数据的内存地址,所述子网络输出数据是调用所述存储器中的子网络模块进行处理而输出的数据;所述计算单元将所述内存地址封装为预设格式的硬件层的报文,并将所述报文发送至所述远程直接内存访问引擎中的待发送队列,所述预设格式为所述直接内存访问引擎支持的格式;所述远程直接内存访问引擎获取所述待发送队列中的所述报文中的所述内存地址,从所述内存地址中获取所述子网络输出数据,并通过所述子网络模块与部署有所述神经网络的另一子网络模块之间创建的传输通道,将所述子网络输出数据发送至所述另一子网络模块所在的目标神经网络处理器上。2.根据权利要求1所述的数据处理方法,其特征在于,所述计算单元将所述内存地址封装为预设格式的硬件层的报文,并将所述报文发送至所述远程直接内存访问引擎中的待发送队列的步骤,包括:所述计算单元利用预设算子将内存地址封装为预设格式的硬件层的报文,并利用所述预设算子将所述报文发送至所述远程直接内存访问引擎中的待发送队列,其中,所述预设算子是预先封装的原子计算指令集合,所述原子计算指令集合中包括远程直接内存访问原语。3.根据权利要求2所述的数据处理方法,其特征在于,在所述计算单元利用预设算子将内存地址封装为预设格式的硬件层的报文的步骤之前,还包括:在定义所述神经网络的网络结构时,加入预设算子;或者在利用神经网络编译器编译所述神经网络,并将编译后的所述神经网络切片后得到的每个子网络模块中加入预设算子。4.根据权利要求1所述的数据处理方法,其特征在于,所述计算单元将所述内存地址封装为预设格式的硬件层的报文的步骤,包括:所述计算单元触发CPU中断,并将所述内存地址的发送指令发送至用户态协议栈,所述CPU为神经网络处理器内嵌的CPU;基于所述发送指令,利用所述用户态协议栈将所述内存地址直接封装为硬件层的报文。5.根据权利要求1所述的数据处理方法,其特征在于,在所述获取用于保存子网络输出数据的内存地址的步骤之后,还包括:所述计算单元将所述内存地址进行保存;当检测到需要向所述内存地址中写入所述子网络输出数据时,触发将所述内存地址封装为预设格式的硬件层的报文的步骤。6.根据权利要求5所述的数据处理方法,其特征在于,还包括:当所述神经网络处理器接收到所述神经网络的其他子网络模块发送的子网络输出数据后,获取预先分配的保存所接收到的所述子网络输出数据的目标内存地址;

【专利技术属性】
技术研发人员:原嵩张运星迟亮金正雄
申请(专利权)人:湖北芯擎科技有限公司
类型:发明
国别省市:

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

1