System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,尤其涉及一种模型性能评估方法及装置。
技术介绍
1、随着计算机技术的不断发展,越来越多的深度学习模型被应用于各种产品中,如视频类应用程序中的特效模型、图像识别模型、手势识别模型等等。为了优化产品的性能,在将模型部署至产品上之前,常常需要对深度学习模型的耗时进行评估。
2、目前,为了能够实现在产品迭代过程中快速地对模型的实际耗时进行预估,通常会提前收集并记录模型中各算子的参数以及对应的耗时至一个数据表中,当需要预测新的模型的耗时性能时,首先进行算子拆分,再在数据表中查询算子的耗时进行累加即可得到模型的耗时。
3、然而,通过查询数据表的方式很难覆盖到全部类型的算子,若遇到未收集过的算子,则无法获得对应的耗时,进而会导致预估的耗时结果不准确。
技术实现思路
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、本公开实施例提供一种模型性能评估方法及装置,其中,该方法通过对待评估模型进行算子拆分得到多个算子,再获取各算子的计算量、访存量以及访存量偏移;基于所述多个算子分别对应的计算量、访存量以及访存偏移量、部署所述待评估模型的计算平台的修正算力和修正带宽上限得到所述多个算子分别对应的耗时评估结果;将所述多个算子分别对应的耗时评估结果累加得到所述待评估模型的耗时评估结果。本公开基于通过采用计算平台的修正算力和修正带宽上限进行算子耗时评估,充分考虑了各类算子在计算平台中的实际性能表现与理想状态下的误差,且基于访存量偏移对算子的访存量进行了修正,进而能够得到准确度更高的耗时评估结果。
本文档来自技高网...【技术保护点】
1.一种模型性能评估方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个算子分别对应的计算量、访存量以及访存偏移量、部署所述待评估模型的计算平台的修正算力和修正带宽上限得到所述多个算子分别对应的耗时评估结果,包括:
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述对各所述第一测试算子的实测算力与平均实测算力之间的差异进行统计分析得到第二算力误差,包括:
6.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,采用最小二乘函数进行线性拟合得到所述修正带宽上限以及所述访存量偏移。
8.根据权利要求1所述的方法,其特征在于,还包括:
9.一种模型性能评估装置,其特征在于,包括:
10.一种电子设备,其特征在于,包括:存储器和处理器;
11.一种可读存储介质,其特征在于,包
12.一种计算机程序产品,其特征在于,电子设备执行所述计算机程序产品,使得所述电子设备实现如权利要求1至8任一项所述的模型性能评估方法。
...【技术特征摘要】
1.一种模型性能评估方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个算子分别对应的计算量、访存量以及访存偏移量、部署所述待评估模型的计算平台的修正算力和修正带宽上限得到所述多个算子分别对应的耗时评估结果,包括:
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述对各所述第一测试算子的实测算力与平均实测算力之间的差异进行统计分析得到第二算力误差,包括:
6.根据权利要求1至3...
【专利技术属性】
技术研发人员:颜晨倩,
申请(专利权)人:北京字跳网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。