From Language to Silicon: Programming Systems for Sparse Accelerators
In this era of specialization, modern hardware development has focused on domain-specific accelerator design due to the plateau in technology scaling combined with a continual need for performance. However, domain-specific programming systems for these accelerators require extreme engineering effort, and their complexity has largely caused them to lag behind. Fundamentally, the widespread usability, proliferation, and democratization of domain-specific accelerators hinge on their programming systems, especially when targeting new domains.This talk presents research on accelerator programming systems for the emerging domain of sparsity targeting emerging sparse accelerators. The first system, the Sparse Abstract Machine (SAM), introduces a unified abstract machine model and compiler abstraction for sparse dataflow accelerators. SAM defines a novel streaming representation and abstract dataflow interfaces that serve as an abstraction to decouple sparse accelerator implementations from their programs, similar to a stable ISA for dataflow. The second system, Mosaic, introduces modular and portable compilation solutions across different sparse accelerators and high-performance systems. These systems are a first step towards usable and programmable heterogeneous hardware acceleration for all. I will conclude by discussing the next steps to reach this goal, which include programming systems for accelerators in other domains and interoperation between accelerators across domains.