Skip to main content

Showing 1–26 of 26 results for author: Tatlock, Z

Searching in archive cs. Search in all archives.
.
  1. arXiv:2404.00786  [pdf, ps, other

    cs.AR cs.PL

    There and Back Again: A Netlist's Tale with Much Egraphin'

    Authors: Gus Henry Smith, Zachary D. Sisco, Thanawat Techaumnuaiwit, **gtao Xia, Vishal Canumalla, Andrew Cheung, Zachary Tatlock, Chandrakana Nandi, Jonathan Balkind

    Abstract: EDA toolchains are notoriously unpredictable, incomplete, and error-prone; the generally-accepted remedy has been to re-imagine EDA tasks as compilation problems. However, any compiler framework we apply must be prepared to handle the wide range of EDA tasks, including not only compilation tasks like technology map** and optimization (the "there"} in our title), but also decompilation tasks like… ▽ More

    Submitted 31 March, 2024; originally announced April 2024.

  2. arXiv:2403.03481  [pdf, other

    cs.CL

    Magic Markup: Maintaining Document-External Markup with an LLM

    Authors: Edward Misback, Zachary Tatlock, Steven L. Tanimoto

    Abstract: Text documents, including programs, typically have human-readable semantic structure. Historically, programmatic access to these semantics has required explicit in-document tagging. Especially in systems where the text has an execution semantics, this means it is an opt-in feature that is hard to support properly. Today, language models offer a new method: metadata can be bound to entities in chan… ▽ More

    Submitted 6 March, 2024; originally announced March 2024.

    Comments: 10 pages; 2 figures; to be published in the <Programming> 2024 Conference Companion

  3. FPGA Technology Map** Using Sketch-Guided Program Synthesis

    Authors: Gus Henry Smith, Ben Kushigian, Vishal Canumalla, Andrew Cheung, Steven Lyubomirsky, Sorawee Porncharoenwase, René Just, Gilbert Louis Bernstein, Zachary Tatlock

    Abstract: FPGA technology map** is the process of implementing a hardware design expressed in high-level HDL (hardware design language) code using the low-level, architecture-specific primitives of the target FPGA. As FPGAs become increasingly heterogeneous, achieving high performance requires hardware synthesis tools that better support map** to complex, highly configurable primitives like digital sign… ▽ More

    Submitted 29 January, 2024; originally announced January 2024.

  4. arXiv:2305.10599  [pdf, other

    cs.HC cs.PL math.NA

    Odyssey: An Interactive Workbench for Expert-Driven Floating-Point Expression Rewriting

    Authors: Edward Misback, Caleb C. Chan, Brett Saiki, Eunice Jun, Zachary Tatlock, Pavel Panchekha

    Abstract: In recent years, researchers have proposed a number of automated tools to identify and improve floating-point rounding error in mathematical expressions. However, users struggle to effectively apply these tools. In this paper, we work with novices, experts, and tool developers to investigate user needs during the expression rewriting process. We find that users follow an iterative design process.… ▽ More

    Submitted 9 August, 2023; v1 submitted 17 May, 2023; originally announced May 2023.

    Comments: 15 pages, 7 figures, 3 tables

  5. arXiv:2305.09580  [pdf, other

    cs.PL cs.AR

    Generate Compilers from Hardware Models!

    Authors: Gus Henry Smith, Ben Kushigian, Vishal Canumalla, Andrew Cheung, René Just, Zachary Tatlock

    Abstract: Compiler backends should be automatically generated from hardware design language (HDL) models of the hardware they target. Generating compiler components directly from HDL can provide stronger correctness guarantees, ease development effort, and encourage hardware exploration. Past work has already championed this idea; here we argue that advances in program synthesis make the approach more feasi… ▽ More

    Submitted 16 May, 2023; originally announced May 2023.

    Comments: 3 pages, 2 figures, to be presented at the 2023 PLARCH Workshop at FCRC

  6. arXiv:2304.04332  [pdf, other

    cs.PL

    Better Together: Unifying Datalog and Equality Saturation

    Authors: Yihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao, Philip Zucker, Eli Rosenthal, Zachary Tatlock, Max Willsey

    Abstract: We present egglog, a fixpoint reasoning system that unifies Datalog and equality saturation (EqSat). Like Datalog, it supports efficient incremental execution, cooperating analyses, and lattice-based reasoning. Like EqSat, it supports term rewriting, efficient congruence closure, and extraction of optimized terms. We identify two recent applications--a unification-based pointer analysis in Datal… ▽ More

    Submitted 15 May, 2023; v1 submitted 9 April, 2023; originally announced April 2023.

    Comments: PLDI 2023

  7. babble: Learning Better Abstractions with E-Graphs and Anti-Unification

    Authors: David Cao, Rose Kunkel, Chandrakana Nandi, Max Willsey, Zachary Tatlock, Nadia Polikarpova

    Abstract: Library learning compresses a given corpus of programs by extracting common structure from the corpus into reusable library functions. Prior work on library learning suffers from two limitations that prevent it from scaling to larger, more complex inputs. First, it explores too many candidate library functions that are not useful for compression. Second, it is not robust to syntactic variation in… ▽ More

    Submitted 8 December, 2022; originally announced December 2022.

    Comments: POPL 2023

  8. arXiv:2209.03398  [pdf, other

    cs.PL

    Small Proofs from Congruence Closure

    Authors: Oliver Flatt, Samuel Coward, Max Willsey, Zachary Tatlock, Pavel Panchekha

    Abstract: Satisfiability Modulo Theory (SMT) solvers and equality saturation engines must generate proof certificates from e-graph-based congruence closure procedures to enable verification and conflict clause generation. Smaller proof certificates speed up these activities. Though the problem of generating proofs of minimal size is known to be NP-complete, existing proof minimization algorithms for congrue… ▽ More

    Submitted 7 September, 2022; originally announced September 2022.

  9. arXiv:2203.00218  [pdf, other

    cs.AR cs.PL

    Application-Level Validation of Accelerator Designs Using a Formal Software/Hardware Interface

    Authors: Bo-Yuan Huang, Steven Lyubomirsky, Yi Li, Mike He, Gus Henry Smith, Thierry Tambe, Akash Gaonkar, Vishal Canumalla, Andrew Cheung, Gu-Yeon Wei, Aarti Gupta, Zachary Tatlock, Sharad Malik

    Abstract: Ideally, accelerator development should be as easy as software development. Several recent design languages/tools are working toward this goal, but actually testing early designs on real applications end-to-end remains prohibitively difficult due to the costs of building specialized compiler and simulator support. We propose a new first-in-class, mostly automated methodology termed "3LA" to enable… ▽ More

    Submitted 22 August, 2023; v1 submitted 28 February, 2022; originally announced March 2022.

  10. arXiv:2108.10436  [pdf, other

    cs.PL

    Rewrite Rule Inference Using Equality Saturation

    Authors: Chandrakana Nandi, Max Willsey, Amy Zhu, Yisu Remy Wang, Brett Saiki, Adam Anderson, Adriana Schulz, Dan Grossman, Zachary Tatlock

    Abstract: Many compilers, synthesizers, and theorem provers rely on rewrite rules to simplify expressions or prove equivalences. Develo** rewrite rules can be difficult: rules may be subtly incorrect, profitable rules are easy to miss, and rulesets must be rechecked or extended whenever semantics are tweaked. Large rulesets can also be challenging to apply: redundant rules slow down rule-based search and… ▽ More

    Submitted 23 August, 2021; originally announced August 2021.

  11. arXiv:2108.02290  [pdf, other

    cs.DB cs.PL

    Relational E-Matching

    Authors: Yihong Zhang, Yisu Remy Wang, Max Willsey, Zachary Tatlock

    Abstract: We present a new approach to e-matching based on relational join; in particular, we apply recent database query execution techniques to guarantee worst-case optimal run time. Compared to the conventional backtracking approach that always searches the e-graph "top down", our new relational e-matching approach can better exploit pattern structure by searching the e-graph according to an optimized qu… ▽ More

    Submitted 5 January, 2022; v1 submitted 4 August, 2021; originally announced August 2021.

    Comments: POPL 2022

  12. arXiv:2107.14745  [pdf, other

    cs.GR

    Co-Optimization of Design and Fabrication Plans for Carpentry: Supplemental Material

    Authors: Haisen Zhao, Max Willsey, Amy Zhu, Chandrakana Nandi, Zachary Tatlock, Justin Solomon, Adriana Schulz

    Abstract: Past work on optimizing fabrication plans given a carpentry design can provide Pareto-optimal plans trading off between material waste, fabrication time, precision, and other considerations. However, when develo** fabrication plans, experts rarely restrict to a single design, instead considering families of design variations, sometimes adjusting designs to simplify fabrication. Jointly exploring… ▽ More

    Submitted 30 July, 2021; originally announced July 2021.

    Comments: 20 pages, 18 figure

    ACM Class: I.3; I.3.8

  13. arXiv:2107.12265  [pdf, other

    cs.GR

    Co-Optimization of Design and Fabrication Plans for Carpentry

    Authors: Haisen Zhao, Max Willsey, Amy Zhu, Chandrakana Nandi, Zachary Tatlock, Justin Solomon, Adriana Schulz

    Abstract: Past work on optimizing fabrication plans given a carpentry design can provide Pareto-optimal plans trading off between material waste, fabrication time, precision, and other considerations. However, when develo** fabrication plans, experts rarely restrict to a single design, instead considering families of design variations, sometimes adjusting designs to simplify fabrication. Jointly exploring… ▽ More

    Submitted 3 August, 2021; v1 submitted 26 July, 2021; originally announced July 2021.

    Comments: 14 pages, 13 figure, Supplemental material: arXiv:2107.14745

    ACM Class: I.3; I.3.8

  14. Pure Tensor Program Rewriting via Access Patterns (Representation Pearl)

    Authors: Gus Henry Smith, Andrew Liu, Steven Lyubomirsky, Scott Davidson, Joseph McMahan, Michael Taylor, Luis Ceze, Zachary Tatlock

    Abstract: Tensor kernels in machine learning (ML) often correspond to pure mathematical expressions, making term rewriting an attractive strategy for optimization and map** to specialized hardware accelerators. However, existing ML intermediate representations (IRs) tend to either be \textit{pure but high-level}, making low-level rewrites to hardware targets inexpressible, or \textit{low-level but impure}… ▽ More

    Submitted 19 May, 2021; originally announced May 2021.

    Comments: To be published at MAPS 2021

  15. arXiv:2006.09616  [pdf, other

    cs.LG cs.PL stat.ML

    Dynamic Tensor Rematerialization

    Authors: Marisa Kirisame, Steven Lyubomirsky, Altan Haan, Jennifer Brennan, Mike He, Jared Roesch, Tianqi Chen, Zachary Tatlock

    Abstract: Checkpointing enables the training of deep learning models under restricted memory budgets by freeing intermediate activations from memory and recomputing them on demand. Current checkpointing techniques statically plan these recomputations offline and assume static computation graphs. We demonstrate that a simple online algorithm can achieve comparable performance by introducing Dynamic Tensor Re… ▽ More

    Submitted 18 March, 2021; v1 submitted 16 June, 2020; originally announced June 2020.

    Comments: 31 pages, 12 figures, implementation available here: https://github.com/uwsampl/dtr-prototype, OpenReview: https://openreview.net/forum?id=Vfs_2RnOD0H

    ACM Class: C.3

  16. arXiv:2006.03031  [pdf, other

    cs.PL cs.LG

    Nimble: Efficiently Compiling Dynamic Neural Networks for Model Inference

    Authors: Haichen Shen, Jared Roesch, Zhi Chen, Wei Chen, Yong Wu, Mu Li, Vin Sharma, Zachary Tatlock, Yida Wang

    Abstract: Modern deep neural networks increasingly make use of features such as dynamic control flow, data structures and dynamic tensor shapes. Existing deep learning systems focus on optimizing and executing static neural networks which assume a pre-determined model architecture and input data shapes--assumptions which are violated by dynamic neural networks. Therefore, executing dynamic models with deep… ▽ More

    Submitted 12 March, 2021; v1 submitted 4 June, 2020; originally announced June 2020.

    Journal ref: In Proceedings of the 4th Conference on Machine Learning and Systems (MLSys 2021)

  17. egg: Fast and Extensible Equality Saturation

    Authors: Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, Pavel Panchekha

    Abstract: An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated theorem provers, a more recent technique known as equality saturation repurposes e-graphs to implement state-of-the-art, rewrite-driven compiler optimizations and program synthesizers. However, e-graphs remain unspecialized for this newer use… ▽ More

    Submitted 7 November, 2020; v1 submitted 6 April, 2020; originally announced April 2020.

    Comments: 25 pages, 15 figures, POPL 2021

    Journal ref: POPL 2021

  18. QED at Large: A Survey of Engineering of Formally Verified Software

    Authors: Talia Ringer, Karl Palmskog, Ilya Sergey, Milos Gligoric, Zachary Tatlock

    Abstract: Development of formal proofs of correctness of programs can increase actual and perceived reliability and facilitate better understanding of program specifications and their underlying assumptions. Tools supporting such development have been available for over 40 years, but have only recently seen wide practical use. Projects based on construction of machine-checked formal proofs are now reaching… ▽ More

    Submitted 13 March, 2020; originally announced March 2020.

    Comments: 183 pages, for errata see https://proofengineering.org/qed_errata.html

    ACM Class: F.3.1; D.2.4; I.2.3

    Journal ref: Foundations and Trends in Programming Languages, Vol. 5, No. 2-3 (Sept. 2019), pp. 102-281

  19. arXiv:2003.00290  [pdf, other

    cs.DC cs.PL

    Enumerating Hardware-Software Splits with Program Rewriting

    Authors: Gus Smith, Zachary Tatlock, Luis Ceze

    Abstract: A core problem in hardware-software codesign is in the sheer size of the design space. Without a set ISA to constrain the hardware-software interface, the design space explodes. This work presents a strategy for managing the massive hardware-software design space within the domain of machine learning inference workloads and accelerators. We first propose EngineIR, a new language for representing m… ▽ More

    Submitted 29 February, 2020; originally announced March 2020.

    Comments: Accepted in the Second Young Architect Workshop, in conjunction with ASPLOS 2020

  20. Synthesizing Structured CAD Models with Equality Saturation and Inverse Transformations

    Authors: Chandrakana Nandi, Max Willsey, Adam Anderson, James R. Wilcox, Eva Darulova, Dan Grossman, Zachary Tatlock

    Abstract: Recent program synthesis techniques help users customize CAD models(e.g., for 3D printing) by decompiling low-level triangle meshes to Constructive Solid Geometry (CSG) expressions. Without loops or functions, editing CSG can require many coordinated changes, and existing mesh decompilers use heuristics that can obfuscate high-level structure. This paper proposes a second decompilation stage to… ▽ More

    Submitted 12 April, 2020; v1 submitted 26 September, 2019; originally announced September 2019.

    Comments: 14 pages

    Journal ref: PLDI 2020

  21. arXiv:1904.08368  [pdf, other

    cs.LG cs.PL stat.ML

    Relay: A High-Level Compiler for Deep Learning

    Authors: Jared Roesch, Steven Lyubomirsky, Marisa Kirisame, Logan Weber, Josh Pollock, Luis Vega, Ziheng Jiang, Tianqi Chen, Thierry Moreau, Zachary Tatlock

    Abstract: Frameworks for writing, compiling, and optimizing deep learning (DL) models have recently enabled progress in areas like computer vision and natural language processing. Extending these frameworks to accommodate the rapidly diversifying landscape of DL models and hardware platforms presents challenging tradeoffs between expressivity, composability, and portability. We present Relay, a new compiler… ▽ More

    Submitted 24 August, 2019; v1 submitted 17 April, 2019; originally announced April 2019.

  22. Relay: A New IR for Machine Learning Frameworks

    Authors: Jared Roesch, Steven Lyubomirsky, Logan Weber, Josh Pollock, Marisa Kirisame, Tianqi Chen, Zachary Tatlock

    Abstract: Machine learning powers diverse services in industry including search, translation, recommendation systems, and security. The scale and importance of these models require that they be efficient, expressive, and portable across an array of heterogeneous hardware devices. These constraints are often at odds; in order to better accommodate them we propose a new high-level intermediate representation… ▽ More

    Submitted 25 September, 2018; originally announced October 2018.

  23. arXiv:1806.05300  [pdf, other

    cs.DC cs.SE

    A Graphical Interactive Debugger for Distributed Systems

    Authors: Doug Woos, Zachary Tatlock, Michael D. Ernst, Thomas E. Anderson

    Abstract: Designing and debugging distributed systems is notoriously difficult. The correctness of a distributed system is largely determined by its handling of failure scenarios. The sequence of events leading to a bug can be long and complex, and it is likely to include message reorderings and failures. On single-node systems, interactive debuggers enable step** through an execution of the program, but… ▽ More

    Submitted 13 June, 2018; originally announced June 2018.

  24. arXiv:1805.02436  [pdf, ps, other

    cs.PL

    Combining Tools for Optimization and Analysis of Floating-Point Computations

    Authors: Heiko Becker, Pavel Pancheckha, Eva Darulova, Zachary Tatlock

    Abstract: Recent renewed interest in optimizing and analyzing floating-point programs has lead to a diverse array of new tools for numerical programs. These tools are often complementary, each focusing on a distinct aspect of numerical programming. Building reliable floating point applications typically requires addressing several of these aspects, which makes easy composition essential. This paper describe… ▽ More

    Submitted 7 May, 2018; originally announced May 2018.

    Comments: 13 pages

  25. arXiv:1705.10416  [pdf, other

    cs.PL

    Finding Root Causes of Floating Point Error with Herbgrind

    Authors: Alex Sanchez-Stern, Pavel Panchekha, Sorin Lerner, Zachary Tatlock

    Abstract: Floating-point arithmetic plays a central role in science, engineering, and finance by enabling developers to approximate real arithmetic. To address numerical issues in large floating-point applications, developers must identify root causes, which is difficult because floating-point errors are generally non-local, non-compositional, and non-uniform. This paper presents Herbgrind, a tool to help… ▽ More

    Submitted 28 June, 2018; v1 submitted 29 May, 2017; originally announced May 2017.

    Comments: 15 pages published at PLDI 18

  26. Equality Saturation: A New Approach to Optimization

    Authors: Ross Tate, Michael Stepp, Zachary Tatlock, Sorin Lerner

    Abstract: Optimizations in a traditional compiler are applied sequentially, with each optimization destructively modifying the program to produce a transformed program that is then passed to the next optimization. We present a new approach for structuring the optimization phase of a compiler. In our approach, optimizations take the form of equality analyses that add equality information to a common interme… ▽ More

    Submitted 25 March, 2011; v1 submitted 2 December, 2010; originally announced December 2010.

    Comments: 80 pages, 39 figures

    ACM Class: D.3.4

    Journal ref: Logical Methods in Computer Science, Volume 7, Issue 1 (March 28, 2011) lmcs:1016