Table of Contents
I'm a graduate student studying with James Bornholt at UT Austin. I'm interested in the study of programming languages, their design, and how to write compilers for them. I'm currently working on techniques for compiling languages for a new wave of exotic energy-efficient and performant hardware.
I wouldn't be where I am today without Rachit Nigam and Adrian Sampson. Go check out their work, they do cool stuff.
You can email me at sgt@cs.utexas.edu and check out the code that I write on Github.
Publications
Automatic Generation of Vectorizing Compilers for Customizable Digital Signal Processors
Samuel Thomas, James Bornholt
[ Talk Slides ] [ Lightning Talk ] [ Github ]
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.
Posts
Setting up Bluesky PDS
A guide for hosting your own Bluesky data for people not running Ubuntu and/or already using Caddy in some other context.
CV
Here is a link to my CV.
Other stuff
Some side projects. 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.