The solution of sparse triangular linear systems is one of the most important building blocks for a large number of science and engineering problems. For these reasons, it has been studied steadily for several decades, principally in order to take advantage of emerging parallel platforms.In the context of massively parallel platforms such as GPUs, the standard strategy of parallel solution is based on performing a level-set analysis of the sparse matrix, and the kernel included in the NVIDIA CUSPARSE library is the most prominent example of this approach. However, a weak spot of this implementation is the costly analysis phase and the constant synchronizations with the CPU during the solution stage. In previous work, we presented a self-scheduled and synchronization-free GPU algorithm that avoided the analysis phase and the synchronizations of the standard approach. Here, we extend this proposal and show how the level-set information can be leveraged to improve its performance. In particular, we present new GPU solution routines that attack some of the weak spots of the self-scheduled solver, such as the under-utilization of the GPU resources in the case of highly sparse matrices. The experimental evaluation reveals a sensible runtime reduction over CUSPARSE and the state-of-the-art synchronization-free method.
KEYWORDSgraphics processors (GPUs), level-set analysis, Sparse triangular linear systems, synchronization-free methods
INTRODUCTIONMany essential sparse numerical linear algebra algorithms, such as the application of preconditioners based on incomplete factorizations, or the direct solution of sparse linear systems and least squares problems, imply the solution of sparse triangular linear systems as one of the most important building blocks. 1,2 This is the main motivation for the strong attention that this kernel has raised for many years, as well as the numerous efforts to develop efficient implementations for a variety of parallel platforms.This operation is challenging from the point of view of its parallelization as, in the general case, the elimination of one unknown (row) depends on the previous elimination of others. In addition, the triangular structure of the matrices can be the origin of load imbalance issues.There are two main approaches for the parallel solution of sparse triangular systems (the SPTRSV operation). On one side, we find two-stage methods, based on performing an analysis of the sparse matrix previous to the solution stage, to determine a scheduling for the elimination of the unknowns that reveals as much parallelism as possible. On the other side, there are one-stage methods, based on a self-scheduled pool of tasks, in which some of the tasks have to wait until the data necessary to perform their computations is made available by other tasks. The advantages of one paradigm or the other depends on the characteristics of the particular sparse matrix, so it results impossible to determine which is the best one. 3Graphics processors occupy a special place among the most important par...