Executing distributed memory operations using processing elements connected by distributed channels
AssigneeIntel Corporation
InventorsBushra Ahsan, Michael C. Adler, Neal C. Crago, Joel S. Emer, Aamer Jaleel, Angshuman Parashar, Michael I. Pellauer
Life of this patent
Estimating the term…
Abstract
A technology for implementing a method for distributed memory operations. A method of the disclosure includes obtaining distributed channel information for an algorithm to be executed by a plurality of spatially distributed processing elements. For each distributed channel in the distributed channel information, the method further associates one or more of the plurality of spatially distributed processing elements with the distributed channel based on the algorithm.
Claims24
An apparatus comprising:
- a first memory;
- a processor coupled to the first memory;
- and
- a spatial processing unit coupled to the first memory, the spatial processing unit comprising:
- a second memory,
- a plurality of distributed processing elements coupled together according to an algorithm mapped onto the plurality of distributed processing elements,
- a plurality of distributed channels of an interconnection network to connect the plurality of distributed processing elements to memory ports of the second memory, and
- a distributed channel circuit to:
- associate a first distributed channel of the plurality of distributed channels with a first distributed processing element of the plurality of distributed processing elements based on distributed channel information for the algorithm, wherein the first distributed channel is a first type of channel for load requests to the second memory,
- associate a second distributed channel of the plurality of distributed channels with a second distributed processing element of the plurality of distributed processing elements based on the distributed channel information for the algorithm, wherein the second distributed channel is a second type of channel for store requests to the second memory,
- allocate a first memory port of the second memory for the first distributed channel, and
- allocate a second memory port of the second memory for the second distributed channel.
A method comprising:
- coupling a plurality of distributed processing elements of a spatial processing unit together according to an algorithm mapped onto the plurality of distributed processing elements;
- configuring a first distributed processing element of the plurality of distributed processing elements to generate load requests for the algorithm to a memory of the spatial processing unit;
- configuring a second distributed processing element of the plurality of distributed processing elements to generate store requests for the algorithm to the memory;
- associating a first distributed channel of a plurality of distributed channels with the first distributed processing element of the plurality of distributed processing elements based on distributed channel information for the algorithm, wherein the first distributed channel is a first type of channel for load requests to the memory;
- associating a second distributed channel of the plurality of distributed channels with the second distributed processing element of the plurality of distributed processing elements based on the distributed channel information for the algorithm, wherein the second distributed channel is a second type of channel for store requests to the memory;
- allocating a first memory port of the memory for the first distributed channel;
- allocating a second memory port of the memory for the second distributed channel;
- sending load requests for the memory, generated by execution of the first distributed processing element, to the first distributed channel;
- and
- sending store requests for the memory, generated by execution of the second distributed processing element, to the second distributed channel.
A non-transitory machine readable medium that stores program code that when executed by a machine causes the machine to perform a method comprising:
- coupling a plurality of distributed processing elements of a spatial processing unit together according to an algorithm mapped onto the plurality of distributed processing elements;
- configuring a first distributed processing element of the plurality of distributed processing elements to generate load requests for the algorithm to a memory of the spatial processing unit;
- configuring a second distributed processing element of the plurality of distributed processing elements to generate store requests for the algorithm to the memory;
- associating a first distributed channel of a plurality of distributed channels with the first distributed processing element of the plurality of distributed processing elements based on distributed channel information for the algorithm, wherein the first distributed channel is a first type of channel for load requests to the memory;
- associating a second distributed channel of the plurality of distributed channels with the second distributed processing element of the plurality of distributed processing elements based on the distributed channel information for the algorithm, wherein the second distributed channel is a second type of channel for store requests to the memory;
- allocating a first memory port of the memory for the first distributed channel;
- allocating a second memory port of the memory for the second distributed channel;
- sending load requests for the memory, generated by execution of the first distributed processing element, to the first distributed channel;
- and
- sending store requests for the memory, generated by execution of the second distributed processing element, to the second distributed channel.
Dependencies are inferred from the claim text.