数据预处理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:23470515 阅读:13 留言:0更新日期:2020-03-06 12:39
本申请涉及一种数据预处理方法、装置、计算机设备和存储介质,通过将目标运算操作对应的目标输出数据存储在靠近处理器的第一存储器上,通过减少目标输出数据的读取次数,可以减少运算过程中的I/O读取操作的占用时间,从而可以提高处理器的速度及效率。

Data preprocessing method, device, computer equipment and storage medium

【技术实现步骤摘要】
数据预处理方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种数据预处理方法、装置、计算机设备和存储介质。
技术介绍
随着数据量的爆炸式增长,机器学习等人工智能算法得到了越来越多的应用。机器是通过分析大量的数据来进行学习,因此,机器学习等大数据运算对存储器的访存量等需求急剧增大。为了满足存储器的访存量等需求,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器的体系结构。其中,高速缓冲存储器(Cache)、主存储器和外存储器的存取速度依次减小,存储容量依次增大。但由于计算机设备中的I/O的带宽往往不能满足超大数据量的需求,因此在处理器执行机器学习运算的过程中,高速缓冲存储器与主存储器之间,和/或主存储器与外存储器之间需要频繁地进行数据读取操作。例如,在处理器执行运算的过程中,处理器首先需要从外存储器中读取输入数据,在运算结束后,处理器需要将运算结果存储至外存储器中,之后再继续从外存储器中读取下一个运算所需的输入数据。由于I/O带宽的限制,因此在一个运算过程中,至少涉及两次I/O读写操作,频繁的I/O读写操作占用时间长,导致处理器的处理效率偏低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够数据预处理方法、装置、计算机设备和存储介质,能够减少运算过程中的I/O读写操作次数,提高处理器的处理效率。一种数据预处理方法,所述方法包括如下步骤:获取第一存储器的可用存储容量及目标运算操作;根据目标运算操作及第一存储器的可用存储容量,确定所述目标运算操作对应的目标输入数据;其中,所述目标输入数据为所述目标运算操作对应的全部输入数据的一部分或全部;根据所述目标运算操作和所述目标输入数据,确定所述目标运算操作的目标输出数据;若所述目标运算操作的目标输出数据为所述目标运算操作之后的其他运算操作的输入数据时,则将所述目标运算操作的目标输出数据存储在所述第一存储器上,其中,所述第一存储器靠近处理器设置。一种数据预处理装置,所述装置包括:获取模块,用于获取第一存储器的可用存储容量及目标运算操作;输入确定模块,用于根据所述目标运算操作及所述第一存储器的可用存储容量,确定所述目标运算操作对应的目标输入数据;输出确定模块,用于根据所述目标运算操作和所述目标输入数据,确定所述目标运算操作的目标输出数据;存储分配模块,用于在所述目标运算操作的目标输出数据为所述目标运算操作之后的其他运算操作的输入数据时,则将所述目标运算操作的目标输出数据存储在所述第一存储器上,其中,所述第一存储器靠近处理器设置。一种计算机设备,包括第一存储器、第二存储器和处理器,所述第一存储器靠近所述处理器设置,所述第一存储器和所述第二存储器能够进行数据读写;所述第二存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。上述数据预处理方法、装置、计算机设备和存储介质,当该目标运算操作的目标输出数据为其之后的其他运算操作的输入数据时,可以将目标运算操作对应的目标输出数据存储在靠近处理器的第一存储器上,通过减少目标输出数据的读取次数,可以减少运算过程中的I/O读取操作的占用时间,从而可以提高处理器的速度及效率。附图说明图1为一个实施例中计算机设备的结构示意图;图2为一个实施例的计算机设备的处理器的结构示意图;图3为一个实施例的计算机设备的处理器的结构示意图;图4为一个实施例的计算机设备的处理器的结构示意图;图5为一个实施例中数据预处理方法的流程示意图;图6为图5中确定目标输入数据的步骤一实施例的流程示意图;图7为图5所示的数据预处理方法中确定目标运算操作数量一实施例的流程示意图;图8为一个实施例中的待处理运算的示意图;图9为另一个实施例中的待处理运算的示意图;图10为另一实施例中数据预处理方法的流程示意图;图11为图10中确定目标输入数据的步骤一实施例的流程示意图;图12为一实施例的数据预处理装置的结构框图;图13为一实施例的数据预处理装置的结构框图;图14为另一实施例的数据预处理装置的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。如图1所示,本申请实施例的计算机设备可以包括处理器100、第一存储器200和第二存储器300。其中,第一存储器200可以设置在处理器100的附近,处理器100可以直接与第一存储器200进行数据交换,即处理器100可以直接从第一存储器200中读取输入数据,并将根据上述输入数据获得的输出数据写入该第一存储器200。该第一存储器200可以直接与该第二存储器300进行数据交换,即该第一存储器200可以从第二存储器300读取数据,也可以向该第二存储写入数据。进一步地,该第一存储器200的存取速度大于第二存储器300的存取速度,该第一存储器200的存储容量小于第二存储器300的存储容量。可选地,该计算机设备可以是手机或平板电脑等移动终端,或台式电脑、板卡或云端服务器等终端。当然,该计算机设备还可以是云端服务器和手机或电脑等终端形成的计算机系统。该计算机设备可以应用于机器人、打印机、扫描仪、行车记录仪、导航仪、相机、摄像机、投影仪、手表、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。其中,交通工具可以包括飞机、轮船和/或车辆;家用电器可以包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;医疗设备可以包括核磁共振仪、B超仪和/或心电图仪等等。可选地,该第一存储器200可以是内存储器,该第二存储器300可以是外存储器,如硬盘等等。例如,该如第一存储器200可以为RAM(Random-AccessMemory,随机存取第一存储器200)等,第二存储器300可以为DDR(DoubleDataRate,双倍速率同步动态随机第一存储器200)等等。可选地,该第一存储器200可以与该处理器100集成为一体,即该第一存储器200为片上存储器,如高速缓冲存储器(Cache),该第二存储器300可以是内存储器等片外存储器,如RAM等等。可选地,第二存储器300可以用于存储计算机设备执行特定运算所需的数据及计算机程序等等。进一步地,该数据可以是机器学习数据,如神经网络数据等等。由于第一存储器200的存储容量较小,因此,当处理器100需要执行特定运算时,可以将第二存储器300中存储的完成该特定运算所需的数据写入第一存储器200,处理器100可以从第一存储器200读取该特定运算所需的输入数据进行运算,并将运算结果写入第一存储器200。在本文档来自技高网...

【技术保护点】
1.一种数据预处理方法,其特征在于,所述方法包括如下步骤:/n获取第一存储器的可用存储容量及目标运算操作;/n根据所述目标运算操作及所述第一存储器的可用存储容量,确定所述目标运算操作对应的目标输入数据;/n根据所述目标运算操作和所述目标输入数据,确定所述目标运算操作的目标输出数据;/n若所述目标运算操作的目标输出数据为所述目标运算操作之后的其他运算操作的输入数据时,则将所述目标运算操作的目标输出数据存储在所述第一存储器上,其中,所述第一存储器靠近处理器设置。/n

【技术特征摘要】
1.一种数据预处理方法,其特征在于,所述方法包括如下步骤:
获取第一存储器的可用存储容量及目标运算操作;
根据所述目标运算操作及所述第一存储器的可用存储容量,确定所述目标运算操作对应的目标输入数据;
根据所述目标运算操作和所述目标输入数据,确定所述目标运算操作的目标输出数据;
若所述目标运算操作的目标输出数据为所述目标运算操作之后的其他运算操作的输入数据时,则将所述目标运算操作的目标输出数据存储在所述第一存储器上,其中,所述第一存储器靠近处理器设置。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括如下步骤:
若所述目标运算操作的目标输出数据为所述目标运算操作之后的其他运算操作的输入数据时,则将所述目标运算操作的目标输出数据存储在所述第一存储器上和第二存储器上;
其中,所述第二存储器远离所述处理器设置,所述第一存储器的存储容量小于所述第二存储器的存储容量。


3.根据权利要求1所述的方法,其特征在于,所述目标运算操作包含一个以上的运算操作,每个所述运算操作对应有子目标输入数据;所述的根据目标运算操作及第一存储器的可用存储容量,确定所述目标运算操作对应的目标输入数据的步骤,还包括:
根据所述第一存储器的可用存储容量及所述待处理运算中各个运算操作的融合属性,确定能够融合的运算操作的数量,获得融合数量阈值;
将选定数量的所述能够融合的运算操作的组合作为所述目标运算操作,所述选定数量小于或等于所述融合数量阈值;
将所述选定数量的各个运算操作对应的子目标输入数据作为所述目标运算操作对应的目标输入数据。


4.根据权利要求3所述的方法,其特征在于,所述待处理运算为包含多个运算层的神经网络运算,每个所述运算层表示一个所述运算操作;所述方法还包括如下步骤:
根据所述神经网络运算的各个运算层的连接关系,确定各个所述运算操作的融合属性。


5.根据权利要求3所述的方法,其特征在于,所述方法还包括如下步骤:
若所述目标运算操作中当前运算操作输出的中间计算结果需作为所述目标运算操作中其他运算操作的输入数据,或所述当前运算操作输出的中间计算结果需作为其他目标运算操作的输入数据时,则将所述当前运算操作输出的中间计算结果存储于第一存储器上,或将所述当前运算操作输出的中间计算结果存储于第一存储器和第二存储器上。


6.根据权利要求1-5任一项所述的方法,其特征在于,所述目标运算操作对应的全部输入数据包括多个输入数据块,所述目标运算操作对应的目标输入数据的数量为一个以上,每个所述目标输入数据包含一个以上的所述输入数据块。


7.根据权利要求6所述的方法,其特征在于,所述目标运算操作包括一个以上的子目标运算操作,每个所述子目标运算操作对应一个所述目标输入数据;所述方法还包括如下步骤:
分别根据各个所述子目标运算操作的目标输入数据容量及目标输出数据的数据容量,确定各个所述子目标运算操作所需的目标存储容量;
根据所述第一存储器的可用存储容量以及当前子目标运算操作所需的目标存储容量,确定所述第一存储器的剩余存储容量;
根据所述第一存储器的剩余存储容量,以及所述当前子目标运算操作之外的其他子目标运算操作所需的目标存储容量,确定所述子目标运算操作的数量。


8.根据权利要求7所述的方法,其特征在于,所述方法还包括如下步骤:
若一个以上的所述子目标运算操作的目标输入数据存在交集时,则将所述一个以上的子目标运算操作的目标输入数据之间的交集存储在所述第一存储器上。


9.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括如下步骤:
若所述目标运算操作之后的其他运算操作与所述目标运算操作之间的运算间隔在预设范围内时,则将所述目标输出数据存储在所述第一存储器上。


10.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括如下步骤:
根据所述目标运算操作的目标输入数据的数据容量,确定所述目标输入数据在所述第一存储器上的存储地址;
根据所述目标运算操作的目标输出数据的数据容量,确定所述目标输出数据在所述第一存储器上的存储地址。


11.根据权利要求10所述的方法,其特征在于,所述方法还包括如下步骤:
若所述目标运算操作之后的其他运算操作均不需使用所述目标运算操作的目标输入数据时,则在完成所述目标运算操作之后,...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

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

1