Universal Mechanisms for Data-Parallel Architectures

Karthikeyan Sankaralingam, Stephen W. Keckler, William R. Mark and Doug Burger

Proceedings of the 36th Annual International Symposium on Microarchitecture (MICRO 2003).


Data-parallel programs are both growing in importance and increasing in diversity, resulting in specialized processors targeted at specific classes of these programs. This paper presents a classification scheme for data-parallel program attributes, and proposes micro-architectural mechanisms to support applications with diverse behavior using a single reconfigurable architecture. We focus on the following four broad kinds of data-parallel programs -- DSP/multimedia, scientific, networking, and real-time graphics workloads. While all of these programs exhibit high computational intensity, coarse-grain regular control behavior, and some regular memory access behavior, they show wide variance in the computation requirements, fine grain control behavior, and the frequency of other types of memory accesses. Based on this study of application attributes, this paper proposes a set of general micro-architectural mechanisms that enable a baseline architecture to be dynamically tailored to the demands of a particular application. These mechanisms provide efficient execution across a spectrum of data-parallel applications and can be applied to diverse architectures ranging from vector cores to conventional superscalar cores. Our results using a baseline TRIPS processor show that the configurability of the architecture to the application demands provides harmonic mean performance improvement of 5%-55% over scalable yet less flexible architectures, and performs competitively against specialized architectures.

Download Paper

Paper (PDF, 0.14 MB)

BibTeX entry

  author =       "Karthikeyan Sankaralingam and Stephen W. Keckler and William R. Mark and Doug Burger",
  title =        "{Universal Mechanisms for Data-Parallel Architectures}",
  booktitle =    "Proceedings of the 36th Annual International Symposium on Microarchitecture",
  year =         2003,
  month =        {December}
  pages = {}