Skip to content

stillwater-sc/godfa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GO-DFA

Go Domain Flow Architecture emulation API server

Domain Flow Architecture

Domain Flow Architectures are hardware execution models based on the Stillwater distributed data flow engine. The Dennis Data Flow Machine (1) is an execution model that theoretically is able to execute along the free schedule of an algorithm. The free schedule is the inherent parallelism of an algorithm defined by its data dependencies. The model can scale to arbitrary large computational graphs and arbitrary concurrency.

However, the key disadvantage of the Data Flow Machine architecture is that in physical designs the Content Addressable Memory that holds pending instructions, grows with the inherent parallelism of the algorithms, and larger CAMs slow the cycle time of the core instruction execution cycle. This has limited data flow machines to just a hundred or so concurrent instructions.

For an important subclass of parallel algorithms, those that exhibit regular data structures and flows, for example, linear algebra, signal processing, sensor fusion, computer vision, and machine learning algorithms, this regularity can be exploited to create more efficient parallel execution by distributing the CAM across the processing elements. This model represents the Stillwater Domain Flow Architecture execution model, and in many ways can be seen as the Processor-in-Memory equivalent of the Distributed Memory Machine Architectures that are currently proposed for exa-scale applications.

The Domain Flow Architecture is focused on efficient parallel execution to improve computational latency and power consumption by recognizing that a distributed machine is bound by the constraints of spacetime. Otherwise stated, information exchange takes time and energy, and thus it is important that the algorithm designer takes these constraints into account to yield an optimal, energy-efficient parallel program.

(1) A preliminary architecture for a basic data-flow processor, Authors: Jack B. Dennis, David P. Misunas Project MAC, Massachusetts Institute of Technology Published in: Proceeding ISCA '75 Proceedings of the 2nd annual symposium on Computer architecture, Pages 126-132

About

Go Domain Flow Architecture emulation API server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages