champsim

ChampSim is an open-source trace based simulator maintained at Texas A&M University and through the support of the computer architecture community.

https://github.com/champsim/champsim

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.5%) to scientific vocabulary

Keywords

computer-architecture simulation
Last synced: 6 months ago · JSON representation ·

Repository

ChampSim is an open-source trace based simulator maintained at Texas A&M University and through the support of the computer architecture community.

Basic Info
Statistics
  • Stars: 615
  • Watchers: 26
  • Forks: 511
  • Open Issues: 61
  • Releases: 4
Topics
computer-architecture simulation
Created over 8 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation

README.md

ChampSim

GitHub GitHub Workflow Status GitHub forks Coverage Status

ChampSim is a trace-based simulator for a microarchitecture study. If you have questions about how to use ChampSim, we encourage you to search the threads in the Discussions tab or start your own thread. If you are aware of a bug or have a feature request, open a new Issue.

Using ChampSim

ChampSim is the result of academic research. If you use this software in your work, please cite it using the following reference:

Gober, N., Chacon, G., Wang, L., Gratz, P. V., Jimenez, D. A., Teran, E., Pugsley, S., & Kim, J. (2022). The Championship Simulator: Architectural Simulation for Education and Competition. https://doi.org/10.48550/arXiv.2210.14324

If you use ChampSim in your work, you may submit a pull request modifying PUBLICATIONS_USING_CHAMPSIM.bib to have it featured in the documentation.

Download dependencies

ChampSim uses vcpkg to manage its dependencies. In this repository, vcpkg is included as a submodule. You can download the dependencies with git submodule update --init vcpkg/bootstrap-vcpkg.sh vcpkg/vcpkg install

Compile

ChampSim takes a JSON configuration script. Examine champsim_config.json for a fully-specified example. All options described in this file are optional and will be replaced with defaults if not specified. The configuration scrip can also be run without input, in which case an empty file is assumed. $ ./config.sh <configuration file> $ make

Download DPC-3 trace

