2010 · 24 citations · 9 references
ComputingComputer EngineeringComputer ScienceParallel AlgorithmsParallel ComputingStorage SystemsData ParallelismGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingGraphics Processing UnitsMatrix ComputationParallel ArchitecturesMatrix MultiplicationParallel Matrix ComputationParallel Matrix MultiplicationParallel Matrix-vector MultiplicationScientific Computing AccelerationScientific Computing On GpusSparse Linear AlgebraSparse Matrix Computation
The Sparse Matrix-Vector product (SpMV) is a key operation in engineering and scientific computing. Methods for efficiently implementing it in parallel are critical to the performance of many applications. Modern Graphics Processing Units (GPUs) coupled with the advent of general purpose programming environments like NVIDIA's CUDA, have gained interest as a viable architecture for data-parallel general purpose computations. Currently, SpMV implementations using CUDA based on common sparse matrix format have already appeared. Among them, the performance of implementation based on ELLPACK-R format is the best. However, in this implementation, when the maximum number of nonzeros per row does substantially differ from the average, thread is suffering from load imbalance. This paper proposes a new matrix storage format called ELLPACK-RP, which combines ELLPACK-R format with JAD format, and implements the SpMV using CUDA based on it. The result proves that it can decrease the load imbalance and improve the SpMV performance efficiently.
9
Scalable parallel programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · 2008 · 1.6K citations
Scalable Parallel Programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · Queue · 2008 · 1.6K citations · Full text
NVIDIA Tesla: A Unified Graphics and Computing Architecture
Erik Lindholm, John Nickolls, Stuart F. Oberman et al. · IEEE Micro · 2008 · 1.3K citations