Gilbert Bernstein
YOU?
Author Swipe
View article: Polynomial-Time Program Equivalence for Machine Knitting
Polynomial-Time Program Equivalence for Machine Knitting Open
We present an algorithm that canonicalizes the algebraic representations of the topological semantics of machine knitting programs. Machine knitting is a staple technology of modern textile production where hundreds of mechanical needles a…
View article: Oops: A Language for Formalizing Fallible Biological Protocols
Oops: A Language for Formalizing Fallible Biological Protocols Open
Formalizing protocols used in wetlab biological research as programs improves reproducibility by making protocols replicable and standardized. However, existing protocol languages have limited capacity for codifying error sources and stand…
View article: UFO Instruction Graphs Are Machine Knittable
UFO Instruction Graphs Are Machine Knittable Open
Programming low-level controls for knitting machines is a meticulous, time-consuming task that demands specialized expertise. Recently, there has been a shift towards automatically generating low-level knitting machine programs from high-l…
View article: Scaling Program Synthesis Based Technology Mapping with Equality Saturation
Scaling Program Synthesis Based Technology Mapping with Equality Saturation Open
State-of-the-art hardware compilers for FPGAs often fail to find efficient mappings of high-level designs to low-level primitives, especially complex programmable primitives like digital signal processors (DSPs). New approaches apply sketc…
View article: Exo 2: Growing a Scheduling Language
Exo 2: Growing a Scheduling Language Open
User-schedulable languages (USLs) help programmers productively optimize programs by providing safe means of transforming them. Current USLs are designed to give programmers exactly the control they want, while automating all other concern…
View article: Learning to Move Like Professional Counter-Strike Players
Learning to Move Like Professional Counter-Strike Players Open
In multiplayer, first-person shooter games like Counter-Strike: Global Offensive (CS:GO), coordinated movement is a critical component of high-level strategic play. However, the complexity of team coordination and the variety of conditions…
View article: A Verified Compiler for a Functional Tensor Language
A Verified Compiler for a Functional Tensor Language Open
Producing efficient array code is crucial in high-performance domains like image processing and machine learning. It requires the ability to control factors like compute intensity and locality by reordering computations into different stag…
View article: Distributions for Compositionally Differentiating Parametric Discontinuities
Distributions for Compositionally Differentiating Parametric Discontinuities Open
Computations in physical simulation, computer graphics, and probabilistic inference often require the differentiation of discontinuous processes due to contact, occlusion, and changes at a point in time. Popular differentiable programming …
View article: FPGA Technology Mapping Using Sketch-Guided Program Synthesis
FPGA Technology Mapping Using Sketch-Guided Program Synthesis Open
FPGA technology mapping is the process of implementing a hardware design\nexpressed in high-level HDL (hardware design language) code using the\nlow-level, architecture-specific primitives of the target FPGA. As FPGAs become\nincreasingly …
View article: SLANG.D: Fast, Modular and Differentiable Shader Programming
SLANG.D: Fast, Modular and Differentiable Shader Programming Open
We introduce SLANG.D, an extension to the Slang shading language that incorporates first-class automatic differentiation support. The new shading language allows us to transform a Direct3D-based path tracer to be fully differentiable with …
View article: Semantics and Scheduling for Machine Knitting Compilers
Semantics and Scheduling for Machine Knitting Compilers Open
Machine knitting is a well-established fabrication technique for complex soft objects, and both companies and researchers have developed tools for generating machine knitting patterns. However, existing representations for machine knitted …
View article: Differentiable Rendering of Neural SDFs through Reparameterization
Differentiable Rendering of Neural SDFs through Reparameterization Open
We present a method to automatically compute correct gradients with respect to geometric scene parameters in neural SDF renderers. Recent physically-based differentiable rendering techniques for meshes have used edge-sampling to handle dis…
View article: Sketch-Based Design of Foundation Paper Pieceable Quilts
Sketch-Based Design of Foundation Paper Pieceable Quilts Open
Foundation paper piecing is a widely used quilt-making technique in which fabric pieces are sewn onto a paper guide to facilitate construction. But, designing paper pieceable quilt patterns is challenging because the sewing process imposes…
View article: Formal Semantics for the Halide Language
Formal Semantics for the Halide Language Open
We present the first formalization and metatheory of language soundness for a user-schedulable language, the widely used array processing language Halide. User-schedulable languages strike a balance between abstraction and control in high-…
View article: Differentiable Rendering of Neural SDFs through Reparameterization
Differentiable Rendering of Neural SDFs through Reparameterization Open
We present a method to automatically compute correct gradients with respect to geometric scene parameters in neural SDF renderers. Recent physically-based differentiable rendering techniques for meshes have used edge-sampling to handle dis…
View article: Exocompilation for productive programming of hardware accelerators
Exocompilation for productive programming of hardware accelerators Open
High-performance kernel libraries are critical to exploiting accelerators and specialized instructions in many applications. Because compilers are difficult to extend to support diverse and rapidly-evolving hardware targets, and automatic …
View article: Verified tensor-program optimization via high-level scheduling rewrites
Verified tensor-program optimization via high-level scheduling rewrites Open
We present a lightweight Coq framework for optimizing tensor kernels written in a pure, functional array language. Optimizations rely on user scheduling using series of verified, semantics-preserving rewrites. Unusually for compilation tar…
View article: Systematically differentiating parametric discontinuities
Systematically differentiating parametric discontinuities Open
Emerging research in computer graphics, inverse problems, and machine learning requires us to differentiate and optimize parametric discontinuities. These discontinuities appear in object boundaries, occlusion, contact, and sudden change o…
View article: A mathematical foundation for foundation paper pieceable quilts
A mathematical foundation for foundation paper pieceable quilts Open
Foundation paper piecing is a popular technique for constructing fabric patchwork quilts using printed paper patterns. But, the construction process imposes constraints on the geometry of the pattern and the order in which the fabric piece…
View article: Systematically differentiating parametric discontinuities
Systematically differentiating parametric discontinuities Open
Emerging research in computer graphics, inverse problems, and machine learning requires us to differentiate and optimize parametric discontinuities. These discontinuities appear in object boundaries, occlusion, contact, and sudden change o…
View article: Differentiating a Tensor Language
Differentiating a Tensor Language Open
How does one compile derivatives of tensor programs, such that the resulting code is purely functional (hence easier to optimize and parallelize) and provably efficient relative to the original program? We show that naively differentiating…
View article: Type-directed scheduling of streaming accelerators
Type-directed scheduling of streaming accelerators Open
Designing efficient, application-specialized hardware accelerators requires assessing trade-offs between a hardware module’s performance and resource requirements. To facilitate hardware design space exploration, we describe Aetherling, a …
View article: Seam: provably safe local edits on graphs
Seam: provably safe local edits on graphs Open
Algorithms that create and mutate graph data structures are challenging to implement correctly. However, verifying even basic properties of low-level implementations, such as referential integrity and memory safety, remains non-trivial. Fu…
View article: When is a graph knotted?
When is a graph knotted? Open
Knot theory, as traditionally studied, asks whether or not a loop of string
\nis knotted. That is, can we deform the loop in question into a circle without
\ncutting or breaking it. In this thesis, I take a less traditional approach, study…
View article: PATEX
PATEX Open
Patterns play a central role in 2D graphic design. A critical step in the design of patterns is evaluating multiple design alternatives. Exploring these alternatives with existing tools is challenging because most tools force users to work…
View article: Opt: A Domain Specific Language for Non-linear Least Squares Optimization in Graphics and Imaging
Opt: A Domain Specific Language for Non-linear Least Squares Optimization in Graphics and Imaging Open
Many graphics and vision problems can be expressed as non-linear least squares optimizations of objective functions over visual data, such as images and meshes. The mathematical descriptions of these functions are extremely concise, but th…
View article: Ebb: A DSL for Physical Simulation on CPUs and GPUs
Ebb: A DSL for Physical Simulation on CPUs and GPUs Open
Designing programming environments for physical simulation is challenging because simulations rely on diverse algorithms and geometric domains. These challenges are compounded when we try to run efficiently on heterogeneous parallel archit…