# pradyumna-chacham/gespmm-retuned architecture

> Architecture diagram of the GitHub repository pradyumna-chacham/gespmm-retuned, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pradyumna-chacham/gespmm-retuned
- Repository: https://github.com/pradyumna-chacham/gespmm-retuned

## Overview

GE-SpMM Retuned is a work-in-progress project for benchmarking and retuning CSR sparse–dense matrix multiplication for graph workloads. The README describes a planned workflow: run SpMM across GPU and CPU implementations, compare against library baselines, and study performance across matrix density and degree skew. It also plans per-matrix autotuning, a learned selector, and a PyTorch integration. The tree contains only a GPU hello-world source file; implementation paths and wiring for the planned capabilities are not present, so those relationships are not inferred.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gpu["GPU SpMM"]
  node_cuda_kernels["CUDA kernels"]
  node_cusparse["cuSPARSE baseline"]
  node_gpu_demo["GPU hello demo<br/>[hello_gpu.cu]"]
end

subgraph group_cpu["CPU SpMM"]
  node_openmp["OpenMP SpMM"]
  node_mkl["MKL baseline"]
end

subgraph group_study["Tuning and Study"]
  node_matrix_generator["Synthetic matrices"]
  node_autotuner["Kernel autotuning"]
  node_selector["Learned selector"]
end

subgraph group_integration["Integrations"]
  node_gcn["GCN benchmark"]
  node_pytorch_op["PyTorch custom op"]
end

node_user(("GNN workload"))

click node_gpu_demo "https://github.com/pradyumna-chacham/gespmm-retuned/blob/main/gpu/hello_gpu.cu"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cuda_kernels,node_cusparse,node_gpu_demo toneBlue
class node_openmp,node_mkl toneAmber
class node_matrix_generator,node_autotuner,node_selector toneMint
class node_gcn,node_pytorch_op toneRose
class node_user toneIndigo
```

## Components

### GPU SpMM

- **CUDA kernels**
- **cuSPARSE baseline**
- [GPU hello demo](https://github.com/pradyumna-chacham/gespmm-retuned/blob/main/gpu/hello_gpu.cu): `gpu/hello_gpu.cu`

### CPU SpMM

- **OpenMP SpMM**
- **MKL baseline**

### Tuning and Study

- **Synthetic matrices**
- **Kernel autotuning**
- **Learned selector**

### Integrations

- **GCN benchmark**
- **PyTorch custom op**

### Other components

- **GNN workload**
