1.一种基于多播片上网络的卷积神经网络硬件加速器,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特征是:所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;
所述卷积神经网络硬件加速器包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;
配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式:
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n个特征图存储器和结果存储器,并将目标图数据写入所述目标图存储器中;所述存储控制模块将第一权重数据写入所述权重存储器中,在所述激活函数模块中设置一种激活函数,从而配置成第一种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-1个特征图存储器和结果存储器;所述存储控制模块将第二权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第二种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第三权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第三种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第四权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第四种模式;
所述卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式;
第一个卷积层计算:
在第一种模式下,所述存储控制模块从所述目标图存储器中读取所述目标图数据并传递给所述输出处理模块和可重构计算模块;所述输出处理模块将所述目标图数据进行打包处理并发送至所述通讯接口模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
在第二种模式下,所述输入处理模块接收在第一种模式下的通讯接口模块传输的打包数据并进行解包处理,得到目标图数据并发送给所述可重构计算模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
第二个卷积层计算:
在第一种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述第一特征图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对所述第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
在第四种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
第一个全连接层计算:
在第二种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第五种模式下,所述输入处理模块依次接收第二种模式下、第三种模式下和第四种模式下的打包数据并进行解包处理,得到三种模式下的卷积结果并发送给所述可重构计算模块;所述可重构计算模块对三种模式下的卷积结果进行累加计算得到累加结果后发送给所述输出处理模块;所述输出处理模块将所述累加结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述可重构计算模块;所述输入处理模块依次接收在第五种模式下的打包数据并进行解包处理,得到在第五种模式下的累加结果并发送给所述可重构计算模块;所述可重构计算模块对累加结果和卷积结果同时进行累加计算得到第三个特征图数据发送给所述存储控制模块;所述存储控制模块将所述第三个特征图数据存入第三个特征图存储器中;
第二个全连接层计算:
在第一种模式下,所述存储控制模块从所述第三个特征图存储器中读取所述第三特征图数据分别发送给所述激活函数模块用于激活函数计算,得到激活结果后发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述激活结果进行卷积计算,得到第一初步结果发送给所述激活函数模块用于激活函数计算,得到第一最终结果发送给所述存储控制模块;所述存储控制模块将所述第一最终结果写入所述结果存储器中;所述输出处理模块对所述激活结果进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第二初步结果发送给所述激活函数模块用于激活函数计算,得到第二最终结果发送给所述输出处理模块;所述输出处理模块对所述第二最终结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第三初步结果发送给所述激活函数模块用于激活函数计算,得到第三最终结果发送给所述输出处理模块;所述输出处理模块对所述第三最终结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述输入处理模块依次接收在第二种模式下和在第四种模式下的打包数据并进行解包处理,得到所述第二最终结果和所述第三最终结果并发送给所述存储控制模块;所述存储控制模块依次将所述第二最终结果和所述第三最终结果写入所述结果存储器中。
2.一种基于多播片上网络的卷积神经网络硬件加速器的工作方式,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特征是:所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;
所述工作方式是按如下步骤进行:
步骤1、配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式;
步骤2、所述卷积神经网络硬件加速器进行第一个卷积层计算:
步骤2.1、在第一种模式下,所述卷积神经网络硬件加速器获取目标图数据并进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤2.2、在第二种模式下,所述卷积神经网络硬件加速器对所述目标图数据进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤3、所述卷积神经网络硬件加速器进行第二个卷积层计算:
步骤3.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.3、在第三种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤3.4、在第四种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤4、所述卷积神经网络硬件加速器进行第一个全连接层计算:
步骤4.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.3、在第三种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.4、在第四种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.5、在第五种模式下,所述卷积神经网络硬件加速器对所述第二种模式下、第三种模式下和第四种模式下的卷积结果进行累加计算得到累加结果;
步骤4.6、在第一种模式下,所述卷积神经网络硬件加速器对在第五种模式下的累加结果进行累加计算得到第三个特征图数据;
步骤5、所述卷积神经网络硬件加速器进行第二个全连接层计算:
步骤5.1、在第一种模式下,所述卷积神经网络硬件加速器对第三特征图数据进行激活函数计算后得到激活结果,再对所述激活结果进行卷积计算,得到第一初步结果,最后对所述第一初步结果进行激活函数计算,得到第一最终结果并存储;
步骤5.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第二初步结果,再多所述第二初步结果进行激活函数计算,得到第二最终结果;
步骤5.3、在第四种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第三初步结果,再多所述第三初步结果进行激活函数计算,得到第三最终结果;
步骤5.4、在第一种模式下,所述卷积神经网络硬件加速器存储所述在第二种模式下和在第四种模式下的第二最终结果和第三最终结果。