Search papers, labs, and topics across Lattice.
This paper introduces SegFold, a novel SpGEMM accelerator that employs fine-grained dynamic scheduling to enhance data reuse and load balance in sparse matrix-matrix multiplication. By implementing dynamic remapping of partially completed work and optimizing memory access patterns, SegFold achieves significant performance improvements. The results show a geometric mean speedup of 1.95x over existing SpGEMM accelerators and 5.3x over the best static dataflow configuration, highlighting the advantages of dynamic dataflow in computational efficiency.
Dynamic scheduling in SegFold unlocks nearly 2x speedup over traditional SpGEMM accelerators by optimizing data reuse and load balance.
Generalized sparse matrix-matrix multiplication (SpGEMM) is critical in many domains. Existing CPUs and GPUs, as well as specialized accelerators, rely on static dataflows (e.g., inner product, outer product, Gustavson, etc.). Each static dataflow sacrifices some data reuse opportunities and imposes constraints on load balance. To address this inefficiency, we extend the typical SpGEMM dataflows by considering dynamism. Specifically, we add fine-grained dynamic scheduling to optimize reuse and reduce resource contention. We also develop dynamic remapping of partially completed work to improve load balance and parallelism. These ideas are formalized into a specific dataflow called Segment. To demonstrate Segment, we codesign a SpGEMM accelerator called SegFold. SegFold includes a memory controller that identifies fine-grained reuse opportunities in a local window of the stationary input array and exploits them through dynamic work assignment. It also incorporates a merge network that routes inputs to appropriate processing elements (PEs) for computation while dynamically remapping the work assigned to each PE to balance load. Across diverse densities and matrix sizes, SegFold achieves a geometric-mean $1.95\times$ speedup over state-of-the-art SpGEMM accelerators and $5.3\times$ over the best static dataflow configuration, demonstrating that adding dynamism to the dataflow design space unlocks reuse and load-balance gains that no static scheduling choice can achieve in isolation.