A Code Generation Algorithm for Affine Partitioning Framework

  • Authors:
  • Shih-wei Liao;Zhaohui Du;Gansha Wu;Guei-Yuan Lueh

  • Affiliations:
  • Microprocessor Technology Labs, Intel Corporation 2200 Mission College Blvd, Santa Clara, CA 95054, USA;Microprocessor Technology Labs, Intel Corporation 2200 Mission College Blvd, Santa Clara, CA 95054, USA;Microprocessor Technology Labs, Intel Corporation 2200 Mission College Blvd, Santa Clara, CA 95054, USA;Microprocessor Technology Labs, Intel Corporation 2200 Mission College Blvd, Santa Clara, CA 95054, USA

  • Venue:
  • ICPADS '05 Proceedings of the 11th International Conference on Parallel and Distributed Systems - Workshops - Volume 02
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Multiprocessors are about to become prevalent in the PC world. Major CPU vendors such as Intel and Advanced Micro Devices have recently announced their imminent migration to multicore processors. Affine partitioning provides a systematic framework to find asymptotically optimal computation and data decomposition for multiprocessors, including multicore processors. This affine framework uniformly models a large class of high-level optimizations such as loop interchange, reversal, skewing, fusion, fission, re-indexing, scaling, and statement reordering. However, the resulting code after applying affine transformations tends to contain more loop levels and complex conditional expressions. This impacts performance, code readability and debuggability for both programmers and compiler developers. To facilitate the adoption of affine partitioning in industry, we address the above practical issues by proposing a salient two-step algorithm: coalesce and optimize. The coalescing algorithm maintains valid code throughout and improves readability and debuggability. We demonstrate with examples that the optimization algorithm simplifies the resulting loop structures, conditional expressions and array access functions and generates efficient code.