Samuel Thomas

Table of Contents

I wouldn't be where I am today without Rachit Nigam and Adrian Sampson. Go check out their work, they do cool stuff.

Projects

Automatically synthesize a compiler

It's very time consuming and difficult to write compilers, especially for exotic specialized hardware. Diospyros showed that you could use e-graphs (egg) to build a very competitive rewrite based compiler for an architecture with explicit vector lanes. The performance and quality of the compiler depends a lot on the particular rewrite rules used. Finding these rules is a tedious, error-prone process. Ruler presented a technique to automatically generate rewrite rules from an interpreter that gives a DSL semantics. Their technique works well for generating rewrite rules for optimization, but it does not scale to generating rules for compiling. I'm exploring ways of combining these two techniques so that we can automatically generate efficient (but slow) compilers.

[ Github ]

Publications

A Compiler Infrastructure for Accelerator Generators   asplos21

Samuel Thomas, Rachit Nigam, Zhijing Li, Adrian Sampson

[ Github ] [ Website ]

Predictable Accelerator Design with Time-Sensitive Affine Types   pldi20

Rachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li, Ted Bauer, Yuwei Ye, Apurva Koti, Adrian Sampson, Zhiru Zhang

[ Github ] [ Website ]

Other stuff

Some side projects.
My Emacs config.
Shift.

I help run GRACS (the CS graduate student representative organization).

Here's the reading list to the DiRP (Directed Reading Program) that I held in Spring 2023.

CV

Here is a link to my CV