Matrix Computation Engine
AssigneeApple Inc.
InventorsEric Bainville, Tal Uliel, Erik Norden, Jeffry E. Gonion, Ali Sazegari
Life of this patent
Estimating the term…
Abstract
In an embodiment, a matrix computation engine is configured to perform matrix computations (e.g. matrix multiplications). The matrix computation engine may perform numerous matrix computations in parallel, in an embodiment. More particularly, the matrix computation engine may be configured to perform numerous multiplication operations in parallel on input matrix elements, generating resulting matrix elements. In an embodiment, the matrix computation engine may be configured to accumulate results in a result memory, performing multiply-accumulate operations for each matrix element of each matrix.
Claims20
An apparatus comprising:
- a processor configured to fetch a first instruction;
- and
- a computation engine coupled to the processor, wherein:
- the computation engine comprises at least two input memories configured to store input vectors of elements and an output memory configured to accumulate an output vector of elements;
- and
- the computation engine comprises a multiply accumulation (MAC) circuit coupled to the at least two input memories and configured to perform a multiply-accumulate on the input vectors of elements responsive to the first instruction, generating the output vector of elements for the output memory, wherein the MAC circuit is configured to perform multiplications on elements having a first size;
- the computation engine comprises a lookup table programmed to map first elements of a second size less than the first size to second elements of the first size, wherein the first elements are provided from at least one of the input memories, and wherein the second elements are provided to the MAC circuit.
A matrix computation engine comprising:
- a circuit configured to perform a matrix multiplication operation on a first vector operand and a second vector operand, producing a resulting output vector;
- wherein the circuit is configured to operate on matrix elements having a second size greater than a first size;
- and
- the matrix computation engine includes a lookup table to map first matrix elements having the first size to second matrix elements having the second size, wherein the second matrix elements are provided as the first vector operand.
A method comprising:
- reading a first vector of first elements from a first operand memory in a computation engine, the first elements having a first size;
- using a lookup table in the computation engine to map each of the elements of the first vector to second elements having a second size greater than the first size, wherein the second elements form a second vector;
- and
- performing multiply-accumulate operations on the second vector of second elements and a third vector of third elements.
Dependencies are inferred from the claim text.