Back to results
US 12,223,291 B2Granted
Matrix multiplication engines
AssigneeMemryX Incorporated
InventorsFan-hsuan Meng, Mohammed Zidan, Zhengya Zhang, Wei Lu
Life of this patent
Estimating the term…
Abstract
A matrix multiplication engine can include a plurality of processing elements configured to compute a matrix dot product as a summation of a sequence of vector-vector outer-products.
Claims17
A computing device comprising:
- one or more memories configured to store a first matrix and a second matrix;
- and
- an array of processing elements, wherein each processing element includes;
- a first register to receiving corresponding columns of the first matrix from the one or more memories;
- a second register to receive corresponding rows of the second matrix from the one or more memories;
- a multiplication unit to compute a partial product for a vector-vector outer-products of corresponding element values of the first matrix for each corresponding column of the first matrix in the first register and the corresponding element values of the second matrix for each corresponding row of the second matrix in the second register;
- and
- a summation unit to accumulate the partial products for the vector-vector outer-products of the corresponding element values of the first matrix for each corresponding column of the first matrix and the corresponding element values of the second matrix for each corresponding row of the second matrix;
- wherein the array of processing elements are configured to generate a third matrix of the accumulated partial products of the corresponding element values of the corresponding columns of the first matrix and corresponding rows of the second matrix from the summation unit as the partial product of the vector-vector-outer-products of
- C
- =
- ∑
- k
- =
- 1
- N
- A
- k
- ⊗
- B
- k
- ,
- A
- k
- .
22 more elements
A processor comprising:
- a plurality of processing elements configured to receive corresponding columns of a first matrix into first registers of corresponding processing elements and corresponding rows of a second matrix into second registers of corresponding processing elements and compute a matrix dot product of the first and second matrices as a summation of a sequence of parallel computed vector-vector outer-products according to
- C
- =
- ∑
- k
- =
- 1
- N
- A
- k
- ⊗
- B
- k
- ,
- A
- k
- .
14 more elements
A computing device implemented method of computing a matrix-matrix dot product comprising:
- iteratively loading element values of corresponding columns of a first matrix from memory into a first register of corresponding processing elements of an array of processing elements and corresponding rows of a second matrix from memory into a second register of the corresponding processing elements of the array of processing elements;
- computing partial products of a vector-vector outer-products of element values by the corresponding processing elements in parallel for each iteration of the corresponding columns of the first matrix and the corresponding rows of the second matrix;
- and
- computing a sum of the partial products by the corresponding processing elements for the corresponding columns of the first matrix and the corresponding rows of the second matrix of the vector-vector outer-products of
- C
- =
- ∑
- k
- =
- 1
- N
- A
- k
- ⊗
- B
- k
- ,
- A
- k
- .
17 more elements
Dependencies are inferred from the claim text.