I am a Fellow in the Adaptive, Embedded and AI Group of Advanced Micro Devices, Inc. I am a performance engineer and software architect in the ROCm team, where I work on optimizing the performance and power of AMD's GPU software, firmware, and hardware for GPGPU compute tasks.

Prior to working in AMD's GPGPU product teams, I was a member of AMD Research, which I joined in 2012 after earning my Ph.D. in computer science and engineering from the Department of Electrical Engineering and Computer Science at the University of Michigan, Ann Arbor.

My work generally focuses on making hardware do interesting, unintended things, which usually involves working at the boundary between hardware and software. I think that hardware monitoring features (such as performance counters) offer insights which can lead to intriguing and novel tools and capabilities.

My work in AMD Research focused on that organization's FastForward, FastForward 2, and PathForward exascale research programs. These projects focused on the goal of developing an exaflop supercomputer by 2022. Within this group, I led a project designing high-level performance, power, and reliability models based on observing how software operates on existing hardware. This involves monitoring how large applications run on current systems and employing a collection of novel techniques to extrapolate these measurements to future designs. This work also led me to studies of dynamic power and performance management algorithms, with a special interest in firmware-driven optimization of hardware devices.

During graduate school, I worked with my advisor, Prof. Todd Austin, to study mechanisms that would allow developers to dynamically analyze software to find errors and security vulnerabilities with little runtime overhead. As an example, one of the projects in my dissertation used performance counter events to accelerate data race detection by dynamically finding when parallel threads were sharing information.

Besides my research, I am also interested in the history of computers and computer architecture. I try to find good primary sources of information on past architectural decisions (such as this excellent first-hand account of the IBM Stretch system design) as well as oral histories and classic chronicles of the industry. I strongly believe that a solid grounding in the background of this field can lead to better design decisions today. Plus, it's cool to see how previous battles were won or lost.

While at Michigan, I ran the reading group for the Advanced Computer Architecture Laboratory (ACAL) for a year. I recommend that anyone interested in computer architecture at Michigan attend these meetings; groups such as allow researchers to find useful work outside of their immediate area and offer the opportunity to practice presenting research in front their peers. I run the reading group for AMD Research for similar reasons.

I graduated in May 2006 from the University of Illinois at Urbana-Champaign with a Bachelor of Science in computer engineering. The IPENG office at Illinois helped me spend five months studying at Okayama University, and I hope every undergraduate jumps at the opportunity to have a similar experience if she gets the chance.