[Next] [Previous] [Top]

Automatic Code Generation for Heterogeneous Multiprocessors

Conclusions and Future Work


In this paper, we have presented an extensible framework to generate code for heterogeneous systems. This environment promotes code reuse in the form of actor and target libraries. The send and receive actors defined for a particular target can be used to construct any of the interfaces described. The first type of interface is one in which pairs of send and receive actors are spliced into the graph as specified by an SDF parallel scheduler. Allowing the scheduler to fully partition the graph exposes maximal parallelism and will not introduce deadlock. However, this configuration is inappropriate in systems with high sample rate changes. The next type of interface, a CGWormhole, mixes scheduling algorithms in a code generation application. For example, in a multiprocessor system where we would like to use dynamic constructs with minimal run-time over head, we could specify that the BDF scheduler be used for a particular subgraph and an SDF parallel scheduler for the remainder of the graph. The last type of interface allows code generation applications to communicate with simulations in Ptolemy. With this interface, an actual hardware implementation can be used within a high level simulation. These interfaces can be used in conjunction with one another. For example, a uniprocessor boolean dataflow scheduler could be used on the outside of a CGWormhole, and a multiprocessor SDF scheduler could be used on the inside to parallelize the inner subgraph. The major focus for future work will be in deciding how to partition the processors for multiple CGWormholes.


Automatic Code Generation for Heterogeneous Multiprocessors

[Next] [Previous] [Top]