Hi, I'm Andrew Sheinberg. I'm a fourth-year Computer Science PhD student at Princeton University, advised by Professor Kai Li. Before Princeton, I studied Computer Science & Mathematics at Yale, worked briefly as a quantitative trader, and then started researching memory prefetching with Professor Abhishek Bhattacharjee. I grew up in Barrington, RI.
I build systems software for machine learning. Models keep growing and context lengths keep getting longer, but the fast memory packaged with GPUs is expensive, supply-constrained, and inelastic. How much of it do we actually need if we pair it with cheaper, slower memory? For compute-intensive workloads, surprisingly little, as long as data movement is hidden behind computation, which is possible even with limited transfer bandwidth. Model training, large-batch offline inference, image and video generation, and robotics inference all fit this profile.
Our system, ShadowSpill, jointly plans how a workload executes (e.g., micro-batch sizing, chunking, task scheduling, recomputation, sharding, parallelism) and how its data moves between memory tiers. The same system serves three goals: matching performance with a fraction of the GPU memory, achieving higher throughput at equivalent GPU memory budgets, and training larger models or longer contexts than would otherwise be practical. More on my research →
Playground: Dataflow Simulator, a simplified version of the ShadowSpill planner that uses theoretical hardware constants to show the benefits of effective offloading.
Teaching Assistant (Princeton)
Undergraduate Learning Assistant (Yale)
Feel free to email me at: asheinb@princeton.edu