Skip to content

Latest commit

Β 

History

History
124 lines (93 loc) Β· 3.31 KB

README.md

File metadata and controls

124 lines (93 loc) Β· 3.31 KB

RTSpMSpM: Harnessing Ray Tracing for Efficient Sparse Matrix Computations

This repository contains the code and benchmark suite for RTSpMSpM, a novel approach that leverages NVIDIA’s hardware-accelerated ray tracing (RT Cores) to speed up Sparse Matrix Γ— Sparse Matrix Multiplication (SpMSpM). This project demonstrates the feasibility and benefits of mapping sparse matrix operations to the ray tracing pipeline.

Technologies Used

  • Languages: C++, Python
  • GPU Frameworks: CUDA 12.3, NVIDIA OptiX 8.0.0, cuSPARSE
  • Build Tools: CMake 3.22, GCC 7.5.0
  • Containers: Docker 27.3.1 with NVIDIA support
  • Datasets: SuiteSparse Matrix Collection

Project Structure

RTSpMSpM/
β”œβ”€β”€ cuSparse/                # GPU baseline using cuSPARSE
β”œβ”€β”€ Dockerfile/              # Docker build scripts
β”œβ”€β”€ optixSpMSpM/             # OptiX SDK and build system
β”‚   β”œβ”€β”€ build/               # Compiled binaries and CMake output
β”‚   └── src/            
β”‚       β”œβ”€β”€ data/            # Input Datasets
β”‚       β”œβ”€β”€ support/
β”‚       β”œβ”€β”€ sutil/     
β”‚       └── optixSpMSpM/     # Core ray tracing-based SpMSpM logic
└── Tool/
    └── Script/
        β”œβ”€β”€ AE_test.py               # Main script to launch experiments and benchmark
        β”œβ”€β”€ install.sh               # Compile program
        └── download_dataset.sh      # Benchmark automation script

Installation and Setup

Step 1: Clone the Repository

git clone https://github.com/escalab/RTSpMSpM.git
cd RTSpMSpM

Step 2: Build the Docker Image

cd Dockerfile
./build_image.sh

Step 3: Start the Docker Container

./start_image.sh

Step 4: Enter the Docker Container

./run.sh

Step 5: Install and Compile Inside the Container

cd RTSpMSpM/scripts
./install.sh

How to Run

If runned the installed script, skip to step 3: To run the experiment

To compile the GPU Baseline:

cd /home/RTSpMSpM/cuSparse/src
make

To compile the RT-based SpMSpM implementation:

mkdir -p /home/RTSpMSpM/optixSpMSpM/build
cd /home/RTSpMSpM/optixSpMSpM/build
cmake ../src
make

To run the experiment:

python3 /home/RTSpMSpM/scripts/AE_test.py

6. Artifact Details

  • Artifact Availability: Public
    πŸ“¦ Zenodo Archive
    πŸ’» GitHub Repo

  • Expected Output:
    Execution time (latency in milliseconds) for sparse matrix benchmarks, shown in logs or console output.

  • Evaluation Time:

    • Setup: ~10 minutes
    • Experiment Runtime: 2–3 hours
  • Hardware Requirements:

    • GPU: NVIDIA GPU with compute capability 5.0+ (7.5 recommended)
    • CPU: Original Hardware Intel Core i7 14700K
    • RAM: Original Hardware 128GB DDR4
    • Disk Space: up to ~2GB per datasets
  • Software Requirements:

    • CUDA 12.3
    • Docker 27.3.1 (or cmake 3.22 + gcc 7.5.0 if building natively)
    • nvidia-docker recommended for easy setup
  • Licensing:

    • Code: MIT License
    • Datasets: Original SuiteSparse licenses

7. Citation

If you use this artifact in your research, please cite the corresponding ISCA 2025 paper:

RT+SpMSpM: Harnessing Ray Tracing for Efficient Sparse Matrix Computations, ISCA 2025.