一种数据缓存方法、系统和装置与流程
本发明涉及计算机,尤其涉及一种数据缓存方法、系统和装置。
背景技术:
1、在神经网络推理中,层间数据复用效率对系统性能有着重要的作用。现有技术主要采用算子融合与内核融合技术,将连续多个层合并为单一计算任务,使中间数据保留在寄存器、共享内存或llc中,跳过dram(dynamic random access memory,动态随机存取存储器)读写,提升层间数据复用效率。
2、然而,算子融合与内核融合技术可融合的算子组合有限,依赖特定模式匹配,且融合后内核编程复杂度高,难以适配动态或复杂网络结构,通用性与可扩展性不足,限制了其在多样化推理场景中的应用。
技术实现思路
1、有鉴于此,本发明实施例的目的在于提供一种数据缓存方法、系统和装置,可以降低层间数据复用的复杂度,提升系统的通用性与可扩展性。
2、第一方面,本发明实施例提供了一种数据缓存方法,所述方法包括:
3、响应于当前计算任务开始计算,将所述当前计算任务的计算参数搬移至高速缓存中;
4、根据所述计算参数和第一输出结果对所述当前计算任务进行计算,以获取第二输出结果,所述第一输出结果为上一个计算任务的输出结果,所述第一输出结果存储在所述高速缓存中,且占用优先级被设置为第一目标优先级,所述第一目标优先级为使数据不允许被替换的优先级;
5、将所述第二输出结果写入所述高速缓存,并附带所述第二输出结果的占用优先级;
6、响应于所述当前计算任务计算完成,将所述第二输出结果的占用优先级设置为第一目标优先级,将所述第一输出结果的占用优先级调整为第二目标优先级,所述第二目标优先级为使数据允许被替换的优先级。
7、在一些实施例中,所述第一输出结果和/或第二输出结果为矩阵,所述矩阵的元素为数据块。
8、在一些实施例中,所述根据所述计算参数和第一输出结果对所述当前计算任务进行计算,以获取第二输出结果包括:
9、将所述第一输出结果的第一目标行与所述计算参数相乘,以获取所述第二输出结果的第二目标行。
10、在一些实施例中,所述方法还包括:
11、在所述当前计算任务计算完成之前,将计算完成的第一目标行中的数据块的占用优先级设置为所述第二目标优先级。
12、第二方面,本发明实施例提供了一种数据缓存系统,所述系统包括调度模块、数据搬运模块、计算模块和高速缓存,其中:
13、所述调度模块用于响应于上一个计算任务计算完成,将上一个计算任务的第一输出结果的占用优先级被设置为第一目标优先级,所述第一目标优先级为使数据不允许被替换的优先级;
14、所述数据搬运模块用于响应于当前计算任务开始计算,将所述当前计算任务的计算参数搬移至所述高速缓存中;
15、所述计算模块用于根据所述计算参数和第一输出结果对所述当前计算任务进行计算,以获取第二输出结果,将所述第二输出结果写入所述高速缓存,并附带所述第二输出结果的占用优先级;
16、所述调度模块还用于响应于所述当前计算任务计算完成,将所述第二输出结果的占用优先级设置为第一目标优先级,将所述第一输出结果的占用优先级调整为第二目标优先级,所述第二目标优先级为使数据允许被替换的优先级。
17、在一些实施例中,所述第一输出结果和/或第二输出结果为矩阵,所述矩阵的元素为数据块。
18、在一些实施例中,所述计算模块用于将所述第一输出结果的第一目标行与所述计算参数相乘,以获取所述第二输出结果的第二目标行。
19、在一些实施例中,所述计算模块还用于响应于对所述第二目标行计算完成,向所述数据搬运模块发送计算完成指令。
20、在一些实施例中,所述数据搬运模块还用于在所述当前计算任务计算完成之前,响应于接收到计算完成指令,将所述计算完成指令对应的第一目标行中的数据块的占用优先级设置为所述第二目标优先级。
21、第三方面,本发明实施例提供了一种数据缓存装置,所述装置包括:
22、计算参数搬移单元,用于响应于当前计算任务开始计算,将所述当前计算任务的计算参数搬移至高速缓存中;
23、数据计算单元,用于根据所述计算参数和第一输出结果对所述当前计算任务进行计算,以获取第二输出结果,所述第一输出结果为上一个计算任务的输出结果,所述第一输出结果存储在所述高速缓存中,且占用优先级被设置为第一目标优先级,所述第一目标优先级为使数据不允许被替换的优先级;
24、数据写入单元,用于将所述第二输出结果写入所述高速缓存,并附带所述第二输出结果的占用优先级;
25、优先级调整单元,用于响应于所述当前计算任务计算完成,将所述第二输出结果的占用优先级设置为第一目标优先级,将所述第一输出结果的占用优先级调整为第二目标优先级,所述第二目标优先级为使数据允许被替换的优先级。
26、第四方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。
27、第五方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包含计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述第一方面所述的方法。
28、第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。
29、本发明实施例的技术方案通过在上一个计算任务计算完成后,将第一输出结果存储在高速缓存中,且占用优先级设置为使数据不允许被替换的第一目标优先级,在当前计算任务开始计算时,将计算参数搬移至高速缓存中,根据计算参数和第一输出结果对当前计算任务进行计算,将获取到的第二输出结果写入高速缓存,并附带第二输出结果的占用优先级,在当前计算任务计算完成后,将第二输出结果的占用优先级设置为第一目标优先级,将第一输出结果的占用优先级调整为使数据允许被替换的第二目标优先级。由此,通过动态调整高速缓存中的数据的占用优先级,可以降低层间数据复用的复杂度,提升系统的通用性与可扩展性。
1.一种数据缓存方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一输出结果和/或第二输出结果为矩阵,所述矩阵的元素为数据块。
3.根据权利要求2所述的方法,其特征在于,所述根据所述计算参数和第一输出结果对所述当前计算任务进行计算,以获取第二输出结果包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.一种数据缓存系统,其特征在于,所述系统包括调度模块、数据搬运模块、计算模块和高速缓存,其中:
6.根据权利要求5所述的系统,其特征在于,所述第一输出结果和/或第二输出结果为矩阵,所述矩阵的元素为数据块。
7.根据权利要求6所述的系统,其特征在于,所述计算模块用于将所述第一输出结果的第一目标行与所述计算参数相乘,以获取所述第二输出结果的第二目标行。
8.根据权利要求7所述的系统,其特征在于,所述计算模块还用于响应于对所述第二目标行计算完成,向所述数据搬运模块发送计算完成指令。
9.根据权利要求8所述的系统,其特征在于,所述数据搬运模块还用于在所述当前计算任务计算完成之前,响应于接收到计算完成指令,将所述计算完成指令对应的第一目标行中的数据块的占用优先级设置为所述第二目标优先级。
10.一种数据缓存装置,其特征在于,所述装置包括:
11.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-4中任一项所述的方法。
12.一种计算机程序产品,所述计算机程序产品包含计算机程序,其特征在于,当所述计算机程序在计算机上运行时,所述计算机执行上述权利要求1-4中任一项所述的方法。
13.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-4中任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com