Balancing locality and concurrency: solving sparse triangular systems on GPUs
File(s)AndreaHiPC16.pdf (457.83 KB)
Accepted version
Author(s)
Picciau, A
Inggs, G
Wickerson, J
Kerrigan, E
Constantinides, GA
Type
Conference Paper
Abstract
Many numerical optimisation problems rely on
fast algorithms for solving sparse triangular systems of linear
equations (STLs). To accelerate the solution of such equations,
two types of approaches have been used: on GPUs, concurrency
has been prioritised to the disadvantage of data locality, while
on multi-core CPUs, data locality has been prioritised to the
disadvantage of concurrency.
In this paper, we discuss the interaction between data locality
and concurrency in the solution of STLs on GPUs, and we present
a new algorithm that balances both. We demonstrate empirically
that, subject to there being enough concurrency available in the
input matrix, our algorithm outperforms Nvidia’s concurrencyprioritising
CUSPARSE algorithm for GPUs. Experimental results
show a maximum speedup of 5.8-fold.
Our solution algorithm, which we have implemented in
OpenCL, requires a pre-processing phase that partitions the
graph associated with the input matrix into sub-graphs, whose
data can be stored in low-latency local memories. This preliminary
analysis phase is expensive, but because it depends only
on the input matrix, its cost can be amortised when solving for
many different right-hand sides.
fast algorithms for solving sparse triangular systems of linear
equations (STLs). To accelerate the solution of such equations,
two types of approaches have been used: on GPUs, concurrency
has been prioritised to the disadvantage of data locality, while
on multi-core CPUs, data locality has been prioritised to the
disadvantage of concurrency.
In this paper, we discuss the interaction between data locality
and concurrency in the solution of STLs on GPUs, and we present
a new algorithm that balances both. We demonstrate empirically
that, subject to there being enough concurrency available in the
input matrix, our algorithm outperforms Nvidia’s concurrencyprioritising
CUSPARSE algorithm for GPUs. Experimental results
show a maximum speedup of 5.8-fold.
Our solution algorithm, which we have implemented in
OpenCL, requires a pre-processing phase that partitions the
graph associated with the input matrix into sub-graphs, whose
data can be stored in low-latency local memories. This preliminary
analysis phase is expensive, but because it depends only
on the input matrix, its cost can be amortised when solving for
many different right-hand sides.
Date Issued
2017-02-02
Date Acceptance
2016-09-06
Citation
23rd IEEE International Conference on High Peformance Computing, Data, and Analytics (HiPC), 2017, pp.183-192
Publisher
IEEE
Start Page
183
End Page
192
Journal / Book Title
23rd IEEE International Conference on High Peformance Computing, Data, and Analytics (HiPC)
Copyright Statement
© 2016 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
Sponsor
Siemens AG
Grant Number
EESA_P43327
Source
23rd IEEE International Conference on High Peformance Computing, Data, and Analytics (HiPC)
Publication Status
Published
Start Date
2016-12-19
Finish Date
2016-12-22
Coverage Spatial
Hyderabad, India