Memory organization for matrix processing
AssigneeFacebook, Inc.
InventorsKrishnakumar Narayanan Nair, Ehsan Khish Ardestani Zadeh, Olivia Wu, Yuchen Hao
Life of this patent
Estimating the term…
Abstract
A system comprises a memory, a plurality of memory banks, and an organizer. The memory is configured to store elements of a matrix, wherein the elements are distributed into overlapping subgroups and each shares at least one element of the matrix with another overlapping subgroup. The plurality of memory banks is configured to store the overlapping subgroups, wherein the subgroups are distributed among the memory banks using a circular shifted pattern. The organizer is configured to read specific ones of the overlapping subgroups in the plurality of memory banks in a specified pattern associated with transposing the matrix.
Claims20
A system, comprising:
- a memory configured to store elements of a matrix, wherein the elements of the matrix are distributed into overlapping subgroups and each of the overlapping subgroups shares at least one element of the matrix with another overlapping subgroup in the overlapping subgroups;
- a plurality of memory banks configured to store the overlapping subgroups, wherein the overlapping subgroups are distributed among the memory banks using a circular shifted pattern;
- and
- an organizer configured to read specific ones of the overlapping subgroups in the plurality of memory banks in a specified pattern associated with transposing the matrix.
A method comprising:
- distributing elements of a matrix into overlapping subgroups, wherein each of the overlapping subgroups shares at least one element of the matrix with another overlapping subgroup in the overlapping subgroups;
- storing the overlapping subgroups in a memory;
- distributing the overlapping subgroups in the memory to a plurality of memory banks configured to store the overlapping subgroups using a circular shifter pattern;
- and
- reading specific ones of the overlapping subgroups in the plurality of memory banks in a specified pattern associated with transposing the matrix.
A system, comprising:
- a shared memory storing a matrix;
- and
- a plurality of processing elements configured to operate in parallel, wherein each processing element includes:
- a matrix processor unit, including a plurality of calculation units, wherein each of the plurality of calculation units includes a vector multiply unit and a vector adder unit;
- a weight input vector unit;
- and
- a data input vector unit, including:
- a staging memory unit configured to store elements of the matrix stored in the shared memory, wherein the elements of the matrix are distributed into overlapping subgroups and each of the overlapping subgroups shares at least one element of the matrix with another overlapping subgroup in the overlapping subgroups;
- a plurality of memory banks configured to store the overlapping subgroups, wherein the overlapping subgroups are distributed among the memory banks using a circular shifted pattern;
- and
- an organizer configured to read specific ones of the overlapping subgroups in the plurality of memory banks in a specified pattern associated with transposing the matrix.
Dependencies are inferred from the claim text.