EAGER: Exploring the Foundations of High-Level Programming Models for GPUs
University Of Chicago, Chicago IL
Investigators
Abstract
Modern Graphics-Processor Units (GPUs) are capable of performance that, just a few years ago, would have been classified as supercomputer-level. With the trend of integrating GPU cores into heterogeneous multicore processors, GPUs are becoming an important source of future performance growth in mainstream processors. Unfortunately, GPUs are notoriously hard to program. The standard languages for programming GPUs expose low-level architectural details, such as an explicit memory hierarchy, which the programmer must exploit to maximize performance. Furthermore, GPU hardware evolves rapidly, with successive generations of hardware having different performance characteristics, which means that application code must be constantly revised to achieve optimal performance. To make the power of GPUs, accelerators, and heterogeneous architectures more widely applicable, programming models need to lift the level of abstraction away from the details of the hardware threading and memory models. This EAGER project identifies common abstractions and implementation techniques that can provide a foundation for supporting irregular computations on accelerator and heterogeneous architectures. A key focus of the project is the design of a core calculus of heterogeneity that can model programs that run on heterogeneous systems, such as CPU/GPU combinations, and provide a foundation for future work in both the semantics and implementation of parallel programming languages for GPUs. The results of the project broaden the applicability of GPUs to a wider range of computational problems and, in turn, will help make GPUs useful to a broader community of users by supporting higher-level programming models for GPUs that are easier to use than existing languages.
View original record on NSF Award Search →