模型的推理优化方法、系统、电子设备和存储介质技术方案

技术编号:32229663 阅读:102 留言:0更新日期:2022-02-09 17:34
本申请实施例涉及深度学习技术领域,特别涉及一种模型的推理优化方法、系统、电子设备和存储介质,该方法包括:获取模型的算子信息和中央处理单元CPU的硬件信息;根据所述模型的算子信息、所述CPU的硬件信息和预设的策略生成算法,确定代码生成策略;其中,所述代码生成策略包括调度代码生成策略和计算代码生成策略;根据所述代码生成策略,生成调度代码和计算代码;将所述调度代码和所述计算代码进行编译和链接,获得编译完成的模型文件。本申请实施例提供的模型的推理优化方法,可以充分利用CPU的计算能力,大幅提升模型推理的速度和效率,实现对模型进行有针对性的优化。实现对模型进行有针对性的优化。实现对模型进行有针对性的优化。

【技术实现步骤摘要】
模型的推理优化方法、系统、电子设备和存储介质


[0001]本申请实施例涉及深度学习
,特别涉及一种模型的推理优化方法、系统、电子设备和存储介质。

技术介绍

[0002]随着深度学习技术的飞速发展,越来越多的技术可以由模型来实现,比如人脸识别模型、语音识别模型等,服务提供商将训练好的模型进行部署,以提供人脸识别、语音识别等推理服务,深度学习模型可以基于图形处理单元(Graphics Processing Unit,简称:GPU)进行推理服务的部署,可以满足推理服务的高吞吐量需求和低时延需求,但GPU的价格非常昂贵,基于GPU进行部署推理成本很高、耗电量也很大,而基于中央处理单元(Central Processing Unit,简称:CPU)进行推理服务的部署价格较低,推理成本也比较低,当CPU推理能够满足吞吐量与时延的要求时,基于CPU进行部署是服务提供商的首选,并且,在某些没有配置GPU的设备上,只能基于CPU进行推理服务的部署。
[0003]然而,技术人员将深度学习模型部署在CPU进行推理服务部署时,通常会将模型直接编译为目标文本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种模型的推理优化方法,其特征在于,包括:获取模型的算子信息和中央处理单元CPU的硬件信息;根据所述模型的算子信息、所述CPU的硬件信息和预设的策略生成算法,确定代码生成策略;其中,所述代码生成策略包括调度代码生成策略和计算代码生成策略;根据所述代码生成策略,生成调度代码和计算代码;将所述调度代码和所述计算代码进行编译和链接,获得编译完成的模型文件。2.根据权利要求1所述的模型的推理优化方法,其特征在于,所述模型的算子信息包括输入维度大小和输出维度大小,所述CPU的硬件信息包括CPU支持的指令集集合、CPU的可用线程数、CPU的单指令多数据寄存器个数和单指令多数据寄存器一次能够处理的浮点数个数;所述根据所述模型的算子信息、所述CPU的硬件信息和预设的策略生成算法,确定代码生成策略,包括:根据所述输入维度大小、所述输出维度大小和所述CPU的可用线程数,确定并行线程数和并行分块策略;根据所述并行线程数、所述并行分块策略和所述CPU支持的指令集集合,确定调度代码生成策略;根据所述CPU的单指令多数据寄存器个数和所述单指令多数据寄存器一次能够处理的浮点数个数,确定计算核大小和循环策略;根据所述计算核大小、所述循环策略和所述CPU支持的指令集集合,确定计算代码生成策略。3.根据权利要求2所述的模型的推理优化方法,其特征在于,所述根据所述输入维度大小、所述输出维度大小和所述CPU的可用线程数,确定并行线程数和并行分块策略,包括:判断所述输出维度大小是否大于第一预设阈值且小于第二预设阈值;在所述输出维度大小大于第一预设阈值且小于第二预设阈值的情况下,确定并行线程数为所述CPU的可用线程数,并根据所述并行线程数确定并行分块策略;在所述输出维度大小不大于第一预设阈值,或不小于第二预设阈值的情况下,判断所述输入维度大小与所述输出维度大小的乘积是否小于第三预设阈值;在所述乘积小于第三预设阈值的情况下,确定并行线程数为1;在所述乘积大于或等于第三预设阈值的情况下,计算所述输出维度大小与所述CPU的可用线程数的比值;根据所述比值确定所述并行线程数,并根据所述并行线程数确定并行分块策略。4.根据权利要求3所述的模型的推理优化方法,其特征在于,所述根据所述并行线程数确定并行分块策略,包括:判断所述输出维度大小p是否可以被所述并行线程数q整除;其中,所述q为大于1的整数,所述p为大于或等于q的整数;在所述输出维度大小p可以被所述并行线程数q整除的情况下,确定每个线程需要处理的输出维度大小为p/q;在所述输出维度大小p不可以被所述并行线程数q整除的情况下,确定q

1个线程中的每个线程需要处理的输出维度大小为1+p/q,剩余的一个线程需要处理的输出维度大小为
p

(q

1)
×
(1+p/q)。5.根据权利要求2或3所述的模型的推理优化方法,其特征在于,所述计算核大小包括输入维度的计算核大小和输出维度的计算核大小,所述循环策略包括输入维度的循环策略和输出维度的循环策略;所述计算核大小通过以下公式确定:式中,M为所述输入维度的计算核大小,N为所述输出维度的计算核大小,L为所述单指令多数据寄存器一次能够处理的浮点数个数,R为所述CPU的单指令多数据寄存器个数。6.根据权利要求2所述的模型的推理优化方法,其特征在于,所述模型的算子信息还包括所述Batch

Size维度大小,若所述Batch

Size维度大小大于1,则在所述根据所述计算核大小、所述循环策略和所述CPU支持的指令集集合,确定计算代码生成策略之前,包括:获取所述模型的权重矩阵的内存排布形式,并判断所述输入维度是否为主导维度;在所述输入维度为主导维度的情况下,确定权重矩阵重排策略;所述根据所述计算核大小、所述循环策略和所述CPU支持的指令集集合,确定计算代码生成策略,包括:根据所述计算核大小、所述循环策略、所述CPU支持的指令集集合和所述权重矩阵重排策略,确定计算代码生成策略。7.根据权利要求2所述的模型的推理优化方法,其特征在...

【专利技术属性】
技术研发人员:王超金士英刘涛屠要峰
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

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

1