Logo
1.17.1

Getting Started:

  • FireSim Basics
    • Common FireSim usage models
      • 1. Single-Node Simulations Using One or More On-Premises FPGAs
      • 2. Single-Node Simulations Using Cloud FPGAs
      • 3. Datacenter/Cluster Simulations on On-Premises or Cloud FPGAs
    • Other Use Cases
    • Choose your platform to get started
  • AWS EC2 F1 Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • First-time AWS User Setup
        • Creating an AWS Account
        • Requesting Limit Increases
      • Configuring Required Infrastructure in Your AWS Account
        • Select a region
        • Key Setup
        • Double Check your EC2 Instance Limits
        • Start a t2.nano instance to run the remaining configuration commands
        • Run scripts from the t2.nano
        • Terminate the t2.nano
        • Subscribe to the AWS FPGA Developer AMI
      • Setting up your Manager Instance
        • Launching a “Manager Instance”
        • Setting up the FireSim Repo
        • Completing Setup Using the Manager
    • Running FireSim Simulations
      • Running a Single Node Simulation
        • Building target software
        • Setting up the manager configuration
        • Launching a Simulation!
      • Running a Cluster Simulation
        • Building target software
        • Setting up the manager configuration
        • Launching a Simulation!
    • Building Your Own Hardware Designs (FireSim Amazon FPGA Images)
      • Amazon S3 Setup
      • Build Recipes
      • Build Farm Instance Types
      • Running a Build
  • Xilinx Alveo U250 XDMA-based Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • System Setup
        • 1. Fix default .bashrc
        • 2. Enable password-less sudo
        • 3. Install Vivado Lab and Cable Drivers
        • 4. Install the Xilinx XDMA and XVSEC drivers
        • 5. Install your FPGA(s)
        • 6. Install sshd
        • 7. Set up SSH Keys
        • 8. Install Guestmount
        • 9. Check Hard File Limit
        • 10. Verify Run Farm Machine environment
    • FireSim Repo Setup
      • Setting up the FireSim Repo
      • Initializing FireSim Config Files
      • Configuring the FireSim manager to understand your Run Farm Machine setup
    • Running a Single Node Simulation
      • Building target software
      • Setting up the manager configuration
      • Building and Deploying simulation infrastructure to the Run Farm Machines
      • Running the simulation
    • Building Your Own Hardware Designs
      • System Setup
        • 1. Install Vivado for Builds
        • 2. Verify Build Farm Machine environment
      • Configuring a Build in the Manager
      • Running the Build
  • Xilinx Alveo U280 XDMA-based Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • System Setup
        • 1. Fix default .bashrc
        • 2. Enable password-less sudo
        • 3. Install Vivado Lab and Cable Drivers
        • 4. Install the Xilinx XDMA and XVSEC drivers
        • 5. Install your FPGA(s)
        • 6. Install sshd
        • 7. Set up SSH Keys
        • 8. Install Guestmount
        • 9. Check Hard File Limit
        • 10. Verify Run Farm Machine environment
    • FireSim Repo Setup
      • Setting up the FireSim Repo
      • Initializing FireSim Config Files
      • Configuring the FireSim manager to understand your Run Farm Machine setup
    • Running a Single Node Simulation
      • Building target software
      • Setting up the manager configuration
      • Building and Deploying simulation infrastructure to the Run Farm Machines
      • Running the simulation
    • Building Your Own Hardware Designs
      • System Setup
        • 1. Install Vivado for Builds
        • 2. Verify Build Farm Machine environment
      • Configuring a Build in the Manager
      • Running the Build
  • Xilinx VCU118 XDMA-based Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • System Setup
        • 1. Fix default .bashrc
        • 2. Enable password-less sudo
        • 3. Install Vivado Lab and Cable Drivers
        • 4. Install the Xilinx XDMA and XVSEC drivers
        • 5. Install your FPGA(s)
        • 6. Install sshd
        • 7. Set up SSH Keys
        • 8. Install Guestmount
        • 9. Check Hard File Limit
        • 10. Verify Run Farm Machine environment
    • FireSim Repo Setup
      • Setting up the FireSim Repo
      • Initializing FireSim Config Files
      • Configuring the FireSim manager to understand your Run Farm Machine setup
    • Running a Single Node Simulation
      • Building target software
      • Setting up the manager configuration
      • Building and Deploying simulation infrastructure to the Run Farm Machines
      • Running the simulation
    • Building Your Own Hardware Designs
      • System Setup
        • 1. Install Vivado for Builds
        • 2. Verify Build Farm Machine environment
      • Configuring a Build in the Manager
      • Running the Build
  • RHS Research Nitefury II XDMA-based Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • System Setup
        • 1. Fix default .bashrc
        • 2. Enable password-less sudo
        • 3. Install Vivado Lab and Cable Drivers
        • 4. Install the Xilinx XDMA and XVSEC drivers
        • 5. Install your FPGA(s)
        • 6. Install sshd
        • 7. Set up SSH Keys
        • 8. Install Guestmount
        • 9. Check Hard File Limit
        • 10. Verify Run Farm Machine environment
    • FireSim Repo Setup
      • Setting up the FireSim Repo
      • Initializing FireSim Config Files
      • Configuring the FireSim manager to understand your Run Farm Machine setup
    • Running a Single Node Simulation
      • Building target software
      • Setting up the manager configuration
      • Building and Deploying simulation infrastructure to the Run Farm Machines
      • Running the simulation
    • Building Your Own Hardware Designs
      • System Setup
        • 1. Install Vivado for Builds
        • 2. Verify Build Farm Machine environment
      • Configuring a Build in the Manager
      • Running the Build
  • (Experimental) Xilinx Alveo U250 Vitis-based Getting Started Guide
    • Initial Setup/Installation
      • Background/Terminology
      • FPGA and Tool Setup
        • Requirements and Installations
        • Setup Validation
      • Setting up your On-Premises Machine
        • Other Miscellaneous Setup
        • Setting up the FireSim Repo
        • Final Environment Check
        • Completing Setup Using the Manager
    • Running a Single Node Simulation
      • Building target software
      • Setting up the manager configuration
      • Building and Deploying simulation infrastructure to the Run Farm Machines
      • Running the simulation
    • Building Your Own Hardware Designs
      • Configuring a Build in the Manager
      • Running the Build

