Skip to content

darius513/DeltaSparse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DeltaSparse

DeltaSparse is a sparse matrix-matrix multiplication (SpGEMM) project with GPU-focused implementations for NVIDIA CUDA and AMD HIP/ROCm environments.

Repository layout

  • backend/spgemm_nv/ — NVIDIA CUDA implementation (nvcc build flow).
  • backend/spgemm_dcu/ — AMD/HIP implementation (hipcc build flow, optional rocsparse comparison mode).
  • data/ — sample .csr sparse matrix inputs.

Each backend also contains its own README with environment-specific details.

Build

NVIDIA backend

cd backend/spgemm_nv
make

AMD/HIP backend

cd backend/spgemm_dcu
make

Optional ROCm sparse-library comparison build:

cd backend/spgemm_dcu
make gpu=1

Run

Both backends accept similar runtime modes:

  • Random matrix generation
./Csrsparse 0 <rows_A> <cols_A> <sparsity_A> <sparsity_B> <random_seed>
  • Read matrix A from CSR file
./Csrsparse 1 <csr_file_path> <sparsity_B> <random_seed>

Example with provided data:

./Csrsparse 1 ../../data/bcsstk18.csr 0.01 1

Notes

  • This repository is GPU toolchain dependent; CUDA/ROCm compilers and libraries must be available in your environment.
  • Existing backend Makefiles currently expect cluster-style toolchain paths/module setups.

About

Repository for HiPC'23: DeltaSPARSE: High-Performance Sparse General Matrix-Matrix Multiplication on Multi-GPU Systems

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors