Skip to main content

Organizing Computation for High-Performance Visual Computing

Jonathan Ragan-Kelley ( MIT )

In the face of declining returns to Moore’s law, future visual computing applications—from photorealistic real-time rendering, to 4D light field cameras, to pervasive sensing with deep learning—still demand orders of magnitude more computation than we currently have. From data centers to mobile devices, performance and energy scaling is limited by locality (the distance over which data has to move, e.g., from nearby caches, far away main memory, or across networks) and parallelism. Because of this, I argue that we should think of the performance and efficiency of an application as determined not just by the algorithm and the hardware on which it runs, but critically also by the organization of its computations and data. For algorithms with the same complexity—even the exact same set of arithmetic operations—the order and granularity of execution and placement of data can easily change performance by an order of magnitude because of locality and parallelism. To extract the full potential of our machines, we must treat the organization of computation as a first-class concern, while working across all levels, from algorithms and data structures, to programming languages, to hardware.

This talk will present facets of this philosophy in systems for image processing, 3D graphics, and machine learning. I will show that, for the data-parallel pipelines common in these data-intensive applications, the organization of computations and data for a given algorithm is constrained by a fundamental tension between parallelism, locality, and redundant computation of shared values. I will focus particularly on the Halide language and compiler, which explicitly separates what computations define an algorithm from the choices of organization which determine parallelism, locality, and synchronization. I will show how this approach can enable much simpler programs to deliver performance often many times faster than the best prior implementations, while scaling across radically different architectures, from ARM phones to massively parallel GPUs, FPGAs, and custom ASICs.

Speaker bio

Jonathan Ragan-Kelley is the Esther and Harold E. Edgerton Assistant Professor of Electrical Engineering & Computer Science at MIT and assistant professor of EECS at UC Berkeley. He works on high-efficiency visual computing, including systems, compilers, and architectures for image processing, vision, 3D rendering, simulation, and machine learning. He is a recipient of the ACM SIGGRAPH Significant New Researcher award, NSF CAREER award, Intel Outstanding Researcher award, and two CACM Research Highlights. He was previously a visiting researcher at Google, a postdoc in Computer Science at Stanford, and earned his PhD in Computer Science from MIT in 2014. He co-created the Halide language and has built more than a half-dozen other DSL and compiler systems, the first of which was a finalist for an Academy technical achievement award.

 

Video

 

Share this: