Gilbert Bernstein is a new professor at the University of Washington in Computer Science & Engineering. He specializes in Computer Graphics and Programming Languages, especially high-performance domain-specific languages (DSLs). He was a post-doctorate scholar at UC Berkeley and MIT with Joanthan Ragan-Kelley, and received his PhD from Stanford University working with Pat Hanrahan.
CXL memory management
An algebraic theory of knitting machine programs leveraging category theory. This paper shows that equivalence in this algebra is efficiently decidable in theory.
user-scheduling for pipeline parallelism in distributed AI training systems
Application-level configuration of network middleware with user-scheduling of where in-network processing should happen
Using probabilistic programming to model errors in wetlab experimental processes
an extension to the Exo language tackling the question of how to build libraries of reusable scheduling code. Demonstrated beating industrial BLAS implementations across a broad swath of the API surface.
An extension of our knitting semantics work. This paper leverages the insight that monotonicity of time coincides with monotonicity of many other observable properties of objects to characterarize when they can be successfully knit.
Debugging CAD models is like debugging programs. Since CAD is visual and geometric, a good debugger must use smart choices of visualizations.
zero-waste fashion design seeks to create tightly-packed sewing patterns, without scrap fabric. We designed a tool that allows for co-design of the garment pattern and layout on the fabric bolt to help achieve such designs.
training neural networks to create more human-like counterstrike bots
A language looking at how to differentiate discontinuities from the standpoint of the theory of distributions rather than functions.
proof of correctness for lowering in the ATL compiler
using program synthesis to find more efficient utilization of complex DSP units on FPGAs
an HLSL-like shading language (Slang) with full language support for automatic-differntiation, including generics & interfaces
applying knot theory to the question "what does a program for a knitting machine mean?"
differentiable rendering of implicit surfaces
finding constructible completions of quilting patterns as they're being sketched
a low-level language (and exocompiler) designed to help performance engineers write, optimize, and target high-performance computing kernels onto new hardware accelerators
optimizing imperative array (tensor) code by rewriting functional programs in a verified way using Coq
handling automatic differentiation through discontinuous phenomena, such as collisions, boundaries, and phase changes
A mathematical theory of which quilt designs are constructable via a popular and easy to learn quilting process.
Why are Hardware Design Languages the way they are?
A Domain-Specific Hardware Design Language for trading off transistor usage (space) against pipeline latency (time)
correctness, brevity, and performance for complex geometric data structures
why should we bother designing new programming languages for physical simulation tasks?
a domain-specific language that automatically parallelizes code
exploring design variations while editing geometric patterns by inferring constraints
manipulating apparent objects in icon drawings
fast, efficient boolean library with a C interface
A freeform method for poking holes and merging surfaces
getting characters to turn on a dime, using non-parametric alternatives to motion graphs
robust boolean operations that are fast enough for interactive use.
knot theory meets graph theory. Hunting for the elusive minor minimal intrinsically knotted graphs