4 research outputs found
Code Transpilation for Hardware Accelerators
DSLs and hardware accelerators have proven to be very effective in optimizing
computationally expensive workloads. In this paper, we propose a solution to
the challenge of manually rewriting legacy or unoptimized code in
domain-specific languages and hardware accelerators. We introduce an approach
that integrates two open-source tools: Metalift, a code translation framework,
and Gemmini, a DNN accelerator generator. The integration of these two tools
offers significant benefits, including simplified workflows for developers to
run legacy code on Gemmini generated accelerators and a streamlined programming
stack for Gemmini that reduces the effort required to add new instructions.
This paper provides details on this integration and its potential to simplify
and optimize computationally expensive workloads
Recommended from our members
Katara: Synthesizing CRDTs with Verified Lifting
Conflict-free replicated data types (CRDTs) are a promising tool for
designing scalable, coordination-free distributed systems. However,
constructing correct CRDTs is difficult, posing a challenge for even seasoned
developers. As a result, CRDT development is still largely the domain of
academics, with new designs often awaiting peer review and a manual proof of
correctness. In this paper, we present Katara, a program synthesis-based system
that takes sequential data type implementations and automatically synthesizes
verified CRDT designs from them. Key to this process is a new formal definition
of CRDT correctness that combines a reference sequential type with a
lightweight ordering constraint that resolves conflicts between non-commutative
operations. Our process follows the tradition of work in verified lifting,
including an encoding of correctness into SMT logic using synthesized inductive
invariants and hand-crafted grammars for the CRDT state and runtime. Katara is
able to automatically synthesize CRDTs for a wide variety of scenarios, from
reproducing classic CRDTs to synthesizing novel designs based on specifications
in existing literature. Crucially, our synthesized CRDTs are fully,
automatically verified, eliminating entire classes of common errors and
reducing the process of producing a new CRDT from a painstaking paper proof of
correctness to a lightweight specification
Synthesizing CRDTs from Sequential Data Types with Verified Lifting
Conflict-free replicated data types (CRDTs) are a powerful tool for designing
scalable, coordination-free distributed systems. However, constructing correct
CRDTs is difficult, posing a challenge for even seasoned developers. As a
result, CRDT development is still the domain of academics, with new designs
often awaiting peer review and a manual proof of correctness. In this paper, we
present a program synthesis-based system that can automatically synthesize
verified CRDT designs from sequential data type implementations. Key to this
process is a new formal definition of CRDT correctness that combines a
reference sequential type with a lightweight ordering constraint that resolves
conflicts between non-commutative operations. Our process follows the tradition
of work in verified lifting, including an encoding of correctness into SMT
logic using synthesized inductive invariants and hand-crafted grammars for the
CRDT state and runtime. Our algorithm is able to automatically synthesize CRDTs
for a wide variety of scenarios, from reproducing classic CRDTs to synthesizing
novel designs based on specifications in existing literature. Crucially, our
synthesized CRDTs are fully, automatically verified, eliminating entire classes
of common errors and reducing the process of producing a new CRDT from a
painstaking paper proof of correctness to a lightweight specification.Comment: 23 pages, 11 figure
Recommended from our members
Keep CALM and CRDT On
Despite decades of research and practical experience, developers have few tools for programming reliable distributed applications without resorting to expensive coordination techniques. Conflict-free replicated datatypes (CRDTs) are a promising line of work that enable coordination-free replication and offer certain eventual consistency guarantees in a relatively simple object-oriented API. Yet CRDT guarantees extend only to data updates; observations of CRDT state are unconstrained and unsafe. We propose an agenda that embraces the simplicity of CRDTs, but provides richer, more uniform guarantees. We extend CRDTs with a query model that reasons about which queries are safe without coordination by applying monotonicity results from the CALM Theorem, and lay out a larger agenda for developing CRDT data stores that let developers safely and efficiently interact with replicated application state