【技术实现步骤摘要】
一种动态张量编译优化方法、装置、电子设备及介质
[0001]本申请涉及深度学习算法领域,具体而言,涉及一种动态张量编译优化方法
、
装置
、
电子设备及介质
。
技术介绍
[0002]近年来,深度学习应用对硬件算力的需求呈指数增长
。GPU、TPU
和专用领域加速器作为硬件平台在学术界和工业界不断提高着深度学习应用的性能
。
然而,为实现硬件固有的性能,只能将深度学习算法在这个硬件上进行微调
。
例如,硬件厂商面向深度学习应用手工开发的算子库,如
cublas
,
cudnn
,
cutlass。
由于算法和硬件更迭速度较快,算子库的开发和维护不仅成本高,而且开发时间较长
。
[0003]深度学习编译器
(tvm
,
tc
,
halide
,
mlir)
可以为加速器实现高性能的深度学习算法
。 >基于搜索的深度学习本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种动态张量编译优化方法,其特征在于,所述方法包括:在目标模型部署在目标硬件平台之前,获取目标硬件平台的多种硬件资源参数;其中,所述硬件资源参数包括线程块中的最大线程数
、
线程簇中的线程数
、
缓存容量;根据目标硬件平台的硬件资源参数,从预先构建的微内核库中,筛选出符合预设微内核条件的多个候选微内核;所述预设微内核条件是至少根据一种硬件资源参数设定的;将筛选出的多个候选微内核输入至预先训练好的目标微内核评估模型,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值;其中,所述目标微内核评估模型是基于目标硬件平台训练得到的;筛选出性能分值最高的候选微内核作为目标模型的动态张量的目标微内核,以得到目标模型中使用所述目标微内核的动态张量
。2.
根据权利要求1所述的动态张量编译优化方法,其特征在于,预设微内核条件包括:候选微内核的线程数是线程簇中的线程数的整数倍
、
候选微内核的线程数小于或等于线程块中最大线程数
、
候选微内核的数据访问总量是缓存容量的整数因子;筛选出符合预设微内核条件的多个候选微内核;包括:筛选出线程数是线程簇中的线程数的整数倍
、
且线程数小于或等于线程块中最大线程数
、
以及数据访问总量是缓存容量的整数因子的多个候选微内核
。3.
根据权利要求1所述的动态张量编译优化方法,其特征在于,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值,包括:通过所述目标微内核评估模型预测目标模型中动态张量使用该候选微内核时的吞吐量;预测动态张量使用该候选微内核时的资源利用率系数;基于动态张量使用该候选微内核对目标访问平台的多种内存访问时间和所需的完整执行时间,确定动态张量使用该候选微内核的内存访问效率系数;其中,不同大小的微内核的内存访问效率分数表征了不同大小的微内核在内存访问时间上的差异;基于动态张量使用该候选微内核时的吞吐量
、
资源利用率系数和内存访问效率系数,计算该候选微内核的性能分值
。4.
根据权利要求3所述的动态张量编译优化方法,其特征在于,预测动态张量使用该候选微内核时的资源利用率系数,包括:通过以下公式
(1)
计算动态张量使用该候选微内核时的资源利用率系数;其中,
f
OCCA
(P/M)
表征使用微内核
M
的动态张量
P
的资源利用率系数,
P/M
表征执行单个动态张量
P
所需要用到的微内核
M
的总数
、divmod(P/M
,
NumCores)
表征
P/M
与计算单元总数
NumCores
的模函数,
k1表征动态张量性能随微内核大小的变化率;
b1表征动态参数,其中
k1+b1=
1。5.
根据权利要求3所述的动态张量编译优化方法,其特征在于,基于动态张量使用该候选微内核对目标访问平台的多种内存访问时间和所需的完整执行时间,确定动态张量使用
该候选微内核的内存访问效率系数,是通过以下公式
(2)
确定的:其中,
t
表示候选...
【专利技术属性】
技术研发人员:王锐,穆鹏宇,刘轶,钱德沛,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。