一种基于忆阻器的DNN加速器的资源分配方法及装置与流程

文档序号:24428820发布日期:2021-03-26 23:43阅读:来源:国知局

技术特征:
1.一种基于忆阻器的dnn加速器的资源分配方法,所述深度神经网络dnn为卷积神经网络或全连接神经网络,其包含卷积层和全连接层的总层数为n,n为正整数;所述用于加载深度神经网络dnn模型的基于忆阻器的dnn加速器包含有若干计算模块,其特征在于,所述资源分配方法包括以下步骤:1)参数设置:初始化待映射dnn全精度模型中全部n个层的量化位宽,各层的量化位宽的初始值为该层所需的最小量化位宽;2)数据采集:增加所述dnn模型中各层的量化位宽,使各层均不满足局部资源空闲条件,计算当仅向第i层增加1bit的量化位宽时,量化后的dnn模型对测试数据进行推理的准确度p
i
,其中i=1,2,...n;3)资源分配:比较步骤2)中得到的各个准确度p
i
,若准确度最大值唯一,则向对应最大准确度的层增加1bit的量化位宽,若准确度最大值不唯一,则向对应最大准确度且位置最靠近输入端的层增加1bit的量化位宽;4)迭代分配:将步骤3)中重新分配量化位宽后的dnn模型返回步骤2),重复步骤2)—3),直到所述dnn模型的各层均不满足全局资源限制条件,输出所述dnn模型中各层的量化位宽,并映射到dnn加速器,完成dnn加速器的资源分配。2.如权利要求1所述的一种基于忆阻器的dnn加速器的资源分配方法,其特征在于,步骤2)中数据采集的具体步骤如下:2

1)遍历dnn模型的全部n个层,当第i层符合局部资源空闲条件时,重复执行向第i层的量化位宽加1bit的操作,直至第i层不满足局部资源空闲条件;2

2)重复步骤2

1)直至所述dnn模型中全部n个层均被遍历;2

3)若dnn中的第i层满足全局资源限制条件,在仅向第i层增加1bit量化位宽的设置下对所述dnn模型进行量化,得到量化模型,通过量化模型对测试数据进行推理,得到推理准确度p
i
,其中i=1,2,...n。3.如权利要求2所述的一种基于忆阻器的dnn加速器的资源分配方法,其特征在于,步骤2

3)中对所述dnn模型进行量化的步骤如下:2
‑3‑1‑
1)寻找待映射dnn模型中第i层权重绝对值的最大值max_abs
i
;2
‑3‑1‑
2)根据第i层的量化位宽qbits
i
,用量化位中的最高位表示权重正负号,剩余位表示权重绝对值时,权重绝对值的位可表示的最大整数max_int
i
为:2
‑3‑1‑
3)计算第i层权重的最小量化单位δ
i
,其中:2
‑3‑1‑
4)将第i层中的每一个全精度浮点值权重x,采用量化函数q转换为相应的低精度值q(x),其中:式(3)中,round(.)是取整函数,用于将浮点数转换为距离它最近的整数;clip(.)是截断函数,用来限制量化后定点数的范围,其中:
式(4)中,t1=max_int
i
,t2=

max_int
i
;2
‑3‑1‑
5)重复步骤2
‑3‑1‑
1)
‑2‑3‑1‑
4),直至所述dnn模型中全部n个层均被遍历,dnn模型进行量化完成。4.如权利要求2所述的一种基于忆阻器的dnn加速器的资源分配方法,其特征在于,步骤2)中局部资源空闲条件为:若将第i层的量化位宽加1bit,在此量化位宽设置下将第i层权重映射到dnn加速器上,第i层自身占用dnn加速器的计算模块数不增加,且第i层的量化位宽不超过允许的最大量化位宽,则第i层满足局部资源空闲条件。5.如权利要求1所述的一种基于忆阻器的dnn加速器的资源分配方法,其特征在于,步骤4)中全局资源限制条件为:若将第i层的量化位宽加1bit,且其他层的量化位宽不变时,在此量化位宽设置下将dnn模型映射到加速器上,其dnn模型占用dnn加速器的计算模块数未超过dnn加速器可用计算模块的总数,且第i层的量化位宽不超过允许的最大量化位宽,则第i层满足全局资源限制条件。6.如权利要求5所述的一种基于忆阻器的dnn加速器的资源分配方法,其特征在于,所述dnn模型的权重按位排布采用同一阵列内相邻排布的方式,将dnn模型映射到忆阻器上第i层网络占用dnn加速器的计算模块数module_num
i
为:为:式(5)、(6)中,row_num_real
i
是映射第i层网络所需交叉阵列的字线数,column_num_real
i
是映射第i层网络所需交叉阵列的位线数,unit_num
i
是映射第i层网络所需的计算单元数;n、m表示所述忆阻器交叉阵列单个阵列具有n条字线、m条位线及n
×
m个存储器元件,p表示单个计算模块包含计算单元的个数;若该第i层为卷积层,映射第i层网络所需交叉阵列的字线数row_num_real
i
和映射该层网络所需交叉阵列的位线数column_num_real
i
计算公式如下:row_num_real
i
=k
xi
*k
yi
*cin
i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)式(7)、(8)中,k
xi
和k
yi
别为第i层卷积核的宽和高,cin
i
为第i层卷积核的通道数,cout
i
为第i层卷积层中卷积核的个数,qbits
i
是第i层权重的量化位宽,qbits
i

1是权重绝对值的位宽,cbits是单个忆阻器单元可表示的比特数,就是表示一个权重值需要的忆阻器单元数;若第i层为全连接层,映射第i层网络所需交叉阵列的字线数row_num_real
i
和映射第i
层网络所需交叉阵列的位线数column_num_real
i
计算公式如下:row_num_real
i
=cin
i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)式(9)、(10)中,cin
i
为全连接层的输入特征向量的长度,cout
i
为全连接层的输出特征向量的长度,qbits
i
是第i层权重的量化位宽,qbits
i

1是权重绝对值的位宽,cbits是单个忆阻器单元可表示的比特数,就是表示一个权重值需要的忆阻器单元数。7.一种基于忆阻器的dnn加速器的资源分配装置,所述深度神经网络dnn为卷积神经网络或全连接神经网络,其包含卷积层和全连接层的总层数为n,n为正整数;所述用于加载深度神经网络dnn模型的基于忆阻器的dnn加速器包含有若干计算模块,其特征在于,所述资源分配装置包括以下模块:1)参数设置模块:初始化待映射dnn全精度模型中全部n个层的量化位宽,各层的量化位宽的初始值为该层所需的最小量化位宽;2)数据采集模块:增加所述dnn模型中各层的量化位宽,使各层均不满足局部资源空闲条件,计算当仅向第i层增加1bit的量化位宽时,量化后的dnn模型对测试数据进行推理的准确度p
i
,其中i=1,2,...n;3)资源分配模块:比较步骤2)中得到的各个准确度p
i
,若准确度最大值唯一,则向对应最大准确度的层增加1bit的量化位宽,若准确度最大值不唯一,则向对应最大准确度且位置最靠近输入端的层增加1bit的量化位宽;4)迭代分配模块:将重新分配量化位宽后的模型进行迭代分配,直到所述dnn模型的各层均不满足全局资源限制条件,输出所述dnn模型中各层的量化位宽,并映射到dnn加速器,完成dnn加速器的资源分配。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1