- Notifications
You must be signed in to change notification settings - Fork12
spcl/rapidchiplet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Clone the RapidChiplet repository:
git clone https://github.com/spcl/rapidchiplet.git
Install all requirements using pip:
cd rc pip install -r requirements.txt
Build the BookSim2 [1,2] simulator:
cd booksim2/srcmakecd ../../
Build Netrace [3,4]
cd netracegcc export_trace.c netrace.c -o export_tracecd ../
python3 reproduce_paper_results.py
- Note that this script runs for almost one day.
- The results might slightly differ from the paper due to different system specifications.
- The plots that appear in the paper in Figure 4 (right), Figure 5, and Figure 6 will be stored in the
./plots/
directory. - The chip visualization that appears in the paper in Figure 4 (left) will be stored in the
./images/
directory.
Configure your chip design using the different input files. Check out the example files in./inputs/
to get started.
We provide the following input generation scripts for more complex input-files that cannot easily be written by hand:
generate_routing.py: Generates a routing table for a given chip design
python3 generate_routing.py -df inputs/designs/<design_file> -rtf<routing_table_file> -ra<routing_algorithm>
- The
<design file>
points to all inputs that the routing table generator needs (chiplets, placement, topology). - The
<routing_table_file>
is the name under which the resulting routing table is stored (ininputs/routing_tables/
). <routing algorithm>
specifies the routing algorithm to be used. We currently support two routing algorithms:splif
: Shortest Path Lowest ID firstsptmr
: Shortest Path Turn Model Random
generate_traffic.py: Generate a synthetic traffic pattern for a given chip design
python3 generate_traffic.py -df inputs/designs/<design_file> -tf<traffic_file> -tp<traffic_pattern> -par<parameters>
- The
<design file>
points to all inputs that the traffic generator needs (chiplets, placement). - The
<traffic_file>
is the name under which the resulting traffic pattern is stored (in/inputs/traffic_by_chiplet/
andinputs/traffic_by_unit/
). <traffic_pattern>
specifies the traffic pattern to be generated. We currently support four traffic patterns:random_uniform
,transpose
,permutation
,hotspot
.<parameters>
are specific to the selected traffic pattern.
python3 rapidchiplet.py -df inputs/designs/<design_file> -rf<results_file> [-as] [-ps] [-ls] [-c] [-l] [-t]
- The
<design_file>
points to all inputs that are required - The
<results_file>
specifies the name, under which the results are stored (in/results/
). - The optional flags are used to enable the computation of different metrics: area summary (
-as
), power summary (-ps
), link summary (-ls
), manufacturing cost (-c
), latency (-l
), throughput (-t
).
To export a design to BookSim and gather the results, simply runrapidchiplet.py
with the-bs
flag:
python3 rapidchiplet.py -df inputs/designs/<design_file> -rf<results_file> -bs
- The
<design_file>
points to all inputs that are required. - The
<results_file>
specifies the name, under which the results are stored (in/results/
).
Specify parameters and parameter-ranges for your design space exploration in an experiment-file in the./experiments/
directory. Check out the provided example files to get started.
python3 run_experiment.py -e experiments/<experiment_file>
This script generates one results-file for each combination of input parameters. All result-files are stored in./results/
.
Download the traces from the netrace website [5] and store them in./netrace/traces_in/
.
In a first step, export the traces from the netrace format into an intermediate format:
cd netrace./export_trace traces_in/<trace_name>.tra.bz2<trace_region_id><packet_limit>> traces_out/<trace_name>.jsoncd ../
- Netrace traces contain one or multiple trace regions. Use the
<trace_region_id>
argument to specify the region to export. If you want to export the whole trace, omit this argument. - Some Netrace traces are very long. If you only want to export a partial trace region, use the
<packet_limit>
argument to pass the maximum number of packets that should be exported.
In a second step, the trace is parsed into the RapidChiplet format:
python3 parse_netrace_trace.py -df inputs/designs/<design_file> -if netrace/traces_out/<trace_name>.json -of<trace_name>.json
- The
<design file>
points to all inputs that the trace parser needs. - The arguments
-if
and-of
refer to the input-trace-file (in the intermediate format) and the output-trace-file (in the output format). The output trace file is stored ininputs/traces/
.
Visualize a complete design by running
python3 visualizer.py -df inputs/designs/<design_name> [-sci] [-spi]
- You can show chiplet-IDs and PHY-IDs by passing the
-sci
and-spi
flags respectively.
You can also visualize a single chiplet by running
python3 visualizer.py -cf inputs/chiplets/<chiplet_file> -cn<chiplet_name>
<chiplet_file>
is an input file which potentially specifies multiple chiplets and<chiplet_name>
is the name of one specific chiplet within this file.
Visualize the results by running:
python3 create_plots.py -rf results/<results-file> -pt<plot_type>
- The
<results_file>
contains the results you want to visualize. - Currently, only one plot type, namely,
latency_vs_load
is supported, but more will be added soon.
[1] Jiang, N., Becker, D.U., Michelogiannakis, G., Balfour, J., Towles, B., Shaw, D.E., Kim, J. and Dally, W.J., 2013, April. A detailed and flexible cycle-accurate network-on-chip simulator. In 2013 IEEE international symposium on performance analysis of systems and software (ISPASS) (pp. 86-96). IEEE.
[2]https://github.com/booksim/booksim2
[3] Hestness, J., Grot, B. and Keckler, S.W., 2010, December. Netrace: dependency-driven trace-based network-on-chip simulation. In Proceedings of the Third International Workshop on Network on Chip Architectures (pp. 31-36).
About
A toolchain for rapid design space exploration of chiplet architectures
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.