|
---
|
|
---
|
|
title: BXE FireSim Documentation - Docker Image
|
|
title: BXE FireSim Documentation - Docker Image
|
|
version: v1.0.1
|
|
version: v2.0.0
|
|
firesim:
|
|
firesim:
|
|
version: v1.16.0
|
|
version: v1.18.0
|
|
url: https://github.com/firesim/firesim/tree/1.16.0
|
|
url: https://github.com/firesim/firesim/tree/1.16.0
|
|
docs-url: https://docs.fires.im/en/stable/Building-a-FireSim-Xclbin.html
|
|
docs-url: https://docs.fires.im/en/stable/Building-a-FireSim-Xclbin.html
|
|
chipyard:
|
|
chipyard:
|
|
version: v1.19.0
|
|
version: 766ea73
|
|
url: https://github.com/ucb-bar/chipyard/tree/1.9.0
|
|
url: https://github.com/ucb-bar/chipyard/tree/766ea735accefb531309b5be95313e02ce182127
|
|
firemarshal:
|
|
firemarshal:
|
|
version: 12784a4
|
|
version: b014183
|
|
url: https://github.com/firesim/FireMarshal/tree/12784a42cb1b2188536ef5bfc123f800374d3177
|
|
url: https://github.com/firesim/FireMarshal/tree/b014183ac6afed7fe1aca89fa010be8d13ad4079
|
|
aro-cn: D2021-2106030006
|
|
aro-cn: D2021-2106030006
|
|
---
|
|
---
|
|
|
|
|
... | @@ -36,7 +36,8 @@ The material in this document requires the use of [Docker](https://www.docker.co |
... | @@ -36,7 +36,8 @@ The material in this document requires the use of [Docker](https://www.docker.co |
|
|
|
|
|
- Use [Docker Desktop](https://docs.docker.com/get-docker/) on your local machine
|
|
- Use [Docker Desktop](https://docs.docker.com/get-docker/) on your local machine
|
|
|
|
|
|
> **NOTE:** If you have an Apple M1/M2 (`arm`-based CPU), builds and simulations are prohibitively slow.
|
|
> [!warning] Apple Silicon
|
|
|
|
> If you use Apple Silicon (`aarch64`-based CPU), builds and simulations are prohibitively slow.
|
|
>
|
|
>
|
|
> `x86-64` processors are HIGHLY recommended.
|
|
> `x86-64` processors are HIGHLY recommended.
|
|
|
|
|
... | @@ -50,20 +51,20 @@ docker pull socks.lbl.gov:4567/cag/bxe |
... | @@ -50,20 +51,20 @@ docker pull socks.lbl.gov:4567/cag/bxe |
|
|
|
|
|
## Running a Docker container
|
|
## Running a Docker container
|
|
|
|
|
|
Once you've pulled a Docker image, you can run within a container. You can think of containers as the virtual machine that's running the image you pulled. When a container is initialized and run, it's given a unique hash and a unique string name. When you want to access the container, you refer to its unique hash/string. You can also give your container a unique name, as domonstraited below:
|
|
Once you've pulled a Docker image, you can run within a container. You can think of containers as the virtual machine that's running the image you pulled. When a container is initialized and run, it's given a unique hash and a unique string name. When you want to access the container, you refer to its unique hash/string. You can also give your container a unique name, as demonstrated below:
|
|
|
|
|
|
> **NOTE:** `--privileged` is only required when using FireMarshal.
|
|
> **NOTE:** `--privileged` is only required when using FireMarshal.
|
|
|
|
|
|
- Running a Docker container interactively
|
|
- Running a Docker container interactively
|
|
- This runs the Docker container and attaches the console of your container
|
|
- This runs the Docker container and attaches the console of your container
|
|
```
|
|
```
|
|
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] -it socks.lbl.gov:4567/cag/bxe
|
|
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] -it socks.lbl.gov:4567/cag/bxe/firesim
|
|
```
|
|
```
|
|
|
|
|
|
- Running a Docker container and attaching later
|
|
- Running a Docker container and attaching later
|
|
- You can run a Docker container in the background and attach to it
|
|
- You can run a Docker container in the background and attach to it
|
|
```
|
|
```
|
|
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] socks.lbl.gov:4567/cag/bxe
|
|
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] socks.lbl.gov:4567/cag/bxe/firesim
|
|
docker attach [HASHID/STRINGID/CUSTOM_CONTAINER_NAME]
|
|
docker attach [HASHID/STRINGID/CUSTOM_CONTAINER_NAME]
|
|
```
|
|
```
|
|
|
|
|
... | @@ -76,7 +77,7 @@ docker run \ |
... | @@ -76,7 +77,7 @@ docker run \ |
|
[--privileged] [--name CUSTOM_CONTAINER_NAME] \
|
|
[--privileged] [--name CUSTOM_CONTAINER_NAME] \
|
|
-it \
|
|
-it \
|
|
-v /tmp/mpoint:/app \
|
|
-v /tmp/mpoint:/app \
|
|
socks.lbl.gov:4567/cag/bxe
|
|
socks.lbl.gov:4567/cag/bxe/firesim
|
|
```
|
|
```
|
|
|
|
|
|
Any changes made in `/app` in the Docker container are reflected in `/tmp/mpoint` on the host. You can mount multiple directories with multiple `-v [HOSTDIR]:[CONTAINERDIR]` flags with the different mounts.``
|
|
Any changes made in `/app` in the Docker container are reflected in `/tmp/mpoint` on the host. You can mount multiple directories with multiple `-v [HOSTDIR]:[CONTAINERDIR]` flags with the different mounts.``
|
... | @@ -89,21 +90,19 @@ Once you've run and attached to your Docker container, you should see the follow |
... | @@ -89,21 +90,19 @@ Once you've run and attached to your Docker container, you should see the follow |
|
(base) root@[HASHID]:~/firesim#
|
|
(base) root@[HASHID]:~/firesim#
|
|
```
|
|
```
|
|
|
|
|
|
Run the following command to set up the Chipyard and FireMarshal environment:
|
|
Run the following commands to set up the Chipyard and FireMarshal environment:
|
|
|
|
|
|
```bash
|
|
```bash
|
|
source source-env.sh
|
|
conda activate firesim
|
|
|
|
source sourceme-manager.sh --skip-ssh-setup
|
|
```
|
|
```
|
|
|
|
|
|
You should see the following output on your console:
|
|
You should see the following output on your console:
|
|
|
|
|
|
```
|
|
```
|
|
(base) root@[HASHID]:~/firesim# source source-env.sh
|
|
(base) bxeuser@[HASHID]:~/firesim$ conda activate firesim
|
|
Activating FireSim Conda Environment...
|
|
(firesim) bxeuser@[HASHID]:~/firesim$ source sourceme-manager.sh --skip-ssh-setup
|
|
Sourcing FireSim Environment...
|
|
(/home/bxeuser/firesim/.conda-env) bxeuser@[HASHID]:~/firesim$
|
|
Navigating to Chipyard Directory...
|
|
|
|
Sourcing Chipyard Environment...
|
|
|
|
(/root/firesim/target-design/chipyard/.conda-env) root@[HASHID]:~/firesim/target-design/chipyard#
|
|
|
|
```
|
|
```
|
|
|
|
|
|
You are now ready to build RTL with Chipyard and build software with FireMarshal.
|
|
You are now ready to build RTL with Chipyard and build software with FireMarshal.
|
... | | ... | |