一种支持多模式卷积计算的方法及装置制造方法及图纸

技术编号:33086705 阅读:21 留言:0更新日期:2022-04-15 10:51
本申请公开了一种支持多模式卷积计算的方法及装置,包括配置原始计算单元;获取计算任务对应的计算模式;根据计算模式将原始计算单元配置为当前计算单元;采用所述当前计算单元执行所述计算任务,并输出计算结果。本申请通过复用原始计算单元中的乘法器和加法器,通过控制逻辑实现多种计算模式用于执行不同的计算任务,对于计算精度要求高的计算任务可以采取FP16的计算模式,对于计算速度要求高的计算任务可以灵活采取INT8的计算模式。并且本申请将三种计算模式的元件整合,复用高占比的乘法器和加法器能够有效降低资源消耗和芯片面积。积。积。

【技术实现步骤摘要】
一种支持多模式卷积计算的方法及装置


[0001]本专利技术涉及卷积神经网络
,特别涉及一种支持多模式卷积计算的方法及装置。

技术介绍

[0002]近十年来,随着大数据、云计算、互联网、物联网等信息技术的发展,泛在感知数据和图形处理器等计算平台推动以深度神经网络DNN为代表的人工智能技术飞速发展,大幅跨越了科学与应用之间的“技术鸿沟”,诸如图像分类、语音识别、知识问答、人机对弈、无人驾驶等人工智能技术实现了从“不能用”到“可以用”的技术突破,迎来爆发式增长的新高潮。
[0003]目前主流的人工智能解决方案大多采用卷积神经网络(CNN)来实现。现有技术中,由于CNN网络模型通常比较大,需要海量的计算来完成任务,出于应用部署的需要,CNN硬件加速器就成为了解决计算效率的首选。目前的CNN加速方式包括采用FPGA(可编程逻辑阵列)实现CNN硬件加速,或者采用ASIC(专用集成电路)实现CNN硬件加速等等。
[0004]然而,目前现有的硬件加速器通常仅能支持一种卷积计算,例如仅支持INT8(8位整形数)、INT16(16位整形数)或FP16(半精度浮点数),这就导致当面临不同需求的计算任务时,现有方法及装置不能灵活根据任务进行快速调整,往往不能同时兼顾计算精度和计算速度的要求。

技术实现思路

[0005]本申请提供了一种支持多模式卷积计算的方法及装置,以解决现有技术中的CNN加速器缺乏灵活性不能兼顾计算精度和计算速度的问题。
[0006]第一方面,本申请提供了一种支持多模式卷积计算的方法,包括:
[0007]配置原始计算单元;所述原始计算单元包括依次连接的第一乘法器、第一移位器、选择器、第一加法器、第一寄存器以及FP16规范化处理器,还包括依次连接的第二乘法器、第二移位器、第二加法器以及第二寄存器;其中,所述第一寄存器的输出端连接第一加法器的输入端;所述第二寄存器的输出端分别连接第二加法器的输入端以及选择器的输入端;所述原始计算单元还包括第三加法器,所述第三加法器的输出端连接至第一移位器和第二移位器的输入端;
[0008]获取计算任务对应的计算模式;
[0009]根据计算模式将原始计算单元配置为当前计算单元;
[0010]采用所述当前计算单元执行所述计算任务,并输出计算结果。
[0011]在一些实施例中,所述计算模式包括INT8计算模式、INT16计算模式或FP16计算模式。
[0012]在一些实施例中,当所述计算模式为INT8计算模式时,所述将原始计算单元配置为当前计算单元的步骤包括:
[0013]分别将第一移位器和第二移位器配置为:将输入的数据不执行移位处理直接输出;
[0014]将FP16规范化处理器配置为:将输入的数据不执行FP16规范化处理直接输出;
[0015]将选择器配置为:将第一移位器的输出数据作为第一加法器的输入数据。
[0016]在一些实施例中,所述当前计算单元中,第一乘法器和第一加法器、以及第二乘法器和第二加法器分别提供不同计算任务对应的乘累加计算。
[0017]在一些实施例中,当所述计算模式为INT16计算模式时,所述将原始计算单元配置为当前计算单元的步骤包括:
[0018]将FP16规范化处理器配置为:将输入的数据不执行FP16规范化处理直接输出;
[0019]选择器被配置为:将第二寄存器的输出数据及第一移位器的输出数据作为第一加法器的输入数据。
[0020]在一些实施例中,当所述计算模式为FP16计算模式时,所述将原始计算单元配置为当前计算单元的步骤包括:
[0021]将选择器配置为:将第二寄存器的输出数据及第一移位器的输出数据作为第一加法器的输入数据。
[0022]第二方面,本申请还提供了一种支持多模式卷积计算的装置,包括:
[0023]原始计算单元;所述原始计算单元包括依次连接的第一乘法器、第一移位器、选择器、第一加法器、第一寄存器以及FP16规范化处理器,还包括依次连接的第二乘法器、第二移位器、第二加法器以及第二寄存器;其中,所述第一寄存器的输出端连接第一加法器的输入端;所述第二寄存器的输出端分别连接第二加法器的输入端以及选择器的输入端;所述原始计算单元还包括第三加法器,所述第三加法器的输出端连接至第一移位器和第二移位器的输入端;
[0024]模式确定单元,被配置为根据计算任务确定对应的计算模式;
[0025]计算控制单元,被配置为根据不同的计算模式,选取原始计算单元中对应的元件组成用于计算的当前计算单元;
[0026]所述当前计算单元被配置为执行计算任务,输出计算结果。
[0027]在一些实施例中,当所述计算模式为INT8计算模式时,所述当前计算单元中:
[0028]第一移位器和第二移位器被配置为:将输入的数据不执行移位处理直接输出;
[0029]FP16规范化处理器被配置为:将输入的数据不执行FP16规范化处理直接输出;
[0030]将选择器配置为:将第一移位器的输出数据作为第一加法器的输入数据。
[0031]在一些实施例中,当所述计算模式为INT16计算模式时,所述当前计算单元中:
[0032]FP16规范化处理器被配置为:将输入的数据不执行FP16规范化处理直接输出;
[0033]选择器被配置为:将第二寄存器的输出数据及第一移位器的输出数据作为第一加法器的输入数据。
[0034]在一些实施例中,当所述计算模式为FP16计算模式时,所述当前计算单元中:
[0035]选择器被配置为:将第二寄存器的输出数据及第一移位器的输出数据作为第一加法器的输入数据。
[0036]本申请提供的方法及装置通过复用原始计算单元中的乘法器和加法器,通过控制逻辑实现多种计算模式用于执行不同的计算任务,对于计算精度要求高的计算任务可以采
取FP16的计算模式,对于计算速度要求高的计算任务可以灵活采取INT8的计算模式。并且本申请将三种计算模式的元件整合,复用高占比的乘法器和加法器能够有效降低资源消耗和芯片面积。
附图说明
[0037]为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为实现本申请提供计算方法的计算单元结构示意图;
[0039]图2为本申请一种支持多模式卷积计算的方法的流程图;
[0040]图3为INT8计算模式下的当前计算单元结构示意图;
[0041]图4为INT16计算模式下的当前计算单元结构示意图;
[0042]图5为FP16计算模式下的当前计算单元结构示意图。
具体实施方式
[0043]本申请提供了一种支持多模式卷积计算的方法,可针对不同的计算任务、计算模式,通过复用乘法器和加法器,使基本计算单元适用于多种计算模式,具体说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多模式卷积计算的方法,其特征在于,包括:配置原始计算单元;所述原始计算单元包括依次连接的第一乘法器、第一移位器、选择器、第一加法器、第一寄存器以及FP16规范化处理器,还包括依次连接的第二乘法器、第二移位器、第二加法器以及第二寄存器;其中,所述第一寄存器的输出端连接第一加法器的输入端;所述第二寄存器的输出端分别连接第二加法器的输入端以及选择器的输入端;所述原始计算单元还包括第三加法器,所述第三加法器的输出端连接至第一移位器和第二移位器的输入端;获取计算任务对应的计算模式;根据计算模式将原始计算单元配置为当前计算单元;采用所述当前计算单元执行所述计算任务,并输出计算结果。2.根据权利要求1所述的方法,其特征在于,所述计算模式包括INT8计算模式、INT16计算模式或FP16计算模式。3.根据权利要求2所述的方法,其特征在于,当所述计算模式为INT8计算模式时,所述将原始计算单元配置为当前计算单元的步骤包括:分别将第一移位器和第二移位器配置为:将输入的数据不执行移位处理直接输出;将FP16规范化处理器配置为:将输入的数据不执行FP16规范化处理直接输出;将选择器配置为:将第一移位器的输出数据作为第一加法器的输入数据。4.根据权利要求3所述的方法,其特征在于,所述当前计算单元中,第一乘法器和第一加法器、以及第二乘法器和第二加法器分别提供不同计算任务对应的乘累加计算。5.根据权利要求2所述的方法,其特征在于,当所述计算模式为INT16计算模式时,所述将原始计算单元配置为当前计算单元的步骤包括:将FP16规范化处理器配置为:将输入的数据不执行FP16规范化处理直接输出;将选择器配置为:将第二寄存器的输出数据及第一移位器的输出数据作为第一加法器的输入数据。6.根据权利要求2所述的方法,其特征在于,当所述计算模式为FP16计算模式时,所述将原始计...

【专利技术属性】
技术研发人员:杨东天王丹阳
申请(专利权)人:南京风兴科技有限公司
类型:发明
国别省市:

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

1