This project implements an error correction (ECC) algorithm combined with a Rodinia benchamrks on a GPU using CUDA.
- CUDA Toolkit (with
nvcc
) - NVIDIA Nsight Systems (
nsys
) - Rodinia Benchmark Suite (specifically the BFS and Gaussian Elimination dataset)
- An NVIDIA GPU supporting architecture
sm_75
or higher
Enable NVIDIA Multi-Process Service (MPS). MPS allows multiple CUDA applications to run concurrently on the same GPU.
-
Start the MPS control daemon:
nvidia-cuda-mps-control -d
-
Set the pipe and log directories to temporary locations:
export CUDA_MPS_PIPE_DIRECTORY=/tmp/nvidia-mps export CUDA_MPS_LOG_DIRECTORY=/tmp/nvidia-log
-
Restrict your application to a specific GPU (e.g., GPU 0):
export CUDA_VISIBLE_DEVICES=0
After completing these steps, MPS will be enabled and ready for use with your CUDA app
To compile the CUDA files for this project, use the following command.
nvcc -o ecc_bfs ecc.cu ecc_main.cu bfs_new.cu kernel.cu kernel2.cu -arch=sm_75
nsys profile -o report ./ecc_bfs ../rodinia_3.1/data/bfs/graph1MW_6.txt &
./bfs ../rodinia_3.1/data/bfs/graph1MW_6.txt &
Utilize the same flow for Gaussian Elimination