Introduction
CUPBB aims to build a Compute Unified Parallel Building Blocks (CUPBB) template library using GPU computing. This library will contain popular fundamental building blocks for scientific computing including, but not limited to, sparse linear algebra (e.g. SpMV), scan, reduction, sort and etc. TThis library is programmed in CUDA C++ template classes based on the generic programming paradigm, and complies with the Apache License version 2.0.
Note: Due to my tight schedule and lack of funding, I will gradually update this work in a steady pace in the future.
Downloads
- latest source code (v1.0.3)NEW
more details about the changes in this version are availabe at changelog. I welcome any bug report or optimization suggestions!
Publications
- Yongchao Liu and Bertil Schmidt: "LightSpMV: faster CSR-based sparse matrix-vector multiplication on CUDA-enabled GPUs". 26th IEEE International Conference on Application-specific Systems, Architectures and Processors (ASAP 2015), 2015, pp. 82-89
- Yongchao Liu and Srinivas Aluru: "LightScan: faster scan primitive on CUDA compatible manycore processors". arXiv:1604.04815 [Cs.DC], 2016.
- Yongchao Liu and Bertil Schmidt: "LightSpMV: faster CUDA-compatible sparse matrix-vector multiplication using compressed sparse rows". Journal of Signal Processing Systems, 2017, doi:10.1007/s11265-016-1216-4.
Manual
This library is organized as follows:- the directory "apps" contains some example applications based on our template library, which include sparse matrix-vector multiplication (SpMV), prefix sum (scan), and page rank graph algoirthm (pagerank).
- the directory "include" contains the template library header files written in CUDA C++.
- the directory "third-party" contains third-party libraries including CUSP and ViennaCL.
Change Log
- January 06, 2016 (version 1.03)
- the first release of the library.
Contact
If any questions or improvements, please feel free to contact Liu, Yongchao.