PIPELINED COMPUTE-IN-MEMORY ARCHITECTURES
A compute tile is described. The compute tile includes at least one general-purpose processor, a compute tile memory, compute engines, and weight memories corresponding to the compute engines. Each of the compute engines includes a compute-in-memory (CIM) hardware module. The CIM hardware module include storage cells and compute logic coupled with the storage cells. Each of the compute engines is configured to perform a vector-matrix multiplication of an input vector and weights stored in at least one of the storage cells or at least one of the weight memories.
1 . A compute tile, comprising:
at least one general-purpose (GP) processor;
a compute tile memory;
a plurality of compute engines, each of the plurality of compute engines including a compute-in-memory (CIM) hardware module, the CIM hardware module including a plurality of storage cells and compute logic coupled with the plurality of storage cells; and
a plurality of weight memories corresponding to the plurality of compute engines;
wherein each of the plurality of compute engines is configured to perform a vector-matrix multiplication (VMM) of an input vector and a plurality of weights stored in at least one of the plurality of storage cells or at least one of the plurality of weight memories.
2 . The compute tile of claim 1 , wherein each of the plurality of compute engines is further configured to load a second plurality of weights into at least one of the plurality of storage cells from at least one of the plurality of weight memories.
3 . The compute tile of claim 2 , wherein each of the plurality of compute engines is configured to perform the VMM and load the second plurality of weights in parallel.
4 . The compute tile of claim 1 , wherein the plurality of compute engines includes at least one adder tree.
5 . The compute tile of claim 4 , wherein the at least one adder tree is an approximate adder tree.
6 . The compute tile of claim 4 , wherein the at least one adder tree is shared amongst at least one of the plurality of compute engines.
7 . The compute tile of claim 1 , wherein the plurality of compute engines includes a plurality of fused multiplex and multiply (FMM) units.
8 . The compute tile of claim 7 , wherein the plurality of FMM units are merged with at least one adder tree.
9 . The compute tile of claim 1 , wherein a word line is shared amongst at least one of the plurality of storage cells.
10 . The compute tile of claim 1 , wherein a bit line is shared amongst at least one of the plurality of storage cells.
11 . The compute tile of claim 1 , wherein the input vector comprises an input matrix.