arXiv Science⌕ Search

arXiv · 2610.24326

MAC units for a 2x2 int8 systolic array on Tiny Tapeout

Abstract

We take the multiply-accumulate (MAC) unit of an open-source 2$\times$2 int8 systolic array taped out on Tiny Tapeout (GF180 process) and propose two replacements. The first one, \emph{hybrid}, uses a different arithmetic structure for each row of the array. It reduces the logic area of one MAC unit by 4--6\% and of the whole chip by 0.7--3.2\% after place and route. The second one, \emph{fused\_eq}, never builds the long carry chain of the accumulation. It shortens the critical path by 20\% for one MAC unit and by 14\% for the whole chip. All numbers come from the standard Tiny Tapeout flow (LibreLane) run in GitHub Actions. Correctness is checked by exhaustive simulation of all $2^{24}$ inputs, a formal equivalence proof, and the original test bench.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Danila Gorodecky. 2026-10-16. MAC units for a 2x2 int8 systolic array on Tiny Tapeout. https://arxiv.org/abs/2610.24326

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

DaPPA: A Unified Data-Parallel Programming Framework for Efficient Processing-in-Memory Execution

Processing-in-memory (PIM) alleviates data-movement bottlenecks by placing computation near or inside memory. Two general-purpose PIM paradigms are now practical: processing-near-memory (PNM) and processing-using-memory (PUM). Although both target regular, data-intensive, data-parallel workloads, they remain difficult to program because data organization is tightly coupled to computation and differs across substrates. Thus, programmers must manually manage substrate-specific data partitioning, movement, layout, and tiling, preventing program portability across PIM systems. We propose DaPPA (data-parallel processing-in-memory architecture), a programming framework that exposes a single high-level data-parallel pattern interface and retargets it to multiple PIM substrates. The key idea of DaPPA is to decouple the expression of data parallelism from substrate-specific data organization: programmers express computation once using data-parallel patterns and a dataflow interface, while specialized backends automatically generate data orchestration for PNM and multi-level tiling for PUM. We evaluate DaPPA on representative substrates from both PIM paradigms. On the UPMEM PNM system, DaPPA outperforms hand-tuned implementations by 1.6x on average with 95% fewer lines-of-code, and outperforms the state-of-the-art SimplePIM framework by 1.4x on average with 62% fewer lines-of-code. On a SIMDRAM-like PUM substrate, DaPPA outperforms the state-of-the-art MIMDRAM compiler by 2.0x on average (up to 6.4x) across 12 workloads. DaPPA can deploy all ten of our PNM workloads, whereas CINM, the closest framework targeting both paradigms, can deploy only three, on which DaPPA is 2.7--6.8x faster. We open-source DaPPA at https://github.com/CMU-SAFARI/DaPPA.

cs.AR↗

GRAU: A Generic Runtime-Reconfigurable Activation-Requantization Unit for Quantized Neural Network Accelerators

As neural networks continue to scale, low-precision quantization is widely adopted in edge accelerators, but conventional multi-threshold activation hardware requires 2^n-1 thresholds for n-bit integer outputs, leading to rapidly increasing hardware costs. We propose GRAU, a Generic Runtime-Reconfigurable Activation-Requantization Unit that fuses batch normalization, nonlinear activation, and requantization through piecewise-linear fitting with Power-of-Two slopes. GRAU requires only basic comparators and 1-bit right shifters, while supporting mixed-precision quantization and runtime switching among post-accumulation functions, including modern nonlinear activations such as SiLU and GELU. Compared with multi-threshold activation-requantization units, GRAU reduces LUT consumption by approximately 90% or more while improving hardware efficiency, flexibility, and scalability. We further explore the trade-off between accuracy and hardware cost across different approximation settings and provide an open-source toolchain for GRAU-aware network training.

cs.AR↗

Exposing Embedded Matrix Multiplication with polyhedral transformations for CGRA compilation

Matrix-matrix multiplication (mmul) is a dominant computing pattern in edge workloads, but in real applications it is often embedded within larger affine programs and intertwined with other operations. Coarse-Grained Reconfigurable Arrays (CGRAs) can flexibly and efficiently support it, since they combine operation-level reconfigurability and high energy efficiency. However, mapping computational kernels that include mmul with state-of-the-art compilation strategies often leads to suboptimal results, since its multi-dimensional structure hampers the uncovering of its inherent parallelism and, ultimately, runtime performance. This paper presents Kernel-CGRA, a compiler flow that uses polyhedral transformations to expose legal affine mmul subspaces, lower each accepted region to a back-end-independent operation, and preserve the surrounding computation in the generic CDFG path. For CGRA execution, the operation is instantiated as a parametric output-stationary kernel, while residual regions are reconnected through context generation and live-value preservation. The matcher is intentionally strict: only regions proven to match the supported affine mmul form are rewritten. Across canonical, fused, and application-level benchmarks, Kernel-CGRA achieves runtime speedups of up to 10.2x over state-of-the-art CGRA CDFG compilation with modulo scheduling and loop unrolling.

cs.AR↗