1.一种应用于人工智能芯片的卷积神经网络计算方法,其中,所述人工智能芯片包括处理器、至少一个并行计算单元和池化计算单元,所述方法包括:由所述处理器将卷积任务划分为至少一个卷积子任务和至少一个对应的池化子任务,并确定对应于每个卷积子任务的并行计算单元,其中,所述卷积任务被配置为对所述卷积任务的待处理数据执行卷积、批量归一化、非线性计算和池化操作,所述卷积子任务被配置为对所述卷积子任务的待处理数据执行所述卷积任务中的卷积、批量归一化和非线性计算操作,并且所述池化子任务被配置为对所述对应的卷积子任务的执行结果执行所述卷积任务中的池化操作;
由所述处理器将每个划分后的卷积子任务发送给对应于所述卷积子任务的所述并行计算单元,并且控制所述并行计算单元执行接收的卷积子任务;
由相应的并行计算单元执行所述接收的卷积子任务,并且将执行结果作为待池化数据发送给所述池化计算单元;
响应于接收到所述并行计算单元发送的指示信息,由所述处理器将目标池化子任务的池化参数发送给所述池化计算单元,所述指示信息指示所述卷积子任务已经完全执行,并且控制所述池化计算单元执行所述目标池化子任务,其中,所述目标池化子任务是指对应于发送了接收到的指示信息的所述并行计算单元的所述卷积子任务所对应的池化子任务;
由所述池化计算单元执行相应的池化子任务;并将执行结果发送给所述处理器;以及由所述处理器合并从所述池化计算单元接收的相应的池化子任务的执行结果,以获得所述卷积任务的执行结果。
2.根据权利要求1所述的方法,其中,由所述处理器将所述卷积任务划分为至少一个卷积子任务和至少一个对应的池化子任务,并且确定对应于每个卷积子任务的并行计算单元,包括:由所述处理器基于所述至少一个并行计算单元的当前运行状态将所述卷积任务划分为至少一个卷积子任务和至少一个对应的池化子任务,并确定对应于每个卷积子任务的并行计算单元。
3.根据权利要求2所述的方法,其中,每个卷积子任务的计算量是8的倍数。
4.根据权利要求3所述的方法,其中,由所述处理器基于所述至少一个并行计算单元的当前运行状态将所述卷积任务划分成至少一个卷积子任务和至少一个对应的池化子任务,并且确定对应于每个卷积子任务的并行计算单元,还包括:由所述处理器将所述至少一个并行计算单元中当前运行状态是空闲状态的并行计算单元的数量确定为空闲单元的数量;
由所述处理器将所述卷积任务划分成数量等于空闲单元的数量的卷积子任务,以及相应数量的池化子任务;以及由所述处理器将当前运行状态为空闲状态的各个并行计算单元确定为对应于数量等于空闲单元的数量的所述卷积子任务中的各个卷积子任务的并行计算单元。
5.根据权利要求4所述的方法,其中,所述卷积任务的待处理数据是三维数据;并且将所述卷积任务划分成数量等于空闲单元的数量的卷积子任务以及相应数量的池化子任务包括:将所述卷积任务的待处理数据划分成数量与沿第三维的空闲单元数量相等的待处理数据;以及对于数量等于空闲单元数量的所述待处理数据中的每个待处理数据,生成对应于所述待处理数据的卷积子任务,以及生成对应于生成的卷积子任务的池化子任务,其中,所述生成的卷积子任务被配置为对所述待处理数据执行所述卷积任务中的卷积、批量归一化和非线性计算操作;并且所述生成的池化子任务被配置为对所述相应的卷积子任务的执行结果执行所述卷积任务中的池化操作。
6.根据权利要求5所述的方法,其中,所述卷积任务的待处理数据是深度图像。
7.根据权利要求6所述的方法,其中,所述卷积任务的非线性计算是由整流线性单元实现的非线性计算。
8.根据权利要求7所述的方法,其中,所述卷积任务的待处理数据存储在所述人工智能芯片的高速缓存或所述人工智能芯片所在的电子设备的存储器中。
9.根据权利要求8所述的方法,其中,由相应的并行计算单元执行所述接收的卷积子任务,并将执行结果作为待池化数据发送给所述池化计算单元,包括:由相应的并行计算单元执行所述接收的卷积子任务,并将对应于所述执行结果的16位浮点数格式数据作为待池化的数据发送给所述池化计算单元。
10.根据权利要求9所述的方法,其中,由所述池化计算单元执行所述相应的池化子任务;以及将执行结果发送给所述处理器,包括:由所述池化计算单元执行所述相应的池化子任务;以及将对应于所述执行结果的16位浮点数格式数据发送给所述处理器。
11.一种人工智能芯片,其包括:
接口;
存储器,其上存储有一个或多个程序;以及
一个或多个处理器,其可操作地连接到所述接口和所述存储器,被配置为:
将卷积任务划分成至少一个卷积子任务和至少一个对应的池化子任务,并且确定对应于每个卷积子任务的并行计算单元,其中,所述卷积任务被配置为对所述卷积任务的待处理数据执行卷积、批量归一化、非线性计算和池化操作,所述卷积子任务被配置为对所述卷积子任务的待处理数据执行所述卷积任务中的卷积、批量归一化和非线性计算操作,并且所述池化子任务被配置为对相应卷积子任务的执行结果执行所述卷积任务中的池化操作;
将每个划分后的卷积子任务发送给对应于所述卷积子任务的并行计算单元,并控制所述并行计算单元执行接收的卷积子任务;
响应于接收到所述并行计算单元发送的指示信息,将目标池化子任务的池化参数发送给所述池化计算单元,所述指示信息指示所述卷积子任务已经被完全执行,并且控制所述池化计算单元执行所述目标池化子任务,其中,所述目标池化子任务是指对应于发送了接收到的指示信息的并行计算单元的所述卷积子任务所对应的池化子任务;
合并从所述池化计算单元接收的相应的池化子任务的执行结果,以获得所述卷积任务的执行结果;一个或多个并行计算单元,其可操作地连接到所述一个或多个处理器和所述存储器,被配置为:执行所述接收的卷积子任务,并将执行结果作为待池化数据发送给所述池化计算单元;以及池化计算单元,其可操作地连接到所述一个或多个处理器、所述存储器和所述一个或多个并行计算单元,被配置为:执行相应的池化子任务并将执行结果发送给所述一个或多个处理器。
12.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序由一个或多个处理器执行时,使得所述一个或多个处理器:将卷积任务划分为至少一个卷积子任务和至少一个对应的池化子任务,并且确定对应于每个卷积子任务的并行计算单元,其中,所述卷积任务被配置为对所述卷积任务的待处理数据执行卷积、批量归一化、非线性计算和池化操作,所述卷积子任务被配置为对所述卷积子任务的待处理数据执行所述卷积任务中的卷积、批量归一化和非线性计算操作,并且所述池化子任务被配置为对相应卷积子任务的执行结果执行所述卷积任务中的池化操作;
将每个划分后的卷积子任务发送给对应于所述卷积子任务的并行计算单元,并且控制所述并行计算单元执行接收的卷积子任务;
响应于接收到所述并行计算单元发送的指示信息,将目标池化子任务的池化参数发送给所述池化计算单元,所述指示信息指示所述卷积子任务已经被完全执行,并控制所述池化计算单元执行所述目标池化子任务,其中,所述目标池化子任务是指对应于发送了接收到的指示信息的并行计算单元的卷积子任务所对应的池化子任务;
合并从所述池化计算单元接收的相应的池化子任务的执行结果,以获得所述卷积任务的执行结果。