Search papers, labs, and topics across Lattice.
Prism introduces a symbolic superoptimizer for tensor programs based on a novel symbolic graph (sGraph) representation that compactly encodes families of programs. It performs a two-level search, constructing symbolic graphs and then instantiating them, enabling pruning of suboptimal regions via symbolic reasoning. Experiments on LLM workloads demonstrate Prism achieves up to 2.2x speedup over existing superoptimizers and 4.9x over compiler-based approaches, while also reducing optimization time.
Tensor program optimization just got a whole lot faster: Prism achieves up to 2.2x speedup over existing superoptimizers while *also* reducing end-to-end optimization time.
This paper presents Prism, the first symbolic superoptimizer for tensor programs. The key idea is sGraph, a symbolic, hierarchical representation that compactly encodes large classes of tensor programs by symbolically representing some execution parameters. Prism organizes optimization as a two-level search: it constructs symbolic graphs that represent families of programs, and then instantiates them into concrete implementations. This formulation enables structured pruning of provably suboptimal regions of the search space using symbolic reasoning over operator semantics, algebraic identities, and hardware constraints. We develop techniques for efficient symbolic graph generation, equivalence verification via e-graph rewriting, and parameter instantiation through auto-tuning. Together, these components allow Prism to bridge the rigor of exhaustive search with the scalability required for modern ML workloads. Evaluation on five commonly used LLM workloads shows that Prism achieves up to $2.2\times$ speedup over best superoptimizers and $4.9\times$ over best compiler-based approaches, while reducing end-to-end optimization time by up to $3.4\times$.