wuye9036 / gpu-apps

A repository where GPU applications are aggregated using a common build flow that supports multiple CUDA versions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repository contains a collection of the most common applications run in simulation. We continuously update this repo over time as different apps become more important. One of the primary goals of this repo is to provide a centralized place for apps that continue to build with different versions of CUDA. Many of the open-source repos for these applications, do not update the build infrastructure such that they build with modern CUDA, while still proving a way to build them with older versions (which may be useful for some apps). The apps in this repo can be built with CUDA 4.2 through 11.0 by simply doing:

# Make sure CUDA_INSTALL_PATH is set.
source ./src/setup_environment
make all -i -j -C ./src
make data # pulls all the data files the apps need to run and puts them in a centralized location

Some notes:

  • Some apps have additional dependencies beyond what Accel-Sim requires. This is why we recommend building with the "-i" flag to see what you can get to build on your current system. Our internal regressions verify that all the apps do build, but covering all their dependencies can be difficult. To see all the apps that built successfully, run:
ls ./bin/<cuda-vers>/release
  • We did not write many of these application suites - but we have tried to maintain their original structure and copyright information. If you use the apps in the suite with this infrastructure be sure to cite both the original paper the introduced the benchmark suite in question (i.e. the Che IISWC 2009 paper for Rodinia, etc...) and Accel-Sim paper that introduces the build infrastructure, indicating which version (i.e. label or commit#) of this repo you used so that others can reproduce your results:
Mahmoud Khairy, Zhensheng Shen, Tor M. Aamodt, Timothy G. Rogers,
Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling,
in 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)
  • This suite works easiest when launching work with Accel-Sim Framework: https://github.com/accel-sim/accel-sim-framework
  • The clean operation for many of these benchmark suites it not great... As a result if you truly want to clean we recommend you rm -rf the entire directory for the suite you want cleaned and perform a fresh git checkout of that folder. This is particularly important if you are trying to build for different versions of CUDA using the same directory.

./benchmarks/data_dirs

The repo itself has no data (since git is bad with big files). git-lfs is one option that could be explored, but since the public, free version of github limits the capacity and bandwidth using git-lfs, the data is simply retrieved via wget form a tarball hosted on our University servers.

./get_data.sh

will grab this data, as well as:

make data

AccelWattch

The source code for AccelWattch Microbenchmarks are located at:

src/cuda/accelwattch-ubench

To compile AccelWattch Microbenchmarks:

make accelwattch_ubench -C ./src

To compile AccelWattch validation set benchmarks for simulator runs:

make accelwattch_validation -C ./src

To compile AccelWattch validation set benchmarks for power profiling individual-kernels:

make accelwattch_hw_power -C ./src

To compile everything above for AccelWattch:

make accelwattch -C ./src

About

A repository where GPU applications are aggregated using a common build flow that supports multiple CUDA versions.


Languages

Language:HTML 40.1%Language:Cuda 21.5%Language:C++ 17.0%Language:C 14.4%Language:Makefile 5.2%Language:Shell 0.4%Language:Python 0.4%Language:Roff 0.3%Language:Fortran 0.2%Language:JavaScript 0.1%Language:CMake 0.1%Language:Perl 0.1%Language:CSS 0.1%Language:TeX 0.1%Language:M4 0.0%Language:Objective-C 0.0%Language:MATLAB 0.0%Language:GDB 0.0%Language:Assembly 0.0%