My work seeks to design high-performance systems for computer graphics and visual computing. Due to the compute-intensive nature of computer graphics applications, graphics systems must operate at exceptional levels of efficiency. To enable the development of new, complex applications, these high-performance systems must also be practical to program and use. To meet both these challenges, my students design new parallel graphics architectures (GPUs), develop parallel algorithms for rendering and simulation, and develop new programming models and compiler technologies that make it easier to express and optimize graphics computations.
Graphics System Design. Over the coming decade, high-resolution outputs and resource-constrained mobile environments demand that computer systems must synthesize images one-to-two orders of magnitude more efficiently than what is possible today. Through more flexible GPU architecture designs and corresponding new programming frameworks, we aim to allow efficient expression of a wider range of compute graphics techniques, increasing overall system efficiency by allowing choice of the right algorithm for the graphics task at hand. Identifying the right set of architectural mechanisms, and developing compiler technologies to target these mechanisms is a key aspect of this work.
Systems for Analyzing Images and Video. Ubiquitous image sensing will soon provide the capability to capture an increasingly large fraction of life's events, and a key computer science challenge is developing systems to intelligently interpret, analyze, and extract value from these large volumes of visual information. We are working to establish efficient computing platforms for lifetime- and society-scale image and video analysis and mining.