Systolic arrays are commonly used to implement fast linear-algebra computations. See this paper for an overview on systolic arrays.
The systolic array frontend lives in the systolic-lang folder in the Calyx repository and generates systolic arrays that can perform matrix multiplies.
gen-systolic.py contains the entire program required to generate
systolic arrays. In order to generate an 8 X 8 systolic array, run:
./frontends/systolic-lang/gen-systolic.py -tl 8 -td 8 -ll 8 -ld 8
Install the calyx-py library.
The command line options configure the dimensions of the generated systolic array. There are no other properties of the systolic array that can be configured.
--left-length: The length of top and left sides of the systolic array.
--left-depth: The length of the input streams from top and left sides of the array.
--post-op: Specify the post operation to be performed on the result of the matrix-multiply.
--fixed-dim: Generate systolic array that only processes matrices with the given sizes. The default strategy supports matrices with any contraction dimension.