技术新讯 > 计算推算,计数设备的制造及其应用技术 > 模型推理方法、装置、计算机设备和存储介质与流程  >  正文

模型推理方法、装置、计算机设备和存储介质与流程

  • 国知局
  • 2024-11-21 12:28:54

本技术涉及数据处理,特别是涉及一种模型推理方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术:

1、随着深度学习技术的发展,深度学习模型的应用越来越广泛,比如深度学习模型可以应用在图像识别场景、自然语言处理场景、数据推送场景等,如何提升深度学习模型推理过程中处理设备的利用率成为亟待解决的问题。

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、基于各矩阵运算组各自对应的运算结果,确定相应网络层的输出数据,基于各网络层的输出数据,确定推理请求对应的推理结果。

30、第四方面,本技术还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

31、响应于推理请求,获取与当前处理设备匹配的运算优化代码,基于推理请求携带的输入数据,确定推理请求对应的推理模型中各网络层的输入特征数据;

32、根据数据分块信息、缓存参考信息和当前处理设备中缓存空间的缓存属性信息,确定中间矩阵分块信息;

33、针对每个网络层,根据中间矩阵分块信息,对相应网络层的输入特征数据和网络参数数据进行切分处理,得到对应的各个第一中间矩阵和各个第二中间矩阵;

34、基于各个第一中间矩阵和各个第二中间矩阵,组合得到各矩阵运算组;将各矩阵运算组依次缓存至缓存空间中,利用运算优化代码,对缓存空间每次缓存的矩阵运算组进行处理,得到各矩阵运算组各自对应的运算结果;

35、基于各矩阵运算组各自对应的运算结果,确定相应网络层的输出数据,基于各网络层的输出数据,确定推理请求对应的推理结果。

36、第五方面,本技术还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

37、响应于推理请求,获取与当前处理设备匹配的运算优化代码,基于推理请求携带的输入数据,确定推理请求对应的推理模型中各网络层的输入特征数据;

38、根据数据分块信息、缓存参考信息和当前处理设备中缓存空间的缓存属性信息,确定中间矩阵分块信息;

39、针对每个网络层,根据中间矩阵分块信息,对相应网络层的输入特征数据和网络参数数据进行切分处理,得到对应的各个第一中间矩阵和各个第二中间矩阵;

40、基于各个第一中间矩阵和各个第二中间矩阵,组合得到各矩阵运算组;将各矩阵运算组依次缓存至缓存空间中,利用运算优化代码,对缓存空间每次缓存的矩阵运算组进行处理,得到各矩阵运算组各自对应的运算结果;

41、基于各矩阵运算组各自对应的运算结果,确定相应网络层的输出数据,基于各网络层的输出数据,确定推理请求对应的推理结果。

42、上述模型推理方法、装置、计算机设备、存储介质和计算机程序产品,响应于推理请求,可获取与当前处理设备匹配的运算优化代码,并基于推理请求携带的输入数据,确定推理请求对应的推理模型中各网络层的输入特征数据;在计算各网络层的输出数据的过程中,可根据数据分块信息、缓存参考信息和当前处理设备中缓存空间的缓存属性信息,确定中间矩阵分块信息,针对每个网络层,可按照中间矩阵分块信息,对相应网络层的网络参数数据和输入特征数据进行切分处理,得到对应的各个第一中间矩阵和各个第二中间矩阵;然后基于各个第一中间矩阵和各个第二中间矩阵,组合得到各矩阵运算组,并将各矩阵运算组依次缓存至缓存空间中,这种缓存方式可以充分利用当前处理设备的缓存空间,最后利用运算优化代码,对缓存空间每次缓存的矩阵运算组进行处理,得到各矩阵运算组各自对应的运算结果;基于各矩阵运算组各自对应的运算结果,确定相应网络层的输出数据,基于各网络层的输出数据,确定推理请求对应的推理结果。上述方式可以兼顾输入特征数据和网络参数数据两方面数据在运算过程中的复用,降低了缓存缺失(miss)的可能性,提升了处理设备的利用率,加快了推理请求的响应速度。

本文地址:https://www.jishuxx.com/zhuanli/20241120/335447.html

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