bias_boosted_perceptron
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.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: Ashantfet
- License: apache-2.0
- Language: C++
- Default Branch: main
- Size: 3.75 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
ChampSim
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.
🔍 Bias-Boosted Perceptron Branch Predictor
This repository contains a modified version of ChampSim integrated with a Bias-Boosted Perceptron branch predictor, named Ashant. The predictor improves traditional perceptron prediction by dynamically initializing and adapting the bias term based on branch behavior.
📘 Overview
🧠 Key Features:
- Dynamic Bias Heuristic: Uses
w₀ = round(B × (T - N))to adaptively set the bias. - Improved Learning: Prioritizes mispredicted branches for weight updates.
- Plug-and-Play: Seamless integration with ChampSim core simulation pipeline.
🏗️ Architecture

🔧 How to Build
Make sure you have all dependencies, except for
vcpkg, which is not included in this repo.
```bash
Install dependencies
sudo apt update sudo apt install cmake g++ libz-dev
Clone and build
git clone https://github.com/Ashantfet/Biasboostedperceptron.git cd Biasboostedperceptron ./build_champsim.sh bimodal no no no no lru 1
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: ASHANT KUMAR
- Login: Ashantfet
- Kind: user
- Location: Haridwar Uttarakhand India
- Twitter: Ashantkumar7
- Repositories: 1
- Profile: https://github.com/Ashantfet
computer science engineer
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
- Push event: 11
- Create event: 3
Last Year
- Push event: 11
- Create event: 3
Dependencies
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- EndBug/add-and-commit v9 composite
- actions/checkout v4 composite
- mattnotmitt/doxygen-action v1.9.8 composite
- DoozyX/clang-format-lint-action v0.18 composite
- EndBug/add-and-commit v9 composite
- actions/checkout v4 composite
- actions/checkout v4 composite
- actions/download-artifact v4.1.7 composite
- actions/upload-artifact v4 composite
- coverallsapp/github-action master composite
- breathe *
- sphinxcontrib-bibtex >=2.3.0
- bzip2 *
- catch2 *
- cli11 *
- fmt *
- liblzma *
- nlohmann-json *
- zlib *