Evaluation Framework¶
Constellation includes a lightweight C++ evaluation framework, designed to support future advanced traffic models. Currently, the framework supports measuring per-flow latency and bandwidth using two traffic models.
An injection-rate based model, with per-flow injection rates
A trace-driven model, which loads Netrace trace files
Running a Simple Evaluation¶
Traffic evaluations are best run in Chipyard-standalone mode.
cd chipyard/sims/vcs
make SUB_PROJECT=constellation BINARY=none CONFIG=EvalTestConfig00 MODEL=EvalHarness run-binary-debug
A generated noceval.cfg
file will be generated in the generated-src
directory. Copy this file elsewhere and modify it to adjust the simulation parameters. The important fields of this config file are:
warmup
: Number of cycles to spend in the warmup phase, to bring the network to steady-state
measurement
: Number of cycles after warmup in which throughput is measured
drain
: Number of cycles after measurement to wait for the network to drain. If the network does not drain in this many cycles, an assertion is fired
flits_per_packet
: Packet size
required_XXX
: Required throughput, median latency, max latency. IF measurement exceeds these, an assertion fires.
netrace_enable
: Use Netrace trace file as traffic model
netrace_trace
: Path to Netrace trace file
netrace_region
: Netrace region to begin trace replay at
flow x y z
: Specifies injection ratez
for flow from ingress indexx
to egress indexy
After modifying a
noceval.cfg
flag, the simulation can be rerun with:
cd chipyard/sims/vcs
make SUB_PROJECT=constellation BINARY=none CONFIG=EvalTestConfig00 MODEL=EvalHarness run-binary-debug EXTRA_SIM_FLAGS="+eval_params=path/to/noceval.cfg"