Advanced Docs:

  • Manager Usage (the firesim command)
    • 1. Overview
      • 1.1. “Inputs” to the Manager
      • 1.2. Logging
    • 2. Manager Command Line Arguments
      • 2.1. --runtimeconfigfile FILENAME
      • 2.2. --buildconfigfile FILENAME
      • 2.3. --buildrecipesconfigfile FILENAME
      • 2.4. --hwdbconfigfile FILENAME
      • 2.5. --overrideconfigdata SECTION PARAMETER VALUE
      • 2.6. --launchtime TIMESTAMP
      • 2.7. TASK
    • 3. Manager Tasks
      • 3.1. firesim managerinit
      • 3.2. firesim buildbitstream
      • 3.3. firesim builddriver
      • 3.4. firesim tar2afi
      • 3.5. firesim shareagfi
      • 3.6. firesim launchrunfarm
      • 3.7. firesim terminaterunfarm
      • 3.8. firesim infrasetup
      • 3.9. firesim boot
      • 3.10. firesim kill
      • 3.11. firesim runworkload
      • 3.12. firesim runcheck
      • 3.13. firesim enumeratefpgas
    • 4. Manager URI Paths
      • 4.1. URI Support
    • 5. Manager Configuration Files
      • 5.1. config_runtime.yaml
        • 5.1.1. run_farm
        • 5.1.2. metasimulation
        • 5.1.3. target_config
        • 5.1.4. tracing
        • 5.1.5. autocounter
        • 5.1.6. workload
        • 5.1.7. host_debug
      • 5.2. config_build.yaml
        • 5.2.1. build_farm
        • 5.2.2. builds_to_run
        • 5.2.3. agfis_to_share
        • 5.2.4. share_with_accounts
      • 5.3. config_build_recipes.yaml
        • 5.3.1. Build definition sections, e.g. awesome_firesim_config
      • 5.4. config_hwdb.yaml
        • 5.4.1. The name: firesim_boom_singlecore_nic_l2_llc4mb_ddr3
        • 5.4.2. Add more hardware config sections, like NAME_GOES_HERE_2
      • 5.5. Run Farm Recipes (run-farm-recipes/*)
        • 5.5.1. run_farm_type
        • 5.5.2. args
        • 5.5.3. aws_ec2.yaml run farm recipe
        • 5.5.4. externally_provisioned.yaml run farm recipe
      • 5.6. Build Farm Recipes (build-farm-recipes/*)
        • 5.6.1. build_farm_type
        • 5.6.2. args
        • 5.6.3. aws_ec2.yaml build farm recipe
        • 5.6.4. externally_provisioned.yaml build farm recipe
      • 5.7. Bit Builder Recipes (bit-builder-recipes/*)
        • 5.7.1. bit_builder_type
        • 5.7.2. args
        • 5.7.3. f1.yaml bit builder recipe
        • 5.7.4. vitis.yaml bit builder recipe
        • 5.7.5. xilinx_alveo_u250.yaml bit builder recipe
        • 5.7.6. xilinx_alveo_u280.yaml bit builder recipe
        • 5.7.7. xilinx_vcu118.yaml bit builder recipe
        • 5.7.8. rhsresearch_nitefury_ii.yaml bit builder recipe
    • 6. Manager Environment Variables
      • 6.1. FIRESIM_RUNFARM_PREFIX
      • 6.2. FIRESIM_BUILDFARM_PREFIX
    • 7. Manager Network Topology Definitions (user_topology.py)
      • 7.1. user_topology.py contents:
    • 8. AGFI Metadata/Tagging
  • Workloads
    • Defining Custom Workloads
      • Uniform Workload JSON
      • Non-uniform Workload JSON (explicit job per simulated node)
    • FireMarshal
    • SPEC 2017
    • Running Fedora on FireSim
    • ISCA 2018 Experiments
      • Prerequisites
      • Building Benchmark Binaries/Rootfses
      • Figure 5: Ping Latency vs. Configured Link Latency
      • Figure 6: Network Bandwidth Saturation
      • Figure 7: Memcached QoS / Thread Imbalance
      • Figure 8: Simulation Rate vs. Scale
      • Figure 9: Simulation Rate vs. Link Latency
      • Running all experiments at once
    • GAP Benchmark Suite
    • [DEPRECATED] Defining Custom Workloads
      • Uniform Workload JSON
      • Non-uniform Workload JSON (explicit job per simulated node)
  • Targets
    • Restrictions on Target RTL
      • Including Verilog IP
      • Multiple Clock Domains
        • The Base Clock
        • Limitations:
    • Target-Side FPGA Constraints
      • RAM Inference Hints
    • Provided Target Designs
      • Target Generator Organization
      • Specifying A Target Instance
    • Rocket Chip Generator-based SoCs (firesim project)
      • Rocket-based SoCs
      • BOOM-based SoCs
      • Generating A Different FASED Memory-Timing Model Instance
    • Midas Examples (midasexamples project)
      • Examples
    • FASED Tests (fasedtests project)
      • Examples
  • Debugging in Software
    • Debugging & Testing with Metasimulation
      • Supported Host Simulators
      • Running Metasimulations using the FireSim Manager
      • Understanding a Metasimulation Waveform
        • Module Hierarchy
        • Clock Edges and Event Timing
        • Finding The Source Of Simulation Stalls
      • Scala Tests
      • Running Metasimulations through Make
        • Examples
      • Metasimulation vs. Target simulation performance
  • Debugging and Profiling on the FPGA
    • Capturing RISC-V Instruction Traces with TracerV
      • Building a Design with TracerV
      • Enabling Tracing at Runtime
      • Selecting a Trace Output Format
      • Setting a TracerV Trigger
        • No trigger
        • Target cycle trigger
        • Program Counter (PC) value trigger
        • Instruction value trigger
      • Interpreting the Trace Result
        • Human readable output
        • Binary output
        • Flame Graph output
      • Caveats
    • Assertion Synthesis: Catching RTL Assertions on the FPGA
      • Enabling Assertion Synthesis
      • Runtime Behavior
      • Related Publications
    • Printf Synthesis: Capturing RTL printf Calls when Running on the FPGA
      • Enabling Printf Synthesis
      • Runtime Arguments
      • Related Publications
    • AutoILA: Simple Integrated Logic Analyzer (ILA) Insertion
      • Enabling AutoILA
      • Annotating Signals
      • Setting a ILA Depth
      • Using the ILA at Runtime
    • AutoCounter: Profiling with Out-of-Band Performance Counter Collection
      • Chisel Interface
      • Enabling AutoCounter in Golden Gate
      • Rocket Chip Cover Functions
      • AutoCounter Runtime Parameters
      • AutoCounter CSV Output Format
      • Using TracerV Trigger with AutoCounter
      • AutoCounter using Synthesizable Printfs
      • Reset & Timing Considerations
    • TracerV + Flame Graphs: Profiling Software with Out-of-Band Flame Graph Generation
      • What are Flame Graphs?
      • Prerequisites
      • Enabling Flame Graph generation in config_runtime.yaml
      • Producing DWARF information to supply to the TracerV driver
      • Modifying your workload description
      • Running a simulation
      • Caveats
    • Dromajo Co-simulation with BOOM designs
      • Building a Design with Dromajo
      • Running a FireSim Simulation
      • Troubleshooting Dromajo Simulations with Meta-Simulations
    • Debugging a Hanging Simulator
      • Case 1: Target hang.
      • Case 2: Simulator hang due to FPGA-side token starvation.
      • Case 3: Simulator hang due to driver-side deadlock.
      • Simulator Heartbeat PlusArgs
  • Non-Source Dependency Management
    • Updating a Package Version
    • Multiple Environments
    • Adding a New Dependency
    • Building From Source
    • Running Conda with sudo
    • Running things from your Conda environment with sudo
    • Additional Resources
  • Supernode - Multiple Simulated SoCs Per FPGA
    • Introduction
    • Building Supernode Designs
    • Running Supernode Simulations
    • Work in Progress!
  • Miscellaneous Tips
    • Add the fsimcluster column to your AWS management console
    • FPGA Dev AMI Remote Desktop Setup
    • Experimental Support for SSHing into simulated nodes and accessing the internet from within simulations
    • Navigating the FireSim Codebase
    • Using FireSim CI
    • How to view AWS build logs when AGFI build fails
  • FireSim Asked Questions
    • I just bumped the FireSim repository to a newer commit and simulations aren’t running. What is going on?
    • Is there a good way to keep track of what AGFI corresponds to what FireSim commit?
    • Help, My Simulation Hangs!
    • Should My Simulator Produce Different Results Across Runs?
    • Is there a way to compress workload results when copying back to the manager instance?

Compiler (Golden Gate) Docs:

  • Overview & Philosophy
    • Golden Gate vs FPGA Prototyping
    • Why Use Golden Gate & FireSim
    • Why Not Golden Gate
    • How is Host-Decoupling Implemented?
  • Target Abstraction & Host Decoupling
    • The Target as a Dataflow Graph
    • Model Implementations
    • Expressing the Target Graph
    • Latency-Insensitive Bounded Dataflow Networks
  • Target-to-Host Bridges
    • Terminology
    • Target Side
      • Type Parameters:
      • Abstract Members:
    • What Happens Next?
    • Host Side
    • Compile-Time (Parameterization) vs Runtime Configuration
    • Target-Side vs Host-Side Parameterization
  • Bridge Walkthrough
    • UART Bridge (Host-MMIO)
      • Target Side
      • Host-Side BridgeModule
      • Host-Side Driver
      • Build-System Modifications
  • Simulation Triggers
    • Quick-Start Guide
      • Level-Sensitive Trigger Source
      • Distributed, Edge-Sensitive Trigger Source
    • Chisel API
      • Trigger Sources
      • Trigger Sinks
    • Trigger Timing
    • Limitations & Pitfalls
  • Optimizing FPGA Resource Utilization
    • Multi-Ported Memory Optimization
    • Multi-Threading of Repeated Instances
  • Output Files
    • Core Files
    • FPGA Build Files
    • Metasimulation Files

Developer Docs:

  • Compiler & Driver Development
    • Integration Tests
      • Key Files & Locations
      • Defining a New Test
    • Synthesizable Unit Tests
      • Key Files & Locations
      • Defining a New Test
    • Scala Unit Testing
      • Key Files & Locations
      • Defining A New Test
    • C/C++ guidelines
    • Scala guidelines
  • Complete FPGA Metasimulation
    • Usage
  • Visual Studio Code Integration
    • General Setup
    • Workspace Locations
    • Scala Development
      • How To Use (Remote Manager)
      • Limitations
      • Other Notes
  • Managing the Conda Lock File
    • Updating Conda Requirements
    • Caveats of the Conda Lock File and CI
  • Manager Development
    • Writing PyTests
    • Running PyTests Locally
    • Adding PyTests To CI

Miscellaneous:

  • External Tutorial Setup
FireSim
  • Workloads
  • Edit on GitHub

Workloads

This section describes workload definitions in FireSim.

Workloads:

  • Defining Custom Workloads
    • Uniform Workload JSON
    • Non-uniform Workload JSON (explicit job per simulated node)
  • FireMarshal
  • SPEC 2017
  • Running Fedora on FireSim
  • ISCA 2018 Experiments
    • Prerequisites
    • Building Benchmark Binaries/Rootfses
    • Figure 5: Ping Latency vs. Configured Link Latency
    • Figure 6: Network Bandwidth Saturation
    • Figure 7: Memcached QoS / Thread Imbalance
    • Figure 8: Simulation Rate vs. Scale
    • Figure 9: Simulation Rate vs. Link Latency
    • Running all experiments at once
  • GAP Benchmark Suite
  • [DEPRECATED] Defining Custom Workloads
    • Uniform Workload JSON
    • Non-uniform Workload JSON (explicit job per simulated node)
Previous Next

© Copyright 2018-2023 Sagar Karandikar, David Biancolin, Abraham Gonzalez, Howard Mao, Donggyu Kim, Alon Amid, and Berkeley Architecture Research. Revision b473147a.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: 1.17.1
Versions
latest
stable
1.17.1
1.17.0
1.16.0
1.15.2
1.15.1
1.15.0
1.14.2
1.14.1
1.14.0
1.13.6
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.0
1.10.1
1.10.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2
1.1
williamlyh
main
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds