Wednesday, June 27, 2018
12:00 PM
1400 Wegmans Hall
Sreepathi Pai
Data Science Summer Colloquium Series
Identifying Differences in GPUs using Performance Data
ABSTRACT: Graphics Processing Units (or GPUs) were originally designed to only speed up graphics computation such as games. Over many years, however, they've become general enough to run many non-graphics computations. Indeed, due to stagnating CPU performance, GPUs are now the platform of choice for high-performance computing. The amazing advances in deep learning would not have happened without GPUs.

Unfortunately, getting peak performance out of GPUs is hard. GPU programmers need to understand and exploit low-level architectural features to obtain performance. Newer, high-level programming languages alleviate this need somewhat by transforming high-level code to low-level code. However, GPUs have proliferated extensively and are present at every level of computing -- from desktops to mobile phones. These GPUs are very different from each other and therefore respond differently to the same transformations -- a transformation that speeds up a program on one class of GPU can slow it down on another. Complicating the picture, different programs behave differently too, and the same program can behave differently when running on different inputs.

Amidst such differences, can we find patterns that can guide us to obtain performance reliably on different GPUs? I show that by examining the performance data of programs, such patterns can be identified and as a consequence point out the truly important differences in GPUs that matter for those programs.

[This is joint work with Tyler Sorensen and Alastair Donaldson of Imperial College London.]

BIO: Sreepathi Pai is an Assistant Professor in the Department of Computer Science at the University of Rochester. As an experimental computer systems researcher, he works on high-performance heterogeneous computer architectures and has contributed to compiler optimization, computer architecture, and performance modelling. Currently, his focus is on accelerator-based systems such as those containing graphics processing units (GPUs) that can be leveraged for massive data processing. Most recently, he has developed the IrGL compiler for irregular graph algorithms that generates highly optimized code for GPUs from high-level specifications and which has been demonstrated to outperform expert-written code. He earned his PhD at the Indian Institute of Science and his B.E. in Computer Engineering at the University of Mumbai. Prior to joining the Department of Computer Science at Rochester, he was a Postdoctoral Fellow at the University of Texas at Austin.