Traces used for the 3rd Data Prefetching Championship (DPC-3) can be found here. (https://dpc3.compas.cs.stonybrook.edu/champsim-traces/speccpu/) A set of traces used for the 2nd Cache Replacement Championship (CRC-2) can be found from this link. (http://bit.ly/2t2nkUj)

Storage for these traces is kindly provided by Daniel Jimenez (Texas A&M University) and Mike Ferdman (Stony Brook University). If you find yourself frequently using ChampSim, it is highly encouraged that you maintain your own repository of traces, in case the links ever break.

Run simulation

Execute the binary directly. $ bin/champsim --warmup-instructions 200000000 --simulation-instructions 500000000 ~/path/to/traces/600.perlbench_s-210B.champsimtrace.xz

The number of warmup and simulation instructions given will be the number of instructions retired. Note that the statistics printed at the end of the simulation include only the simulation phase.

Add your own branch predictor, data prefetchers, and replacement policy

Copy an empty template $ mkdir prefetcher/mypref $ cp prefetcher/no_l2c/no.cc prefetcher/mypref/mypref.cc

Work on your algorithms with your favorite text editor $ vim prefetcher/mypref/mypref.cc

Compile and test Add your prefetcher to the configuration file. { "L2C": { "prefetcher": "mypref" } } Note that the example prefetcher is an L2 prefetcher. You might design a prefetcher for a different level.

$ ./config.sh <configuration file> $ make $ bin/champsim --warmup-instructions 200000000 --simulation-instructions 500000000 600.perlbench_s-210B.champsimtrace.xz

How to create traces

Program traces are available in a variety of locations, however, many ChampSim users wish to trace their own programs for research purposes. Example tracing utilities are provided in the tracer/ directory.

Evaluate Simulation

ChampSim measures the IPC (Instruction Per Cycle) value as a performance metric.
There are some other useful metrics printed out at the end of simulation.

Good luck and be a champion!

Owner

  • Name: ChampSim
  • Login: ChampSim
  • Kind: organization

Citation (CITATION.cff)

authors:
  - family-names: Gober
    given-names: Nathan
  - family-names: Chacon
    given-names: Gino
  - family-names: Pugsley
    given-names: Seth
  - family-names: Kim
    given-names: Jinchun
cff-version: 1.2.0
title: "ChampSim"
message: "If you use this software, please cite this article to support its continued development."
preferred-citation:
  authors:
    - family-names: Gober
      given-names: Nathan
    - family-names: Chacon
      given-names: Gino
    - family-names: Wang
      given-names: Lei
    - family-names: Gratz
      given-names: Paul V.
    - family-names: Jimenez
      given-names: Daniel A.
    - family-names: Teran
      given-names: Elvira
    - family-names: Pugsley
      given-names: Seth
    - family-names: Kim
      given-names: Jinchun
  title: "The Championship Simulator: Architectural Simulation for Education and Competition"
  type: article
  doi: 10.48550/arXiv.2210.14324
  year: 2022

GitHub Events

Total
  • Create event: 20
  • Release event: 1
  • Issues event: 60
  • Watch event: 100
  • Delete event: 19
  • Issue comment event: 299
  • Push event: 85
  • Pull request review comment event: 81
  • Pull request review event: 93
  • Pull request event: 109
  • Fork event: 88
Last Year
  • Create event: 20
  • Release event: 1
  • Issues event: 60
  • Watch event: 100
  • Delete event: 19
  • Issue comment event: 299
  • Push event: 85
  • Pull request review comment event: 81
  • Pull request review event: 93
  • Pull request event: 109
  • Fork event: 88

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 75
  • Total pull requests: 139
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 49
  • Total pull request authors: 26
  • Average comments per issue: 2.35
  • Average comments per pull request: 1.73
  • Merged pull requests: 68
  • Bot issues: 0
  • Bot pull requests: 44
Past Year
  • Issues: 33
  • Pull requests: 59
  • Average time to close issues: 10 days
  • Average time to close pull requests: 8 days
  • Issue authors: 23
  • Pull request authors: 15
  • Average comments per issue: 1.61
  • Average comments per pull request: 1.83
  • Merged pull requests: 30
  • Bot issues: 0
  • Bot pull requests: 18
Top Authors
Issue Authors
  • ngober (12)
  • maccoymerrell (9)
  • alberto-ros (4)
  • Quangmire (3)
  • GinoAC (3)
  • agusnt (2)
  • icuuuuuuer (2)
  • Deb-ncsu (2)
  • 0x161e-swei (2)
  • Abdul8081 (2)
  • ChristopherThomasHill (2)
  • dpuckett98 (2)
  • raffael-daltoe (2)
  • Pavitra07 (1)
  • yashgyy (1)
Pull Request Authors
  • dependabot[bot] (44)
  • ngober (29)
  • maccoymerrell (24)
  • akihikodaki (10)
  • joshualmashburn (6)
  • zmkzLe (4)
  • StickOnAStick (3)
  • Quangmire (2)
  • alberto-ros (2)
  • GinoAC (2)
  • etredal (2)
  • jofepre (2)
  • hrishi-06 (2)
  • AdiG-iitrpr (2)
  • cmolder (2)
Top Labels
Issue Labels
bug (38) feature request (26) help wanted (3) enhancement (2) Low Priority (1) question (1)
Pull Request Labels
dependencies (44) submodules (26) github_actions (18) enhancement (14) bug (11) Low Priority (2) feature request (2)

Dependencies

.github/workflows/buildcheck.yml actions
  • actions/checkout v2.3.4 composite
  • actions/upload-artifact v2 composite
.github/workflows/main.yml actions
  • DoozyX/clang-format-lint-action v0.13 composite
  • EndBug/add-and-commit v4 composite
  • actions/checkout v2 composite
.github/workflows/configurations.yml actions
  • actions/checkout v3 composite
.github/workflows/docs.yml actions
  • EndBug/add-and-commit v9 composite
  • actions/checkout v4 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3.1.2 composite
  • coverallsapp/github-action master composite
vcpkg.json vcpkg
  • bzip2 *
  • catch2 *
  • cli11 *
  • fmt *
  • liblzma *
  • nlohmann-json *
  • zlib *