本说明书一个或多个实施例涉及计算机,尤其涉及一种ai计算方法及系统。
背景技术:
1、近年来边缘ai计算得益于其实时性和稳定性优势,被越来越多新兴或传统的应用领域所关注。在边缘ai计算的低功耗应用中,当前解决方案主要分为两种,其一是通过借助传统的通用计算芯片(如cpu、mcu等)计算轻量化的ai算法,其二是在pcb板或soc芯片中上集成专用ai加速芯片/模块。第一种方案虽然无需额外硬件成本和可编程的灵活性强,但缺点在于功耗开销较大、实时性较差或算法准确率较差;第二种方案虽因功耗更低和算力更高而准确率更好,但缺点是额外增加了较多硬件成本并且支持的ai算法比较局限,且专用深度定制的硬件难以兼容新的ai算法。
技术实现思路
1、有鉴于此,本说明书一个或多个实施例提供一种ai计算方法及系统。
2、根据本说明书一个或多个实施例的第一方面,提出了一种ai计算方法,利用设定短指令集实现卷积运算,所述方法包括:
3、利用多个通用寄存器并行加载特征图中局部区域的各个数据;
4、利用多个参数寄存器加载网络参数;
5、分别将每个参数寄存器中的数据,并行与相应位置的通用寄存器中的数据相乘,并将相乘结果分别加载在不同的累加寄存器中,所述累加寄存器对于所加载的数据进行累加,所述相应位置是利用滑窗执行卷积过程中与网络参数进行乘累加的位置;
6、根据所述累加寄存器中累加的结果生成输出特征图中的对应元素。
7、在一些实施例中,所述多个通用寄存器被分为m个分组,所述利用多个通用寄存器并行加载特征图中局部区域的各个数据,包括:
8、分别利用所述m个分组中的一个通用寄存器加载特征图中局部区域的一个数据。
9、在一些实施例中,所述设定短指令集中包含预先设定的与访问通用寄存器的各个模式对应的乘累加指令,所述方法还包括:
10、根据加载局部区域中各个数据的通用寄存器所属的分组确定访问通用寄存器的模式;
11、调用所述模式对应的乘累加指令,对所述局部区域中的数据与所述网络参数进行乘累加。
12、在一些实施例中,所述方法还包括:
13、针对每个乘累加指令,根据每个分组能够加载至的累加寄存器,对累加寄存器进行地址编码。
14、在一些实施例中,所述根据所述累加寄存器中累加的结果生成输出特征图中的对应元素,包括:
15、在所述累加寄存器完成对于特征图数据的累加后输出累加结果并清零所述累加寄存器;
16、根据所述累加寄存器所输出的累加结果生成输出特征图中的对应元素。
17、根据本说明书一个或多个实施例的第二方面,提出了一种ai计算系统,包括:
18、数据存储单元,用于存储特征图数据和网络参数;
19、指令译码单元,用于对设定短指令集中的指令进行译码;
20、指令执行单元,用于根据指令译码单元的译码结果控制寄存器阵列进行卷积运算;寄存器阵列,包括:
21、多个通用寄存器,用于并行加载特征图中局部区域的各个数据;
22、多个参数寄存器,用于加载网络参数;
23、多个累加寄存器,用于分别加载每个参数寄存器中的数据并行与相应位置的通用寄存器中的数据的相乘结果,并对于所加载的数据进行累加,所述相应位置是利用滑窗执行卷积过程中与网络参数进行乘累加的位置。
24、在一些实施例中,所述多个通用寄存器被为分m个分组,每个分组中的一个通用寄存器加载特征图中局部区域的一个数据。
25、在一些实施例中,所述设定短指令集中包含预先设定的与访问通用寄存器的各个模式对应的乘累加指令,所述指令执行单元用于:
26、根据加载局部区域中各个数据的通用寄存器所属的分组确定访问通用寄存器的模式;
27、调用所述模式对应的乘累加指令,对所述局部区域中的数据与所述网络参数进行乘累加。
28、在一些实施例中,所述指令执行单元用于:
29、针对每个乘累加指令,根据每个分组能够加载至的累加寄存器,对累加寄存器进行地址编码。
30、在一些实施例中,所述指令执行单元在根据所述累加寄存器中累加的结果生成输出特征图中的对应元素时具体用于:
31、在所述累加寄存器完成对于特征图数据的累加后输出累加结果并清零所述累加寄存器;
32、根据所述累加寄存器所输出的累加结果生成输出特征图中的对应元素。
33、本说明书实施例提出的ai计算方法,通过将常规的卷积运算拆解为多个数据加载和运算的步骤,并以设定短指令集实现该卷积运算。通过并行加载特征图中每一局部区域中的各个元素,单独将每一卷积核元素同时与相应位置的特征图元素进行相乘,并分别加载在不同的累加寄存器中,同一累加寄存器对于加载在其中的部分积进行累加,从而实现高并发度的卷积运算,提高了ai计算的速度。由于在每个并行度仅需要对每个分组中的通用寄存器进行地址索引因此设定短指令集中的乘累加指令可以优化为低位宽指令,从而降低了硬件开销。因此,本申请方案在保留通用处理器的灵活可配置优势的基础上,在硬件上加速ai计算,同时降低了硬件开销。
1.一种ai计算方法,其特征在于,利用设定短指令集实现卷积运算,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述多个通用寄存器被分为m个分组,所述利用多个通用寄存器并行加载特征图中局部区域的各个数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述设定短指令集中包含预先设定的与访问通用寄存器的各个模式对应的乘累加指令,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述累加寄存器中累加的结果生成输出特征图中的对应元素,包括:
6.一种ai计算系统,其特征在于,包括:
7.根据权利要求6所述的系统,其特征在于,所述多个通用寄存器被为分m个分组,每个分组中的一个通用寄存器加载特征图中局部区域的一个数据。
8.根据权利要求7所述的系统,其特征在于,所述设定短指令集中包含预先设定的与访问通用寄存器的各个模式对应的乘累加指令,所述指令执行单元用于:
9.根据权利要求8所述的系统,其特征在于,所述指令执行单元用于:
10.根据权利要求6所述的系统,其特征在于,所述指令执行单元在根据所述累加寄存器中累加的结果生成输出特征图中的对应元素时具体用于: