An Optimizing Compiler for GPGPU Programs with Input-Data Sharing

Authors

    Authors

    Y. Yang; P. Xiang; J. F. Kong;H. Y. Zhou

    Comments

    Authors: contact us about adding a copy of your work at STARS@ucf.edu

    Abbreviated Journal Title

    ACM Sigplan Not.

    Keywords

    Performance; Experimentation; Languages; GPGPU; Compiler; Computer Science, Software Engineering

    Abstract

    Developing high performance GPGPU programs is challenging for application developers since the performance is dependent upon how well the code leverages the hardware features of specific graphics processors. To solve this problem and relieve application developers of low-level hardware-specific optimizations, we introduce a novel compiler to optimize GPGPU programs. Our compiler takes a naive GPU kernel function, which is functionally correct but without any consideration for performance optimization. The compiler then analyzes the code, identifies memory access patterns, and generates optimized code. The proposed compiler optimizations target at one category of scientific and media processing algorithms, which has the characteristics of input-data sharing when computing neighboring output pixels/elements. Many commonly used algorithms, such as matrix multiplication, convolution, etc., share such characteristics. For these algorithms, novel approaches are proposed to enforce memory coalescing and achieve effective data reuse. Data prefetching and hardware-specific tuning are also performed automatically with our compiler framework. The experimental results based on a set of applications show that our compiler achieves very high performance, either superior or very close to the highly fine-tuned library, NVIDIA CUBLAS 2.1.

    Journal Title

    Acm Sigplan Notices

    Volume

    45

    Issue/Number

    5

    Publication Date

    1-1-2010

    Document Type

    Article

    Language

    English

    First Page

    343

    Last Page

    344

    WOS Identifier

    WOS:000280548100039

    ISSN

    0362-1340

    Share

    COinS