sarchlab / mgpusim

A highly-flexible GPU simulator for AMD GPUs.
MIT License
96 stars 22 forks source link
computer-architecture gpu performance-modeling simulation

MGPUSIM

GitHub Discussions

MGPUSim Test

Go Reference Go Report Card

MGPUSim is a high-flexibility, high-performance, high-accuracy GPU simulator. It models GPUs that run the AMD GCN3 instruction sets. One main feature of MGPUSim is the support for multi-GPU simulation (you can still use it for single-GPU architecture research).

Getting Started

Develop with Modified Version of Akita (or other depending libraries)

If a modification to Akita is required, you can clone Akita next to the MGPUSim directory in your system. Then, you can modify the go.mod file to include the following line.

replace github.com/sarchlab/akita/v3 => ../akita

This line will direct the go compiler to use your local version of Akita rather than the official release of Akita.

Benchmark Support

AMD APP SDK DNN Mark HeteroMark Polybench Rodinia SHOC
Bitonic Sort MaxPooling AES ATAX Needleman-Wunsch BFS
Fast Walsh Transform ReLU FIR BICG FFT
Floyd-Warshall KMeans SPMV
Matrix Multiplication PageRank Stencil2D
Matrix Transpose
NBody
Simple Covolution

Default Performance Metrics Supported

You can run a simulation with the --report-all argument to enable all the performance metrics.

How to Prepare Your Own Experiment

Contributing

Citation

If you use MGPUSim in your research, please cite our ISCA '19 paper.

@inproceedings{sun19mgpusim, 
    author = {Sun, Yifan and Baruah, Trinayan and Mojumder, Saiful A. and Dong, Shi and Gong, Xiang and Treadway, Shane and Bao, Yuhui and Hance, Spencer and McCardwell, Carter and Zhao, Vincent and Barclay, Harrison and Ziabari, Amir Kavyan and Chen, Zhongliang and Ubal, Rafael and Abell\'{a}n, Jos\'{e} L. and Kim, John and Joshi, Ajay and Kaeli, David}, 
    title = {MGPUSim: Enabling Multi-GPU Performance Modeling and Optimization}, 
    year = {2019}, 
    isbn = {9781450366694}, 
    publisher = {Association for Computing Machinery}, 
    address = {New York, NY, USA}, 
    url = {https://doi.org/10.1145/3307650.3322230}, 
    doi = {10.1145/3307650.3322230}, 
    booktitle = {Proceedings of the 46th International Symposium on Computer Architecture}, 
    pages = {197–209}, 
    numpages = {13}, 
    keywords = {simulation, multi-GPU systems, memory management}, 
    location = {Phoenix, Arizona}, 
    series = {ISCA '19} 
}

Papers that use MGPUSim:

License

MIT © Project Akita Developers.