Giter Club home page Giter Club logo

tyche-artifact's Introduction

Tyche-Artifact

What's Tyche?

Tyche is a hardware prefetcher designed to improve the performance of indirect memory access(IMAs) patterns. It utilizes a bilateral propagation mechanism to accurately uncover the instruction dependencies in simple chains with moderate length (rather than complex graphs). Based on the exact instruction dependencies, Tyche can effectively recognize a variety of IMAs patterns, including nonlinear ones, and generate accurate prefetching requests continuously.

About The Framework

Tyche is integrated within the ChampSim simulator. Since the ChampSim does not maintain the operand values, decoding information, or the execution unit, we have made several modifications. These modifications entail:

  1. expanding the original Champsim trace format to encompass both the instruction code and execution result.
  2. introducing two structures, the register file and the memory, to maintain the architectural-level state during execution.
  3. incorporating decode logic and execution unit to traverse instructions in the dependency chain.

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

Run simulation

Execute the binary directly.

$ bin/champsim --warmup_instructions 20000000 --simulation_instructions 100000000 -loongarch trace_name.champsim.trace.xz

If you encounter "mmap error!", please execute the command "echo 1 > /proc/sys/vm/overcommit_memory".

Trace

The traces are generated by QEMU, which has been customized for the purpose of trace generation. The QEMU plugin for trace generation can be found here; thanks to Xinyu Li for providing this plugin. Once the plugin is installed, you can generate traces for LoongArch. For reference, an illustrative trace sample (a segment of hj2) and its binary executable file are available at here.

Cite

If you find our work useful, please consider citing:

@article{xue2024tyche,
  title={Tyche: An Efficient and General Prefetcher for Indirect Memory Accesses},
  author={Xue, Feng and Han, Chenji and Li, Xinyu and Wu, Junliang and Zhang, Tingting and Liu, Tianyi and Hao, Yifan and Du, Zidong and Guo, Qi and Zhang, Fuxin},
  journal={ACM Transactions on Architecture and Code Optimization},
  year={2024},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  doi = {10.1145/3641853}
}

tyche-artifact's People

Contributors

xuefeng16 avatar

Stargazers

HongYu Guo avatar  avatar  avatar guo guangyao avatar  avatar  avatar Nathan Gober avatar Martin Three avatar Chenji_Han avatar Yihua avatar Xinyu Li avatar  avatar MONONOKE avatar  avatar XinRan Zhao avatar

Watchers

 avatar

tyche-artifact's Issues

Congratulations!

Thank you for sharing the code. This is truly an exceptional achievement in cache pre-fetching. I firmly believe that it has the potential to be applied to the majority of popular IP architectures in use today. It's remarkable to witness the dawn of a new era in IP design.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.