技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于GPU片上内存的数据处理方法、装置及系统与流程  >  正文

基于GPU片上内存的数据处理方法、装置及系统与流程

  • 国知局
  • 2024-08-05 11:50:01

本说明书实施例通常涉及数据处理,尤其涉及基于gpu片上内存的数据处理方法、装置及系统。

背景技术:

1、传统cpu硬件设备已经难以满足机器学习任务或深度学习任务的任务计算需求,尤其难以满足以chatgpt为代表的生成式大模型的模型计算需求。gpu硬件设备因其高速并行处理能力和更强的访存带宽等优势成为模型推理的主流加速硬件。然而在大模型推理阶段,特别是在用于模型推理的模型特征数据的批数据较小的情况下,模型推理的性能瓶颈不在于模型计算本身,而在于用于模型计算的模型参数数据(模型权重矩阵)从gpu全局内存加载到gpu计算单元的数据加载时间。

技术实现思路

1、本说明书实施例提供基于gpu片上内存的数据处理方案。利用该数据处理方案,通过在gpu设备上启用第一和第二gpu线程,并且在经由第一gpu线程读取gpu计算任务所需的可写数据期间,经由第二gpu线程将gpu全局内存中存储的用于gpu计算任务的只读数据在执行gpu计算任务之前提前预读取到gpu片上内存,由此减少gpu计算单元执行gpu计算任务时的数据加载时间,进而提升数据处理效率。

2、根据本说明书的实施例的一个方面,提供一种基于gpu片上内存的数据处理方法,包括:在第一gpu线程上发起针对第一数据的数据获取操作,所述第一数据包括gpu计算任务所需可写数据;在所述第一gpu线程执行所述数据获取操作期间,在第二gpu线程上发起将第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程,所述第二数据包括gpu全局内存中存储的所述gpu计算任务所需只读数据;以及响应于所述第一数据的数据获取过程和所述第二数据的数据预读取过程完成,在所述第二gpu线程上基于所述第一数据和所述第二数据执行所述gpu计算任务。

3、可选地,在上述方面的一个示例中,所述数据处理方法还包括:根据预读取配置文件确定是否发起将所述第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程。

4、可选地,在上述方面的一个示例中,所述gpu片上内存包括l2 cache,在第二gpu线程上发起将第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程包括:在所述第二gpu线程上发起将所述第二数据从所述gpu全局内存预读取到所述l2 cache的第一数据预读取过程。

5、可选地,在上述方面的一个示例中,所述gpu片上内存还包括gpu共享内存和gpu寄存器,在第二gpu线程上发起将第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程还包括:在所述第一数据预读取过程所预读取的数据是所述第二数据的部分数据时,在所述第二gpu线程上发起将所述剩余数据从所述gpu全局内存预读取到所述gpu共享内存和/或所述gpu寄存器的第二数据预读取过程。

6、可选地,在上述方面的一个示例中,所述gpu片上内存还包括gpu共享内存和gpu寄存器,在第二gpu线程上发起将第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程还包括:在不需要执行所述第一数据预读取过程时,在所述第二gpu线程上发起将所述第二数据从所述gpu全局内存预读取到所述gpu共享内存和/或所述gpu寄存器的第三数据预读取过程。

7、可选地,在上述方面的一个示例中,所述l2 cache所存储的数据以字节块的形式缓存,并且每个字节块具有驱逐优先级。

8、可选地,在上述方面的一个示例中,所述驱逐优先级包括最新驱逐、正常驱逐和最后驱逐,所述gpu计算优化方法还包括:在将所述第二数据预读取到所述l2 cache后,将缓存所述第二数据的字节块的驱逐优先级设置为最后驱逐。

9、可选地,在上述方面的一个示例中,所述数据处理方法还包括:在将所述第二数据预读取到所述l2 cache时,如果所述l2 cache的空闲缓存空间不足以缓存所述第二数据,则按照最新驱逐、正常驱逐和最后驱逐的驱逐优先级驱逐所述l2 cache中缓存的字节块,直到所述l2 cache的空闲缓存空间足以缓存所预读取的第二数据。

