Synchronous Dataflow

SDF3 Command Line Reference Guide


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