Accelerating Scientific Applications using High Performance Dense and Sparse Linear Algebra Kernels on GPUs
Type
DissertationAuthors
Abdelfattah, Ahmad
Advisors
Keyes, David E.
Committee members
Davis, ThimothyHadwiger, Markus

Ltaief, Hatem

Kalnis, Panos

Bisetti, Fabrizio

Program
Computer ScienceDate
2015-01-15Permanent link to this record
http://hdl.handle.net/10754/346955
Metadata
Show full item recordAbstract
High performance computing (HPC) platforms are evolving to more heterogeneous configurations to support the workloads of various applications. The current hardware landscape is composed of traditional multicore CPUs equipped with hardware accelerators that can handle high levels of parallelism. Graphical Processing Units (GPUs) are popular high performance hardware accelerators in modern supercomputers. GPU programming has a different model than that for CPUs, which means that many numerical kernels have to be redesigned and optimized specifically for this architecture. GPUs usually outperform multicore CPUs in some compute intensive and massively parallel applications that have regular processing patterns. However, most scientific applications rely on crucial memory-bound kernels and may witness bottlenecks due to the overhead of the memory bus latency. They can still take advantage of the GPU compute power capabilities, provided that an efficient architecture-aware design is achieved. This dissertation presents a uniform design strategy for optimizing critical memory-bound kernels on GPUs. Based on hierarchical register blocking, double buffering and latency hiding techniques, this strategy leverages the performance of a wide range of standard numerical kernels found in dense and sparse linear algebra libraries. The work presented here focuses on matrix-vector multiplication kernels (MVM) as repre- sentative and most important memory-bound operations in this context. Each kernel inherits the benefits of the proposed strategies. By exposing a proper set of tuning parameters, the strategy is flexible enough to suit different types of matrices, ranging from large dense matrices, to sparse matrices with dense block structures, while high performance is maintained. Furthermore, the tuning parameters are used to maintain the relative performance across different GPU architectures. Multi-GPU acceleration is proposed to scale the performance on several devices. The performance experiments show improvements ranging from 10% and up to more than fourfold speedup against competitive GPU MVM approaches. Performance impacts on high-level numerical libraries and a computational astronomy application are highlighted, since such memory-bound kernels are often located in innermost levels of the software chain. The excellent performance obtained in this work has led to the adoption of code in NVIDIAs widely distributed cuBLAS library.Citation
Abdelfattah, A. (2015). Accelerating Scientific Applications using High Performance Dense and Sparse Linear Algebra Kernels on GPUs. KAUST Research Repository. https://doi.org/10.25781/KAUST-2QE21ae974a485f413a2113503eed53cd6c53
10.25781/KAUST-2QE21