Merge pull request #465 from firesim/cleanMarshalDocs
Move even more documentation to FireMarshal's own readthedocs.
This commit is contained in:
commit
1f767e4df2
|
@ -1,65 +0,0 @@
|
||||||
Quick Start
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
All workload-generation related commands and code are in ``firesim/sw/firesim-software``.
|
|
||||||
|
|
||||||
FireMarshal comes with a few basic workloads that you can build right out of
|
|
||||||
the box (in ``workloads/``). In this example, we will build and test the
|
|
||||||
buildroot-based linux distribution (called *br-base*).
|
|
||||||
|
|
||||||
We begin by building the workload. This will build the linux binary, the platform
|
|
||||||
specific drivers (and initramfs), and the root filesystem:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal build workloads/br-base.json
|
|
||||||
|
|
||||||
The first time you build a workload may take a long time (buildroot must
|
|
||||||
download and cross-compile a large number of packages), but subsequent builds
|
|
||||||
of the same base will use cached results. Once the command completes, you
|
|
||||||
should see two new files in ``images/``: ``br-base-bin`` and ``br-base.img``.
|
|
||||||
These are the boot-binary (linux, initramfs, and boot loader) and root filesystem
|
|
||||||
(respectively). We can now launch this workload in qemu:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal launch workloads/br-base.json
|
|
||||||
|
|
||||||
You should now see linux booting and be presented with a login prompt. Sign in
|
|
||||||
as 'root' with password 'firesim'. From here you can manipulate files, run
|
|
||||||
commands, and generally use the image as if it had booted on real hardware. Any
|
|
||||||
changes you make here will be persistent between reboots. Once you are done
|
|
||||||
exploring, simply shutdown the workload:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ poweroff
|
|
||||||
|
|
||||||
It is typically not a good idea to modify the \*-base workloads directly since
|
|
||||||
many other workloads might inherit those changes. To make sure that we've
|
|
||||||
cleaned out any changes, let's clean and rebuild the workload:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal clean workloads/br-base.json
|
|
||||||
./marshal build workloads/br-base.json
|
|
||||||
|
|
||||||
Note that this build took significantly less time than the first; FireMarshal
|
|
||||||
caches intermediate build steps whenever possible. The final step is to run
|
|
||||||
this workload on the real firesim RTL with full timing accuracy. To do that we
|
|
||||||
must first install the workload:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal install workloads/br-base.json
|
|
||||||
|
|
||||||
This command creates a firesim workload file at
|
|
||||||
``firesim/deploy/workloads/br-base.json``. You can now run this workload using
|
|
||||||
the standard FireSim commands (e.g. :ref:`single-node-sim`, just change the
|
|
||||||
``workloadname`` option to "br-base.json" from "linux-uniform.json").
|
|
||||||
|
|
||||||
.. attention:: While the FireMarshal ``install`` command is the recommended way to create
|
|
||||||
firesim configurations, you can still hand-create firesim workloads if needed.
|
|
||||||
For example, the linux-uniform workload described in :ref:`single-node-sim` is
|
|
||||||
a manually created workload that uses the br-base-bin and br-base.img files
|
|
||||||
directly.
|
|
|
@ -2,52 +2,14 @@
|
||||||
|
|
||||||
Running Fedora on FireSim
|
Running Fedora on FireSim
|
||||||
=====================================
|
=====================================
|
||||||
All workload-generation related commands and code are in ``firesim/sw/firesim-software``.
|
FireSim supports running a fedora-based linux workload. To build this workload,
|
||||||
|
you can follow FireMarshal's `quickstart guide
|
||||||
|
<https://firemarshal.readthedocs.io/en/latest/quickstart.html>`_ (replace all
|
||||||
|
instances of ``br-base.json`` with ``fedora-base.json``).
|
||||||
|
|
||||||
FireMarshal comes with a Fedora-based workload that you can use right out of
|
The final step is to run this workload on the real firesim RTL with full timing
|
||||||
the box in ``workloads/fedora-base.json``. We begin by building the
|
accuracy. For the basic fedora distribution, we will use the pre-made firesim
|
||||||
workload (filesystem and boot-binary):
|
config at ``firesim/deploy/workloads/fedora-uniform.json``. Simply change the
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal build workloads/fedora-base.json
|
|
||||||
|
|
||||||
The first time you build a workload may take a long time (we need to download
|
|
||||||
and decompress a pre-built fedora image), but subsequent builds of the same
|
|
||||||
base will use cached results. Once the command completes, you should see two
|
|
||||||
new files in ``images/``: ``fedora-base-bin`` and ``fedora-base.img``. These
|
|
||||||
are the boot-binary (linux + boot loader) and root filesystem (respectively).
|
|
||||||
We can now launch this workload in qemu:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal launch workloads/fedora-base.json
|
|
||||||
|
|
||||||
You should now see linux booting and be presented with a login prompt. Sign in
|
|
||||||
as 'root' with password 'firesim'. From here you can download files, use the
|
|
||||||
package manager (e.g. 'dnf install'), and generally use the image as if it had
|
|
||||||
booted on real hardware with an internet connection. Any changes you make here
|
|
||||||
will be persistent between reboots. Once you are done exploring, simply
|
|
||||||
shutdown the workload:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ poweroff
|
|
||||||
|
|
||||||
It is typically not a good idea to modify the \*-base workloads directly since
|
|
||||||
many other workloads might inherit those changes. To make sure that we've
|
|
||||||
cleaned out any changes, let's clean and rebuild the workload:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
./marshal clean workloads/fedora-base.json
|
|
||||||
./marshal build workloads/fedora-base.json
|
|
||||||
|
|
||||||
Note that this build took significantly less time than the first; FireMarshal
|
|
||||||
caches intermediate build steps whenever possible. The final step is to run
|
|
||||||
this workload on the real firesim RTL with full timing accuracy. For the basic
|
|
||||||
fedora distribution, we will use the pre-made firesim config at
|
|
||||||
``firesim/deploy/workloads/fedora-uniform.json``. Simply change the
|
|
||||||
``workloadname`` option in ``firesim/deploy/config_runtime.ini`` to
|
``workloadname`` option in ``firesim/deploy/config_runtime.ini`` to
|
||||||
"fedora-uniform.json" and then follow the standard FireSim procedure for
|
"fedora-uniform.json" and then follow the standard FireSim procedure for
|
||||||
booting a workload (e.g. :ref:`single-node-sim` or :ref:`cluster-sim`).
|
booting a workload (e.g. :ref:`single-node-sim` or :ref:`cluster-sim`).
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
Defining Custom Workloads
|
Defining Custom Workloads
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
**Workloads** in FireSim consist of a series of **Jobs** that are assigned to
|
If you do not want to use :ref:`firemarshal`, you can still manually create custom workloads in FireSim. **Workloads** in FireSim consist of a series of **Jobs** that are assigned to
|
||||||
be run on individual simulations. Currently, we require that a Workload defines
|
be run on individual simulations. Currently, we require that a Workload defines
|
||||||
either:
|
either:
|
||||||
|
|
||||||
|
|
|
@ -22,10 +22,5 @@ and rootfs can then be launched on qemu or spike (for functional simulation), or
|
||||||
installed to firesim for running on real RTL.
|
installed to firesim for running on real RTL.
|
||||||
|
|
||||||
For more information, see the official `FireMarshal documentation
|
For more information, see the official `FireMarshal documentation
|
||||||
<https://firemarshal.readthedocs.io/en/latest/>`_ and the quickstart guide
|
<https://firemarshal.readthedocs.io/en/latest/>`_, and its `quickstart
|
||||||
below:
|
tutorial <https://firemarshal.readthedocs.io/en/latest/quickstart.html>`_.
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 2
|
|
||||||
|
|
||||||
FireMarshal-QuickStart
|
|
|
@ -1,19 +1,14 @@
|
||||||
Workloads
|
Workloads
|
||||||
================
|
================
|
||||||
|
|
||||||
.. attention::
|
|
||||||
|
|
||||||
FireSim is moving to a new workload-generation tool :ref:`firemarshal`.
|
|
||||||
These instructions will be deprecated in future releases of FireSim.
|
|
||||||
|
|
||||||
This section describes workload definitions in FireSim.
|
This section describes workload definitions in FireSim.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:caption: Workloads:
|
:caption: Workloads:
|
||||||
|
|
||||||
|
FireMarshal
|
||||||
Defining-Custom-Workloads
|
Defining-Custom-Workloads
|
||||||
|
|
||||||
SPEC-2017
|
SPEC-2017
|
||||||
Booting-Fedora
|
Booting-Fedora
|
||||||
ISCA-2018-Experiments
|
ISCA-2018-Experiments
|
||||||
|
|
|
@ -37,7 +37,7 @@ this like so:
|
||||||
::
|
::
|
||||||
|
|
||||||
cd firesim/sw/firesim-software
|
cd firesim/sw/firesim-software
|
||||||
./marshal -v build workloads/br-base.json
|
./marshal -v build br-base.json
|
||||||
|
|
||||||
This process will take about 10 to 15 minutes on a ``c5.4xlarge`` instance.
|
This process will take about 10 to 15 minutes on a ``c5.4xlarge`` instance.
|
||||||
Once this is completed, you'll have the following files:
|
Once this is completed, you'll have the following files:
|
||||||
|
|
|
@ -22,7 +22,7 @@ distribution. You can do this like so:
|
||||||
::
|
::
|
||||||
|
|
||||||
cd firesim/sw/firesim-software
|
cd firesim/sw/firesim-software
|
||||||
./marshal -v build workloads/br-base.json
|
./marshal -v build br-base.json
|
||||||
|
|
||||||
This process will take about 10 to 15 minutes on a ``c5.4xlarge`` instance.
|
This process will take about 10 to 15 minutes on a ``c5.4xlarge`` instance.
|
||||||
Once this is completed, you'll have the following files:
|
Once this is completed, you'll have the following files:
|
||||||
|
|
|
@ -24,7 +24,6 @@ New to FireSim? Jump to the :ref:`firesim-basics` page for more info.
|
||||||
|
|
||||||
Advanced-Usage/Manager/index
|
Advanced-Usage/Manager/index
|
||||||
Advanced-Usage/Workloads/index
|
Advanced-Usage/Workloads/index
|
||||||
Advanced-Usage/FireMarshal/index
|
|
||||||
Advanced-Usage/Generating-Different-Targets.rst
|
Advanced-Usage/Generating-Different-Targets.rst
|
||||||
Advanced-Usage/Debugging/index
|
Advanced-Usage/Debugging/index
|
||||||
Advanced-Usage/Supernode.rst
|
Advanced-Usage/Supernode.rst
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 290d4e450eefdf99561eea953f18018475a3245f
|
Subproject commit 925e85e8f3dd965dbda71c721a16ea0183d17c29
|
Loading…
Reference in New Issue