FireSim now open-sourced!

218 views
Skip to first unread message

Sagar Karandikar

unread,
May 21, 2018, 1:15:45 PM5/21/18
to RISC-V HW Dev, RISC-V SW Dev, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
We’re excited to announce that FireSim is now open-sourced! FireSim enables cycle-accurate FPGA-accelerated simulation of Rocket Chip-based systems on Amazon EC2 F1 at 10s to 100s of MHz depending on simulation scale (e.g. ~150 MHz for a single quad-core Rocket Chip, ~10 MHz for a 1024-node, 4096-core networked datacenter of Rocket Chips with an aggregate of 16 TB of memory).

You can find the FireSim release here: https://github.com/firesim/firesim.
We’ve written extensive documentation, which you can find here: https://docs.fires.im.

In this release, we support 2 use cases:

1) Parallel single-node simulation: This simulates many Rocket Chips in parallel (without a simulated network) to support running large single-node benchmark suites. For example, since SPECInt 2017 with reference inputs consists of several individual long-running benchmarks, we can run them in parallel and collect cycle-accurate performance results for the full reference inputs in ~1 day, automatically (see our docs for running SPEC: https://docs.fires.im/en/latest/Advanced-Usage/Workloads/SPEC-2017.html).
2) Datacenter/cluster simulation: Here, we can simulate datacenters of Rocket Chips (e.g. 1024 Rocket Chip nodes) interconnected by an Ethernet network, with cycle-accuracy. This use case is detailed in our paper to appear at ISCA 2018 (preprint: https://sagark.org/assets/pubs/firesim-isca2018.pdf, lightning talk: https://www.youtube.com/watch?v=4XwoSe5c8lY). We include scripts and documentation in our public release that allow users to reproduce the graphs in this paper automatically (see the docs: https://docs.fires.im/en/latest/Advanced-Usage/Workloads/ISCA-2018-Experiments.html).

We have a FireSim-specific mailing list (CC'd), which you can join here: https://groups.google.com/forum/#!forum/firesim. You can also follow our Twitter account, https://twitter.com/firesimproject, to get project updates.

Lastly, if you’re a researcher, you can apply to get free AWS credits from Amazon: https://aws.amazon.com/grants/.

We’re using this infrastructure for our own research at Berkeley, so we’ll be continually adding features -- we welcome issues and pull-requests!

-Sagar

Sagar Karandikar

unread,
May 21, 2018, 8:16:51 PM5/21/18
to muhamma...@gmail.com, RISC-V HW Dev, RISC-V SW Dev, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
The end goal is similar to gem5 - ultimately we want to collect performance results for some hardware design - but the approaches are different. 

In FireSim, the simulator is automatically derived from the RTL that describes a hardware design, in this case Rocket Chip (although the methodology is not specific to Rocket Chip). So the simulator "implements" the RISC-V ISA as an artifact of the fact that it is modeling Rocket Cores (that implement RISC-V) on the FPGA. Similarly, we can plug-in "BOOM Chips" and model those without extra effort, since the simulation is derived from the RTL (this is a WIP, should show up on a branch soon).

With our automation, we're aiming to achieve the ease-of-use of gem5, but with the performance of FPGA-accelerated simulation, all while being derived from real hardware implementations rather than handwritten abstract-models.

-Sagar

On Mon, May 21, 2018 at 12:03 PM Muhammad Ali Akhtar <muhamma...@gmail.com> wrote:
Correct me If I am wrong.

Firesim is something similar to GEM5? The difference is GEM5 runs purely on x86 host without using any FPGA acceleration, (thats why GEM5 simulation are slow i.e. KIPS) and Firesim uses FPGA accelerators on Amazon F1 to speed up the simulation speed

Am I right?

Secondly, Firesim currently only supports Rocket and doesn't support other ISAs (x86, arm) like gem5.

My apologies if the questions / comments are too trivial or complete nonsense. I am a beginner. 

Muhammad Ali Akhtar
Principal Design Engineer
http://www.linkedin.com/in/muhammadakhtar

--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/sw-dev/CAFFSD%2B9YqSgA%3DJO_g6utJyS0sEav4qXakTmi9bUypOxSUTPHGA%40mail.gmail.com.

Shreyas Shah

unread,
May 21, 2018, 8:20:57 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, RISC-V HW Dev, RISC-V SW Dev, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
I get this error while submodule update -- init, after downloading firechip ..  Any help?

To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "FireSim" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+unsubscribe@googlegroups.com.
To post to this group, send email to fir...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/CAFFSD%2B9L40C9vh2A3CrR9%3D_Wz0FsS_OVNqpt4b8wCYXn5y0jog%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Shreyas Shah

unread,
May 21, 2018, 8:23:36 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
I get this error while submodule update -- init, after downloading firechip ..  Any help?


To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.

Shreyas Shah

unread,
May 21, 2018, 8:26:31 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
I get this error while submodule update -- init, after downloading firechip ..  Any help?


Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'g...@github.com:firesim/icenet.git' into submodule path 'icenet' failed


On Mon, May 21, 2018 at 5:23 PM, Shreyas Shah <shreya...@esperantotech.com> wrote:
I get this error while submodule update -- init, after downloading firechip ..  Any help?

Sagar Karandikar

unread,
May 21, 2018, 8:37:45 PM5/21/18
to shreya...@esperantotech.com, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
The master branch of firechip is missing the commit that changed all submodules to https (we weren't enforcing good branch discipline until recently on our submodules :) -- masters of all submodules we control will match firesim master in the future). 

You can fix this by using the version of firechip that is submoduled in firesim instead:

Alternatively, you can setup keys with GitHub -- but you should probably be using the version of firechip submoduled in firesim anyway.

-Sagar



On Mon, May 21, 2018 at 5:26 PM Shreyas Shah <shreya...@esperantotech.com> wrote:
I get this error while submodule update -- init, after downloading firechip ..  Any help?


Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'g...@github.com:firesim/icenet.git' into submodule path 'icenet' failed

On Mon, May 21, 2018 at 5:23 PM, Shreyas Shah <shreya...@esperantotech.com> wrote:
I get this error while submodule update -- init, after downloading firechip ..  Any help?

On Mon, May 21, 2018 at 5:20 PM, Shreyas Shah <shreya...@esperantotech.com> wrote:
I get this error while submodule update -- init, after downloading firechip ..  Any help?
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+u...@googlegroups.com.

Shreyas Shah

unread,
May 21, 2018, 8:53:02 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
Thanks Sagar, still same error. here is the complete log after I forked the firesim in my git account. 

sshah@cielolago:~/firechip % git clone https://github.com/shreyasshahgithub/firechip.git
Cloning into 'firechip'...
remote: Counting objects: 1180, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 1180 (delta 35), reused 75 (delta 17), pack-reused 1076
Receiving objects: 100% (1180/1180), 939.42 KiB | 0 bytes/s, done.
Resolving deltas: 100% (516/516), done.
sshah@cielolago:~/firechip % git submodule update --init
sshah@cielolago:~/firechip % cd firechip/
sshah@cielolago:~/firechip/firechip % git submodule update --init
Submodule 'boom' (https://github.com/ucb-bar/riscv-boom.git) registered for path 'boom'
Submodule 'icenet' (g...@github.com:firesim/icenet.git) registered for path 'icenet'
Submodule 'riscv-tools' (https://github.com/firesim/riscv-tools.git) registered for path 'riscv-tools'
Submodule 'rocket-chip' (https://github.com/ucb-bar/rocket-chip.git) registered for path 'rocket-chip'
Submodule 'sifive-blocks' (https://github.com/sifive/sifive-blocks.git) registered for path 'sifive-blocks'
Submodule 'testchipip' (https://github.com/ucb-bar/testchipip.git) registered for path 'testchipip'
Cloning into 'boom'...
remote: Counting objects: 7618, done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 7618 (delta 39), reused 37 (delta 13), pack-reused 7518
Receiving objects: 100% (7618/7618), 3.46 MiB | 0 bytes/s, done.
Resolving deltas: 100% (4649/4649), done.
Submodule path 'boom': checked out '1373dc5d3b8b38c35dd1fcd1b0dca99a30d1f7e6'
Cloning into 'icenet'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'g...@github.com:firesim/icenet.git' into submodule path 'icenet' failed
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "FireSim" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+unsubscribe@googlegroups.com.

Shreyas Shah

unread,
May 21, 2018, 9:13:05 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
Thanks Sagar, pulled the version with tag  c327d76 and it worked... 

To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.

Shreyas Shah

unread,
May 21, 2018, 9:54:55 PM5/21/18
to Sagar Karandikar, muhamma...@gmail.com, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
Hi Sagar,

I ran sourceme-f1-full.sh in firesim directory, it does not find env.sh, hdk_setup.sh ... Are these files supposed to be only on AWS infra?

Regards,
Shreyas 

bash-4.2$ ./sourceme-f1-full.sh 
./sourceme-f1-full.sh: line 9: env.sh: No such file or directory
./sourceme-f1-full.sh: line 13: hdk_setup.sh: No such file or directory
./sourceme-f1-full.sh: line 14: sdk_setup.sh: No such file or directory
/home/eng/sshah/firesim.pem: No such file or directory
FAIL: ERROR adding ~/firesim.pem to ssh-agent. does it exist?



On Mon, May 21, 2018 at 6:13 PM, Shreyas Shah <shreya...@esperantotech.com> wrote:
Thanks Sagar, pulled the version with tag  c327d76 and it worked... 

Sagar Karandikar

unread,
May 22, 2018, 1:02:23 PM5/22/18
to shreya...@esperantotech.com, fir...@googlegroups.com
Hi Shreyas,

Did you run the build-setup.sh script as mentioned in the docs? If you did and you're still getting those errors, could you send me the log that build-setup produces? (build-setup-log in the firesim directory).

-Sagar

On Mon, May 21, 2018 at 6:54 PM Shreyas Shah <shreya...@esperantotech.com> wrote:
Hi Sagar,

I ran sourceme-f1-full.sh in firesim directory, it does not find env.sh, hdk_setup.sh ... Are these files supposed to be only on AWS infra?

Regards,
Shreyas 

bash-4.2$ ./sourceme-f1-full.sh 
./sourceme-f1-full.sh: line 9: env.sh: No such file or directory
./sourceme-f1-full.sh: line 13: hdk_setup.sh: No such file or directory
./sourceme-f1-full.sh: line 14: sdk_setup.sh: No such file or directory
/home/eng/sshah/firesim.pem: No such file or directory
FAIL: ERROR adding ~/firesim.pem to ssh-agent. does it exist?


On Mon, May 21, 2018 at 6:13 PM, Shreyas Shah <shreya...@esperantotech.com> wrote:
Thanks Sagar, pulled the version with tag  c327d76 and it worked... 
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+u...@googlegroups.com.

Sagar Karandikar

unread,
May 22, 2018, 1:10:23 PM5/22/18
to Muhammad Akhtar, RISC-V HW Dev, RISC-V SW Dev, fir...@googlegroups.com, David Biancolin, Howard Mao, Donggyu Kim, Alon Amid, Krste Asanovic
That's right, if you add an accelerator in Rocket Chip (or really, any arbitrary Chisel RTL modifications), it will be automatically included in the simulated target by FireSim. Then, you can run software (with the custom instructions) on it as you would if you had the real silicon. Adding your own devices to the simulated system works similarly and we have a tutorial for it: https://docs.fires.im/en/latest/Developing-New-Devices/index.html

-Sagar

On Tue, May 22, 2018 at 2:15 AM Muhammad Ali Akhtar <muhamma...@gmail.com> wrote:
Sagar,

Thanks a lot for your response. Another quick question. as far as I know, both Rocket and Boom implement standard ISA and don't include any custom extension. If I add a custom extension / accelerator in my chisel code and than generate RTL, Firesim will automatically be able to derive the custom ISA from RTL and simulate it right?

Muhammad Ali Akhtar
Principal Design Engineer
http://www.linkedin.com/in/muhammadakhtar

Shreyas Shah

unread,
May 22, 2018, 1:43:36 PM5/22/18
to Sagar Karandikar, fir...@googlegroups.com
yes I ran build setup and looks good now... still one more issue : sudo access is required to install the driver, is it possible to bypass this stage and install in my home directory? 



On Tue, May 22, 2018 at 10:01 AM, Sagar Karandikar <sag...@eecs.berkeley.edu> wrote:
Hi Shreyas,

Did you run the build-setup.sh script as mentioned in the docs? If you did and you're still getting those errors, could you send me the log that build-setup produces? (build-setup-log in the firesim directory).

-Sagar

On Mon, May 21, 2018 at 6:54 PM Shreyas Shah <shreyas.shah@esperantotech.com> wrote:
Hi Sagar,

I ran sourceme-f1-full.sh in firesim directory, it does not find env.sh, hdk_setup.sh ... Are these files supposed to be only on AWS infra?

Regards,
Shreyas 

bash-4.2$ ./sourceme-f1-full.sh 
./sourceme-f1-full.sh: line 9: env.sh: No such file or directory
./sourceme-f1-full.sh: line 13: hdk_setup.sh: No such file or directory
./sourceme-f1-full.sh: line 14: sdk_setup.sh: No such file or directory
/home/eng/sshah/firesim.pem: No such file or directory
FAIL: ERROR adding ~/firesim.pem to ssh-agent. does it exist?


On Mon, May 21, 2018 at 6:13 PM, Shreyas Shah <shreyas.shah@esperantotech.com> wrote:
Thanks Sagar, pulled the version with tag  c327d76 and it worked... 
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "FireSim" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+unsubscribe@googlegroups.com.

Sagar Karandikar

unread,
May 22, 2018, 10:30:22 PM5/22/18
to Shreyas Shah, fir...@googlegroups.com
Which driver are you referring to?

On Tue, May 22, 2018 at 10:43 AM Shreyas Shah <shreya...@esperantotech.com> wrote:
yes I ran build setup and looks good now... still one more issue : sudo access is required to install the driver, is it possible to bypass this stage and install in my home directory? 


On Tue, May 22, 2018 at 10:01 AM, Sagar Karandikar <sag...@eecs.berkeley.edu> wrote:
Hi Shreyas,

Did you run the build-setup.sh script as mentioned in the docs? If you did and you're still getting those errors, could you send me the log that build-setup produces? (build-setup-log in the firesim directory).

-Sagar

To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "FireSim" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages