firesim/README.md

111 lines
6.1 KiB
Markdown
Raw Normal View History

# FireSim: Easy-to-use, Scalable, FPGA-accelerated Cycle-accurate Hardware Simulation
2018-06-20 02:00:23 +08:00
![FireSim Documentation Status](https://readthedocs.org/projects/firesim/badge/)
## Contents
1. [Using FireSim](#using-firesim)
2. [What is FireSim?](#what-is-firesim)
3. [What can I simulate with FireSim?](#what-can-i-simulate-with-firesim)
4. [Need help?](#need-help)
5. [Contributing](#contributing)
6. [Publications](#publications)
## Using FireSim
To get started with using FireSim, see the tutorials on the FireSim documentation
site: https://docs.fires.im/.
Another good overview (in video format) is our tutorial from the Chisel Community Conference on [YouTube](https://www.youtube.com/watch?v=S3OriQnJXYQ).
2018-08-13 00:18:31 +08:00
## What is FireSim?
FireSim is an [open-source](https://github.com/firesim/firesim) cycle-accurate
FPGA-accelerated full-system hardware simulation platform that runs on cloud FPGAs (Amazon EC2 F1).
FireSim is actively developed in the [Berkeley Architecture Research
Group][ucb-bar] in the [Electrical Engineering and Computer Sciences
Department][eecs] at the [University of California, Berkeley][berkeley].
You can learn more about FireSim in the following places:
2018-08-13 00:18:31 +08:00
* **FireSim website**: https://fires.im
* **FireSim ISCA 2018 Paper**: [Paper PDF](https://sagark.org/assets/pubs/firesim-isca2018.pdf) | [IEEE Xplore](https://ieeexplore.ieee.org/document/8416816) | [ACM DL](https://dl.acm.org/citation.cfm?id=3276543) | [BibTeX](https://sagark.org/assets/pubs/firesim-isca2018.bib.txt) | Selected as one of IEEE Micros “Top Picks from Computer Architecture Conferences, 2018”.
2018-08-13 00:18:31 +08:00
* **FireSim documentation**: https://docs.fires.im
* **Two-minute lightning talk from ISCA 2018** (FireSim simulating a datacenter): [YouTube](https://www.youtube.com/watch?v=4XwoSe5c8lY)
* **Chisel Community Conference Tutorial**: [YouTube](https://www.youtube.com/watch?v=S3OriQnJXYQ)
* **Updates/News**: [Changelog](/CHANGELOG.md) | [FireSim Blog](https://fires.im/blog/) | [Twitter](https://twitter.com/firesimproject)
## What can I simulate with FireSim?
FireSim can simulate arbitrary hardware designs written in
[Chisel](https://chisel.eecs.berkeley.edu). With FireSim, you
can write your own RTL (processors, accelerators, etc.) and run it at
near-FPGA-prototype speeds on cloud FPGAs, while obtaining cycle-accurate
performance results (i.e. matching what you would find if you taped-out
a chip). Depending on the hardware design and the simulation scale,
FireSim simulations run at **10s to 100s of MHz**. You can also integrate
custom software models for components that you don't want/need to write as RTL.
FireSim was originally developed to simulate datacenters by combining
open RTL for RISC-V processors with a custom cycle-accurate network simulation.
By default, FireSim provides all the RTL and models necessary
to **cycle-exactly** simulate from **one to thousands of multi-core compute
nodes**, derived directly from **silicon-proven** and **open** target-RTL
([RISC-V][riscv] [Rocket Chip][rocket-chip] and [BOOM][boom]), with an optional
**cycle-accurate network simulation** tying them together. FireSim also
provides a [Linux distribution](https://github.com/firesim/firesim-software)
that is compatible with the RISC-V systems it simulates and
[automates](https://docs.fires.im/en/latest/Advanced-Usage/Workloads/Defining-Custom-Workloads.html)
the process of including new workloads into this Linux distribution.
These simulations run fast
enough to interact with Linux on the simulated system at the command line, [like
a real
computer](https://twitter.com/firesimproject/status/1031267637303508993). Users
can even [SSH into simulated systems in
FireSim](http://docs.fires.im/en/latest/Advanced-Usage/Miscellaneous-Tips.html#experimental-support-for-sshing-into-simulated-nodes-and-accessing-the-internet-from-within-simulations)
and access the Internet from within them.
Head to the [FireSim Website](https://fires.im) to learn more.
2018-05-18 01:56:49 +08:00
## Need help?
* Join the FireSim Mailing list: https://groups.google.com/forum/#!forum/firesim
* Post an issue on this repo
2018-05-19 02:05:49 +08:00
* Follow on Twitter for project updates: [@firesimproject](https://twitter.com/firesimproject)
2018-05-18 01:56:49 +08:00
## Contributing
* See [CONTRIBUTING.md](/CONTRIBUTING.md)
## Publications
### **ISCA 2018**: FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud
You can learn more about FireSim in our ISCA 2018 paper, which covers the overall FireSim infrastructure and large distributed simulations of networked clusters. This paper was **selected as one of IEEE Micros “Top Picks from Computer Architecture Conferences, 2018”.**
> Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol
Lee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing
Huang, Kyle Kovacs, Borivoje Nikolic, Randy Katz, Jonathan Bachrach, and Krste
Asanović. **FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in
2018-07-11 23:50:52 +08:00
the Public Cloud**. *In proceedings of the 45th International Symposium
on Computer Architecture (ISCA18)*, Los Angeles, CA, June 2018.
[Paper PDF](https://sagark.org/assets/pubs/firesim-isca2018.pdf) | [IEEE Xplore](https://ieeexplore.ieee.org/document/8416816) | [ACM DL](https://dl.acm.org/citation.cfm?id=3276543) | [BibTeX](https://sagark.org/assets/pubs/firesim-isca2018.bib.txt)
### **FPGA 2019**: FASED: FPGA-Accelerated Simulation and Evaluation of DRAM
Our paper from FPGA 2019 details the DRAM model used in FireSim:
> David Biancolin, Sagar Karandikar, Donggyu Kim, Jack Koenig, Andrew Waterman, Jonathan Bachrach, Krste Asanović, **FASED: FPGA-Accelerated Simulation and Evaluation of DRAM**, In proceedings of the 27th ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Seaside, CA, February 2018.
[Paper PDF](http://people.eecs.berkeley.edu/~biancolin/papers/fased-fpga19.pdf)
2018-08-13 00:18:31 +08:00
You can find other publications, including publications that *use* FireSim on the [FireSim Website](https://fires.im/publications/).
2018-08-13 00:18:31 +08:00
[ucb-bar]: http://bar.eecs.berkeley.edu
[eecs]: https://eecs.berkeley.edu
[berkeley]: https://berkeley.edu
[riscv]: https://riscv.org/
[rocket-chip]: https://github.com/freechipsproject/rocket-chip
[boom]: https://github.com/ucb-bar/riscv-boom