ABSTRACT
Graphics has been one of the best success stories of parallel processing. Using a unique combination of specialized hardware and aspecialized programming model, game developers routinely write high performance code using millions of threads. Each Generation of graphic processors (GPU's) delivers higher performance and is more programmable then the last. Unlike CPU's, these processors are designed from the beginning to run highly parallel programs and fit a different programming model. We would claim that a GPU is much more like a traditional supercomputer then a desktop processor.
The programming model for graphics, called the graphics pipeline, is quite different from any of the CPU models. We will include a quick overview of this model. We believe that the Graphics programming model for utilizing the GPU will continue to be radically different from the CPU programming model for some time to come. The key feature that makes games perform well (at least to compiler writers) is that games are shipped as byte code and JIT compiled each time the game is started. The main focus of this talk is the AMD provided JIT compiler.
We will describe some of the design decisions made in the JIT compiler and give some statistics on how well they worked. For instance we will explain what the compiler does with 256 thousand registers and why it would like more. Finally we will highlight some of the open research problems raised by graphics hardware.
Index Terms
- Issues and challenges in compiling for graphics processors
Recommendations
Relational query coprocessing on graphics processors
Graphics processors (GPUs) have recently emerged as powerful coprocessors for general purpose computation. Compared with commodity CPUs, GPUs have an order of magnitude higher computation power as well as memory bandwidth. Moreover, new-generation GPUs ...
Inter-core prefetching for multicore processors using migrating helper threads
ASPLOS XVI: Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systemsMulticore processors have become ubiquitous in today's systems, but exploiting the parallelism they offer remains difficult, especially for legacy application and applications with large serial components. The challenge, then, is to develop techniques ...
A performance study of general-purpose applications on graphics processors using CUDA
Graphics processors (GPUs) provide a vast number of simple, data-parallel, deeply multithreaded cores and high memory bandwidths. GPU architectures are becoming increasingly programmable, offering the potential for dramatic speedups for a variety of ...
Comments