US 12,277,421 B2
Message-based processing with assignment of neural network layers to processor clusters
Lennart Bamberg, Hamburg (DE)
Assigned to Snap Inc., Santa Monica, CA (US)
Appl. No. 18/017,538
Filed by Snap Inc., Santa Monica, CA (US)
PCT Filed Jul. 23, 2021, PCT No. PCT/EP2021/070666
§ 371(c)(1), (2) Date Jan. 23, 2023,
PCT Pub. No. WO2022/018261, PCT Pub. Date Jan. 27, 2022.
Claims priority of application No. 20187770 (EP), filed on Jul. 24, 2020.
Prior Publication US 2023/0266974 A1, Aug. 24, 2023
Int. Cl. G06F 9/38 (2018.01); G06F 9/355 (2018.01); G06F 15/78 (2006.01)
CPC G06F 9/3877 (2013.01) [G06F 9/3555 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A message based multi-processor system comprising:
a message exchange network; and
a plurality of processor clusters to mutually exchange messages via the message exchange network, wherein each processor cluster comprises:
one or more processor cluster elements, and
a message generator;
wherein the message based multi-processor system is configured or configurable as a neural network processor system having a plurality of neural network processing layers, where each neural network processing layer is assigned one or more processor clusters of the plurality of processor clusters with associated processor cluster elements of the processor clusters being neural network processing elements;
wherein the message generator of each processor cluster associated with a neural network processing layer of the plurality of neural network processor layers comprises:
a logic module, and
an associated message generator control storage space comprising respective message generation control data for respective destination processor clusters in a set of destination processor clusters,
wherein the logic module of the message generator is configured to:
perform, in response to an activation signal of a processor cluster element, a respective computation using the message generation control data for each destination processor cluster in the set of destination processor clusters and one or more coordinate values of the processor cluster element associated with the activation signal to:
determine a destination range for the destination processor cluster comprising, for at least one coordinate, a minimum coordinate value and a maximum coordinate value, and
determine whether the destination processor cluster is a target of the processor cluster element based on whether, for each of the at least one coordinate, at least one of the minimum coordinate value or the maximum coordinate value of the destination range is within a corresponding range spanned by the destination processor cluster, and
selectively generate and transmit an output message to each destination processor cluster that was determined as a target by the respective computation.