A Performance-Oriented Data Parallel Virtual Machine for GPUs (sketches_0451)

Mark S. Peercy, Mark Segal, Derek K. Gerstmann · 2006

Existing GPU programming interfaces require applications to adopt a graphics-centric programming model exported by a device driver tuned for real-time graphics and games. However, this programming model hinders the development, and performance, of non-graphics applications by imposing a graphics policy for program execution and hiding hardware resources. We present a new virtual machine abstraction for GPUs that provides policy-free, low-level access to the hardware and is designed for high-performance, data-parallel applications. 1 Overview Several non-graphics applications, including physics, numerical analysis, and simulation, have been implemented on graphics processors in order to take advantage of their inexpensive raw compute power, and high-bandwidth latency-tolerant memory systems [GPGPU]. Unfortunately, such programs must rely on OpenGL and Direct3D to access the hardware. These APIs are simultaneously over-specified (one must set state and manipulate data that is not directly relevant) and underspecified (the inner workings of the hardware are, by design, suppressed) for this class of computation. In addition, the drivers that implement these APIs make critical policy decisions, such as where data resides in memory and when it is copied, that may be suboptimal. This mismatch between interface and intent can compromise performance, undermining the very motivation for porting applications to the GPU. We present a new virtual machine

Read the paper · More papers on PaperTik