KAYVON
FATAHALIAN
Assistant Professor of Computer Science
Carnegie Mellon University
412-268-8376 (Gates-Hillman Center Room 7005)
I architect new visual computing systems that serve to enable novel applications of graphics and visual computing. In pursuit of these goals, my recent research efforts can be categorized into two main themes:
1. Designing new graphics programming systems that facilitate rapid, or even automatic, generation of efficient renderer implementations for specific hardware configurations or application needs. Given knowledge of a virtual scene, a specific rendering task, and a parallel hardware platform, is it possible to automatically generate an optimized graphics system specialized for this context?
2. Exploring visual computing platforms in the context of extreme mobility, cloud computing, and ubiquitous image sensors and displays. How do we take graphics applications from one user on a single GPU to 10,000 machines and 1 million users in the cloud? What future architectures will enable sophisticated, image and video analysis on smart phones (or stylish smart sunglasses) of the future?
TEACHING
I will be teaching VISUAL COMPUTING SYSTEMS in Fall 2013. I suspect the course will be of interest to computer systems, graphics, and vision students (you will work together on parallel systems projects for applications in graphics and vision). You may want to look at my graphics architecture seminar course (from Fall 2011) to get a flavor of some of the material.
15-418/15-618: Parallel Computer Architecture and Programming (Spring 2012, 2013)
15-869: Graphics and Imaging Architectures (Fall 2011)
MY STUDENTS
I am lucky to work with some great students. I currently work with NICO FELTMAN (CSD, Ph.D.), YONG HE (CSD Ph.D.), and PAUL SASTRASINH (CSD, Ph.D., co-advised with Alexei Efros).
CURRENT PROJECTS
I am currently working on (1) the renderer compiler, a system for exploring the wide space of algorithmic choices that go into a parallel renderer implementation, (2) exploring the use of large-scale cloud computing to accelerate real-time physics (a collaboration with Adrien Treuille and James O'Brien), and (3) the creation of an "infinite-capacity camera" to serve as a platform for real-time visual data analysis (a collaboration with Alexei Efros, who came up with the great project name!). More details to come!
PAST PROJECTS
A Real-Time Micropolygon Rendering Pipeline
In a few years, GPUs will have the compute horsepower to render scenes containing cinematic-quality surfaces in real-time. Unfortunately, if they render these subpixel polygons (micropolygons) using the same techniques as they do for large triangles today, GPUs will perform extremely inefficiently. Instead of trying to parallelize Pixar's Reyes micropolygon rendering system, we're taking a hard look at how the existing Direct3D 11 rendering pipeline, and GPU hardware implementations, must evolve to render micropolygon workloads efficiently in a high-throughput system. Changes to software interfaces, algorithms, and HW design are fair game! Slides describing what we've learned as of Summer 2010 can be found in this SIGGRAPH course talk (for a complete list of publications related to this project, see the bottom of this page).
Sequoia Programming Language
Sequoia is a hierarchical stream programming language that arose from the observation that expressing locality, not parallelism is the most important responsibility of parallel application programmers in scientific/numerical domains. Sequoia presents a parallel machine as an abstract hierarchy of memories and gives the programmer explicit control over data locality and communication through this hierarchy using first-class language constructs (basically, Sequoia supports nested kernels and streams of streams). Sequoia programs have run on a variety of exposed-communication architectures such as clusters, the CELL processor, GPUs, and even supercomputing clusters at Los Alamos. Learn more at the Sequoia project page or at the Stanford Pervasive Parallelism Lab's Sequoia page.
GRAMPS
There are two ways to think about GRAMPS. Graphics folks should think of GRAMPS as a system for building custom graphics pipelines. We simply gave up on adding more and more configurable knobs to existing pipelines like OpenGL/Direct3D and instead allow the programmer to programmatically define a custom pipeline with an arbitrary number of stages connected by queues. To non-graphics folks, GRAMPS is a stream programming system that embraces heterogeneity in underlying architecture and anticipates streaming workloads that exhibit both regular and irregular (dynamic) behavior. The GRAMPS runtime dynamically schedules GRAMPS programs onto architectures containing a mixture of compute-optimized cores, generic CPU cores, and fixed-function processing units.
Brook/Merrimac
While at Stanford, I've also helped out with the BrookGPU (abstracting the GPU as a stream processor for numerical computing) and Merrimac Streaming Supercomputer projects.
TALKS
From Shader Code to a Teraflop: How a Shader Core Works
ACM SIGGRAPH 2010 Class: Beyond Programmable Shading I
(This is the most current version of the GPU architecture talk I have delivered at SIGGRAPH since 2008)
Evolving the Direct3D Pipeline for Real-Time Micropolygon Rendering
ACM SIGGRAPH 2010 Class: Beyond Programmable Shading II
PUBLICATIONS
Near-exhaustive Precomputation of Secondary Cloth Effects
Doyub Kim , Woojong Koh, Rahul Narain, Kayvon Fatahalian, Adrien Treuille, James O'Brien
ACM SIGGRAPH 2013 (to appear)
SRDH: Specializing BVH Construction and Traversal Order Using Representative Shadow Ray Sets
Nicolas Feltman, Minjae Lee, Kayvon Fatahalian
High Performance Graphics 2012
Evolving the Real-Time Graphics Pipeline for Micropolygon Rendering
Kayvon Fatahalian, Stanford University Ph.D. Dissertation, 2011
Reducing Shading on GPUs using Quad-Fragment Merging
Kayvon Fatahalian, Solomon Boulos, James Hegarty, Kurt Akeley, William R. Mark, Henry Moreton, Pat Hanrahan
ACM SIGGRAPH 2010
Space-Time Hierarchical Occlusion Culling for Micropolygon Rendering with Motion Blur
Solomon Boulos, Edward Luong, Kayvon Fatahalian, Henry Moreton, Pat Hanrahan
High Performance Graphics 2010
Hardware Implementation of Micropolygon Rasterization with Motion and Defocus Blur
John S. Brunhaver, Kayvon Fatahalian, Pat Hanrahan
High Performance Graphics 2010
A Lazy Object-Space Shading Architecture With Decoupled Sampling
Christopher A. Burns, Kayvon Fatahalian, William R. Mark
High Performance Graphics 2010
DiagSplit: Parallel, Crack-Free, Adaptive Tessellation for Micropolygon Rendering
Matthew Fisher, Kayvon Fatahalian, Solomon Boulos, Kurt Akeley, William R. Mark, Pat Hanrahan
ACM SIGGRAPH Asia 2009
Data-Parallel Rasterization of Micropolygons with Defocus and Motion Blur
Kayvon Fatahalian, Edward Luong, Solomon Boulos, Kurt Akeley, William R. Mark, Pat Hanrahan
High Performance Graphics 2009
GRAMPS: A Programming Model for Graphics Pipelines
Jeremy Sugerman, Kayvon Fatahalian, Solomon Boulos, Kurt Akeley, Pat Hanrahan
ACM Transactions on Graphics (TOG) January 2009
A Closer Look at GPUs
Kayvon Fatahalian and Mike Houston
Communications of the ACM. Vol. 51, No. 10 (October 2008)
(also published as "GPUs: A Closer Look": ACM Queue. March/April. 2008)
A Portable Runtime Interface for Multi-level Memory Hierarchies
Mike Houston, Ji Young Park, Manman Ren, Timothy J. Knight, Kayvon Fatahalian, Alex Aiken, William J. Dally, Pat Hanrahan
PPOPP 2008
Compilation for Explicitly Managed Memory Hierarchies
Timothy J. Knight, Ji Young Park, Manman Ren, Mike Houston, Mattan Erez, Kayvon Fatahalian, Alex Aiken, William J. Dally, Pat Hanrahan
PPOPP 2007
Sequoia: Programming the Memory Hierarchy
Kayvon Fatahalian, Timothy J. Knight, Mike Houston, Mattan Erez, Daniel R Horn, Larkhoon Leem, Ji Young Park, Manman Ren, Alex Aiken, William J. Dally, Pat Hanrahan
Supercomputing 2006
Understanding the Efficiency of GPU Algorithms for Matrix-Matrix Multiplication
Kayvon Fatahalian, Jeremy Sugerman, Pat Hanrahan
Graphics Hardware 2004
Brook for GPUs: Stream Computing on Graphics Hardware
Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, Pat Hanrahan
ACM SIGGRAPH 2004
Precomputing Interactive Dynamic Deformable Scenes
Doug L. James and Kayvon Fatahalian
ACM SIGGRAPH 2003
Real-Time Global Illumination of Deformable Objects
Undergraduate Senior Research Thesis (Carnegie Mellon University). 2003.
Advised by Doug James (now at Cornell)
SUPPORT
My work is supported by gifts from INTEL, NVIDIA, and QUALCOMM.