I am currently Ph.D. candidate in Computer Science and Engineering at the University of Michigan, advised
by Scott Mahlke
I am a primary instructor for EECS 280 (Programming and Introductory Data Structures)
at the University of Michigan (course website: eecs280.org),
lecturing twice a week for 220 students and managing a large course staff on a team with three other instructors.
I worked for two years tutoring a student in basic numeracy skills at Siena Literacy Center in Detroit, which
was a formative teaching experience for me. I learned how to teach someone whose mind works very differently than mine, and
the experience stoked my belief that all students deserve to be taught in the way that works best for them.
My research focuses on how to make GPUs more energy efficient. Examples of projects I've worked on:
Nearby threads on a GPU tend to access nearby memory.
My work (WarpPool) was able to merge more memory requests made by different threads in the same GPU core, saving memory accesses and traffic.
Register file design:
GPUs need to have hundreds of kilobytes of register file, because so many threads are executing
simultaneously. However, not many of these registers are accessed in any given period of time.
My work optimizes register placement to save energy.
Multiple kernels running on the same GPU can have complementary resource requirements, meaning that in the best
case, running two kernels doubles the throughput. My current work investigates how to get the
similar benefits even when the resource demands are not as perfectly matched.
WarpPool: Sharing Requests with Inter-Warp Coalescing for Throughput Processors
John Kloosterman, Jonathan Beaumont, Mick Wollman, Ankit Sethia, Ron Dreslinski, Trevor Mudge, and Scott Mahlke
My CV as a PDF