sferez / SSPP_Sparse_Matrix_CUDA

Small Scale Parallel Programming, Sparse Matrix multiplication with CUDA

Repository from Github https://github.comsferez/SSPP_Sparse_Matrix_CUDARepository from Github https://github.comsferez/SSPP_Sparse_Matrix_CUDA

Small Scale Parallel Computing

This study examined the performance of OpenMP and CUDA parallelization for Sparse matrix-vector multiplication (SpMV) on a hybrid CPU and GPU platform.

It implemented both programming models on a set of sparse matrices with varying sizes and densities.

Report

The report is available at Medium: Article

Article

Structure

The following code folders are included in this project:

  • 'input' contains the input matrices in matrix market format
  • 'output' contains the sparsity pattern of some output matrices
  • 'src/CUDA' contains the CUDA code parallelization
  • 'src/OMP' contains the OpenMP code parallelization
  • 'src' contains the custom class and python script to run the code

Requirements

  • CMake
  • CUDA
  • OpenMP
  • Python 3 (optional)

Build

Each folder contains a CMakeLists.txt file to build the code. Each parallelization is built separately for testing purpose.

Python script have been provided to run all the configurations and generate the results.

Authors

About

Small Scale Parallel Programming, Sparse Matrix multiplication with CUDA


Languages

Language:C++ 45.6%Language:Cuda 41.9%Language:C 7.6%Language:CMake 2.5%Language:Python 2.3%