Synchronous Dataflow
SDF3 Command Line Reference Guide
- sdf3analysis-sdf
- sdf3arch-sdf
- sdf3cost-sdf
- sdf3ctg-sdf
- sdf3flow-sdf
- sdf3gast-sdf
- sdf3generate-sdf
- sdf3print-sdf
- sdf3transform-sdf
sdf3analysis-sdf
The sdf3analysis-sdf tool contains several graph analysis algorithms. The command line options of this tool are as follows:
sdf3analysis-sdf --graph <file> --algo <algorithm> [--output <file>]The mandatory argument --graph is used to specify the name of the file that contains the SDFG. The optional argument --output can be used to redicect the output to a file. The mandatory argument --algo is used specify the analysis algorithm that should be executed. This algorithm must be choosen from the table below.
Algorithm | Description |
---|---|
consistency | Check consistency of the graph (more) |
deadlock | Check absense of deadlock of the graph |
simple_cycles | Find all simple cycles in the graph |
acyclic_graph | Check whether the graph is acyclic |
connected_graph | Check whether the graph is connected |
repetition_vector | Compute the repetition vector of the graph (more) |
repetition_vector_sum | Compute the sum of the repetition vector (more) |
strongly_connected_components | Find all strongly connected components in the graph |
mcm[(cycle,dasdan,karp,howard,yto,yto-mcr)] | Compute the maximum cycle mean of the graph (more) |
is_hsdf | Check whether the graph is an HSDFG |
statistics | Compute some statistics (e.g. actor and channel count) of the graph |
throughput | Compute the throughput of the graph |
buffersize | Compute the throughput/storage-space trade-off point of the graph (more) |
buffersize_capacity_constrained | Compute the optimal buffer size for a capacity constrained graph |
latency(method,srcActor,dstActor) | Compute the minimal latency between a given source and destination actor using the specified scheduling technique |
binding_aware_throughput(flow) | Compute the throughput of a binding-aware SDFG. The file that contains the constrained SDFG must also contain information on the architecture (platform graph) and the mapping. This is used to construct the binding-aware SDFG before analyzing its throughput. The used must specify the flow (NSoC or MPFlow) that is targetted. This information is needed to generate a binding-aware SDFG that corresponds to the selected flow. |
sdf3arch-sdf
The sdf3arch-sdf tool can be used to create a template for a platform and interconnect graph:
sdf3arch-sdf --type <type> <N> <M> [--output <file>]The mandatory argument --type is used to specify the type and dimensions of the interconnect. The different types that are supported are shown in the table below. The optional argument --output can be used to redicect the output to a file.
Type | Description |
---|---|
mesh | Interconnect with bi-directional mesh network |
tree | Interconnect with bi-directional tree network |
torus | Interconnect with bi-directional torus network |
sdf3cost-sdf
The sdf3cost-sdf tool can be used to schedule time-constrained communication on a NoC.
sdf3cost-sdf sdf3cost-sdf [--settings <file> --scheduler <algo> --output <file>]The optional argument --settings can be used to specify the settings file (default: sdf3.opt). The optional argument --output can be used to redicect the output to a file. The optional argument --algo can be used to select the scheduling algorithm (default: greedy). This scheduling algorithm can be choosen from the following table:
Algorithm | Description |
---|---|
greedy | Greedy routing algorithm |
ripup | Greedy with backtracking on failure |
knowledge | Compute global routing knowledge before routing |
random | Make random scheduling choices |
classic | A traditional NoC scheduling algorithm |
sdf3ctg-sdf
The sdf3ctg-sdf tool can be used to create random time-constrained scheduling problems.
sdf3ctg-sdf [--settings <file> --output <file>]The optional argument --settings can be used to specify the settings file (default: sdf3.opt). The optional argument --output can be used to redicect the output to a file.
sdf3flow-sdf
The sdf3flow-sdf tool can be used to map a throughput-constrained SDFG onto a NoC-based MP-SoC (more).
sdf3flow-sdf [--settings <file> --output <file> --step --html]The optional argument --settings can be used to specify the settings file (default: sdf3.opt). The optional argument --output can be used to redicect the output to a file. The optional argument --step can be used to run the flow in interactive mode (wait for user input after every step). When the optional argument --html is present, a set of HTML pages describing the application, architecture and mapping is generated at the end of the flow.
sdf3gast-sdf
The sdf3gast-sdf tool can be used to map a memory-aware SDFG onto a platform graph. It can also be used to extract timing constraints for the interconnect communication from a resource-aware SDFG.
sdf3gast-sdf [--settings <file> --output <file> --check --communicationTrace <sz>]The optional argument --settings can be used to specify the settings file (default: sdf3.opt). The optional argument --output can be used to redicect the output to a file. The optional argument --check can be used to verify wether the graph can be bound to the resources in the platform graph. No schedules are constructed when this option is used. The optional argument --communicationTrace can be used to extract a time-constrained scheduling problem for the given slot-table size (sz) from the resource-aware SDFG.
sdf3generate-sdf
The sdf3generate-sdf tool can be used to create a random SDFG (more).
sdf3generate-sdf [--settings <file> --output <file>]The optional argument --settings can be used to specify the settings file (default: sdf3.opt). The optional argument --output can be used to redicect the output to a file.
sdf3print-sdf
The sdf3print-sdf tool can be used to output the SDFG in a different format.
sdf3print-sdf --graph <file> --format <type> [--output <file>]The mandatory argument --graph is used to specify the name of the file that contains the SDFG. The optional argument --output can be used to redicect the output to a file. The mandatory argument --format is used specify the output format. This format must be choosen from the table below.
Format | Description |
---|---|
hapi | Output the graph for simulation using HAPI (more) |
dot | Output the graph for visualization using dotty (more) |
txt | Output the graph in text format |
buffy(outputActor(<value>)) | Output C++ code to compute the throughput/storage-space trade-offs |
selfTimedSchedule | Output C++ code to analyze the self-timed execution |
buffyThroughput(outputActor(<value>)) | Output C++ code to compute the throughput of the graph |
stateSpaceThroughput(outputActor(<value>)) | Output C++ code to compute the throughput of the graph |
sdf3transform-sdf
The sdf3transform-sdf tool can be used to apply a number of standard transformations on the SDFG.
sdf3transform-sdf --graph <file> --transform <list> [--output <file>]The mandatory argument --graph is used to specify the name of the file that contains the SDFG. The optional argument --output can be used to redicect the output to a file. The mandatory argument --transform is used specify a non-empty list of comma seperated transformations that are executed in the specified sequence. The transformations must be choosen from the table below.
Transformation | Description |
---|---|
to_hsdf | Transform the graph into an equivalent HSDFG (more) |
unfold(<count>) | Unfold the HSDFG for the specified number of times (more) |
model_buffersize | Model the storage-space constraints in the graph (more) |
model_autoconc(<max>) | Create a self-edge with the specified number of tokens on all actors of the graph (more) |
select_buffersize | Compute the throughput/storage-space trade-offs and select one point from the space to constrain the storage-space of the channels in the graph |
move_state | Create a self-edge with one token on all actors of the graph |
capacity_constrained(<mcm>) | Create a capacity constrained graph with the specified MCM |