10、可选地,在上述方面的一个示例中,所述gpu计算任务包括模型推理过程的模型计算任务,所述第一数据包括模型特征数据,以及所述第二数据包括模型参数数据。

11、可选地,在上述方面的一个示例中,所述gpu计算被分配gpu计算锁,所述数据处理方法还包括:在所述第一数据的数据获取期间,在所述第一gpu线程上占用所述gpu计算锁,并且在完成所述第一数据的数据获取后,在所述第一gpu线程上释放所述gpu计算锁。响应于所述第一数据的数据获取过程和所述第二数据的数据预读取过程完成,在所述第二gpu线程上基于所述第一数据和所述第二数据执行所述gpu计算包括:响应于所述第一数据的数据获取过程和所述第二数据的数据预读取过程完成,在所述第二gpu线程上占用所述gpu计算锁,并且基于所述第一数据和所述第二数据执行所述gpu计算。

12、可选地,在上述方面的一个示例中,所述gpu计算锁通过为所述gpu全局内存分配易变整数空间实现。

13、根据本说明书的实施例的另一方面,提供一种基于gpu片上内存的数据处理方法,包括:经由cpu设备向gpu设备下发gpu计算任务,并且创建用于获取第一数据的第一gpu线程以及用于预读取第二数据和执行gpu计算的第二gpu线程,所述第一数据包括所述gpu计算任务所需可写数据,以及所述第二数据包括gpu全局内存中存储的所述gpu计算任务所需只读数据;在所述gpu计算任务启动后,经由所述gpu设备在所述第一gpu线程上发起针对所述第一数据的数据获取操作;在所述第一gpu线程执行数据获取操作期间,经由所述gpu设备在所述第二gpu线程上发起将所述第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程;以及响应于所述第一数据的数据获取过程和所述第二数据的数据预读取过程完成,经由所述gpu设备在所述第二gpu线程上基于所述第一数据和所述第二数据执行所述gpu计算任务。

14、根据本说明书的实施例的另一方面,提供一种基于gpu片上内存的数据处理装置,包括:数据获取单元,在第一gpu线程上发起针对第一数据的数据获取操作,所述第一数据包括gpu计算任务所需可写数据;数据预读取单元,在所述第一gpu线程执行数据获取操作期间,在第二gpu线程上发起将第二数据从所述gpu全局内存预读取到所述gpu片上内存的数据预读取过程,所述第二数据包括gpu全局内存中存储的所述gpu计算任务所需只读数据;以及计算任务执行单元,响应于所述第一数据的数据获取过程和所述第二数据的数据预读取过程完成,在所述第二gpu线程上基于所述第一数据和所述第二数据执行所述gpu计算任务。

15、根据本说明书的实施例的另一方面,提供一种基于gpu片上内存的数据处理系统,包括:cpu设备,向gpu设备下发gpu计算任务,并且创建用于获取第一数据的第一gpu线程以及用于预读取第二数据和执行gpu计算的第二gpu线程,所述第一数据包括所述gpu计算任务所需可写数据,以及所述第二数据包括gpu全局内存中存储的所述gpu计算任务所需只读数据;以及gpu设备,包括如上所述的基于gpu片上内存的gpu计算装置。

16、根据本说明书的实施例的另一方面,提供一种基于gpu片上内存的数据处理装置,包括:至少一个处理器;与所述至少一个处理器耦合的存储器;以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的基于gpu片上内存的数据处理方法。

17、根据本说明书的实施例的另一方面,提供一种基于gpu片上内存的数据处理系统,包括:至少一个处理器;与所述至少一个处理器耦合的存储器;以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的基于gpu片上内存的数据处理方法。

18、根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如上所述的基于gpu片上内存的数据处理方法。

19、根据本说明书的实施例的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的基于gpu片上内存的数据处理方法。

本文地址:https://www.jishuxx.com/zhuanli/20240802/259665.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。