【爱集微点评】地平线公开的用于多处理单元的数据协同处理装置及方案,实现了在多个处理单元执行神经网络的运算任务期间,自动对各个运算阶段进行协同,从而提高了神经网络运算的效率。
集微网消息,异构多核处理器是由主处理器和加速器两种体系结构处理器搭建而成的计算机系统。通过协调地使用性能、结构各异的处理单元,能够满足不同的计算需求,以获取最大总体性能方式完成加速计算。而神经网络由于结构复杂,数据计算量大。因此,可以设计专门用于神经网络计算的神经网络加速处理单元。
集成在同一芯片内的多个神经网络加速处理单元可以并行地执行同一神经网络的计算任务,从而提高神经网络运算的速度。多个神经网络加速处理单元在对同一帧数据进行处理时,可以将对该帧的处理任务划分为多个处理阶段,各阶段之间需要由CPU与多个神经网络加速处理单元通过发送指令完成各神经网络加速处理单元的协调运行。
因此,为了提高神经网络运算的效率,地平线在2022年3月8日申请了一项名为“用于多处理单元的数据协同处理方法及装置”的发明专利(申请号:202210227643.4),申请人为北京地平线机器人技术研发有限公司。
根据该专利目前公开的相关资料,让我们一起来看看这项技术方案吧。
如上图,为该专利中公开的神经网络加速处理单元的系统示意图,该系统架构由第一处理单元101、第二处理单元102、主处理单元103和共享内存104组成,这四个组件可以集成在一个芯片中,也可以设置于不同的芯片以及电路板中,并且芯片和电路板之间可以建立数据通信的链路。
第一处理单元和第二处理单元用于进行神经网络的计算,第一处理单元和第二处理单元可以协同地运行同一神经网络的不同部分,以对同一帧数据进行处理。且两两之间可以建立通信连接,向其他处理单元发送提示本次运算结束的第一信号和表示其他处理单元本次运算结束的第二信号。
主处理单元可以对第一处理单元和第二处理单元的运算过程进行管理。例如,向第一处理单元和第二处理单元发送各种指令(指示两个处理单元启动神经网络运算的指令、指示结束运算的指令等),以及接收两个处理单元的通知。
共享内存用于存储第一处理单元和第二处理单元输出的运算结果数据,还可以存储待处理的原始数据、神经网络的参数等。第一处理单元和第二处理单元可以从共享内存中读取待运算的数据,并将运算结果存入共享内存中。主处理单元可以从共享内存中读取两个处理单元输出的运算结果数据。
如上图,为该专利中公开的用于多处理单元的数据协同处理方法的流程示意图。首先,系统通过多处理单元中的第一处理单元对预设的神经网络中的目标子网络对应的第一组数据进行运算,得到运算结果数据。神经网络中的各个子网络通常是按照一定的顺序依次执行运算任务,根据该顺序,当前即将运行的子网络即为目标子网络。
其次,生成用于向多处理单元包括的第二处理单元发送提示本次运算结束的第一信号,第一处理单元可以通过与第二处理单元之间的连线直接发送第一信号。第一信号可以为各种形式的信号,例如高低电平信号,数字信号等。
最后,检测第二处理单元中的每个处理单元生成的表示每个处理单元对目标子网络对应的第二组数据运算结束的第二信号。并基于目标子网络在神经网络中的位置,生成用于指示第一处理单元进一步针对神经网络的操作的指令。
如上图,为上述用于多处理单元的数据协同处理方法的第一连线和第二连线的结构示意图。可以看到,第一处理单元通过第一连线4011、4012与第二处理单元1021、1022连接,并且通过第二连线4021、4022与第二处理单元连接。
当第一处理单元利用第一组数据执行目标子网络的运算任务结束后,将第一连线上的电平置高(即第一电平)。若此时检测到第二连线上的电平为低,则等待,直到检测到第二连线上的电平均为表示第二信号的高电平,则确定第二处理单元利用分别对应的第二组数据执行目标子网络的运算任务结束。
以上就是地平线公开的用于多处理单元的数据协同处理装置及方案,该方案实现了在多个处理单元执行神经网络的运算任务期间,自动对各个运算阶段进行协同,从而提高了神经网络运算的效率。