27-11-2010, 01:02 PM
[attachment=7359]
PRESENTED BY:
BHAGYALAXMI NAIK
CONTENTS:
DEFINITION
CHARACTERISTICS
WHY IT IS NEEDED?
STREAM PROCESSOR ARCHITECTURE
STREAMIT LANGUAGE
STREAMIT COMPILER
DEVELOPMENT TOOLS
APPLICATION
CONCLUSION
DEFINITION:
“Stream computing is a programming paradigm that models a computer program as a stream of data between several processing units,rather than as an implemented algorithm processing data”
CHARACTERISTICS:
Parallel problems other than graphics that map well on GPU architecture .
Transition from fixed function to programmable pipelines.
Various proof points in research and industry under the name GPGPU .
Data dependencies and parallelism
NEED OF STREAM COMPUTING:
To support various parallelism techniques
For support of SIMD technology
Vector processing
Faster data handling
STREAMIt LANGUAGE:
Architecture independent language
Used for streaming applications
Adopts cyclo-static dataflow of computation
filter
It is the basic unit of computation
communicate with neighboring blocks using typed FIFO channels
The channels support three operations:
pop(): remove item from end of input channel
peek(i): get value i spaces from end of input channel
push(val): push value onto output channel
Each filter contains:
init(…) function
work() function
Continued…
splitter redistributes data to input channels of the child streams, and linking its output channel to a joiner.
joiner recombines data from the children’s output channels.
STREAMIt COMPILER:
StreamIt compiler hides granularity of execution and architecture details.
It is designed to facilitate the programming of large streaming applications.
STREAMIt DEVELOPMENT TOOLS:
SDT is composed of the following modules: an IDE-integrated debugger, a graphical text editor, a runtime stream graph view, and a corresponding graph overview.
graphically represents StreamIt programs, and preserves hierarchical information to allow an application engineer to focus on the parts of the stream program that are of interest.
CONTINUED…
SDT debugger supports line. and method breakpoints, watchpoints, program suspension, code stepping, variable inspection and value modification.
can track the flow of data between filters and it provides a deterministic mechanism to debug parallel streams.
APPLICATIONS:
Useful in DSP or GPU-type applications (such as image,video and digital signal processing) .
Compute intensity
CONCLUSION:
Stream processing has been shown to outperform mainstream programmable computing solutions while consuming less power for data parallel applications.
Exploiting the data- and instruction-level parallelism inherent in these applications,stream processors sustain many operations in parallel, and overlap them with memory accesses in order to improve computation throughput.
Realizing the performance potential of stream processing, however, depends on the ability to manage bandwidth demands in the memory hierarchy to sustain the operands needed for highly parallel computation.
PRESENTED BY:
BHAGYALAXMI NAIK
STREAM COMPUTING
CONTENTS:
DEFINITION
CHARACTERISTICS
WHY IT IS NEEDED?
STREAM PROCESSOR ARCHITECTURE
STREAMIT LANGUAGE
STREAMIT COMPILER
DEVELOPMENT TOOLS
APPLICATION
CONCLUSION
DEFINITION:
“Stream computing is a programming paradigm that models a computer program as a stream of data between several processing units,rather than as an implemented algorithm processing data”
CHARACTERISTICS:
Parallel problems other than graphics that map well on GPU architecture .
Transition from fixed function to programmable pipelines.
Various proof points in research and industry under the name GPGPU .
Data dependencies and parallelism
NEED OF STREAM COMPUTING:
To support various parallelism techniques
For support of SIMD technology
Vector processing
Faster data handling
STREAMIt LANGUAGE:
Architecture independent language
Used for streaming applications
Adopts cyclo-static dataflow of computation
filter
It is the basic unit of computation
communicate with neighboring blocks using typed FIFO channels
The channels support three operations:
pop(): remove item from end of input channel
peek(i): get value i spaces from end of input channel
push(val): push value onto output channel
Each filter contains:
init(…) function
work() function
Continued…
splitter redistributes data to input channels of the child streams, and linking its output channel to a joiner.
joiner recombines data from the children’s output channels.
STREAMIt COMPILER:
StreamIt compiler hides granularity of execution and architecture details.
It is designed to facilitate the programming of large streaming applications.
STREAMIt DEVELOPMENT TOOLS:
SDT is composed of the following modules: an IDE-integrated debugger, a graphical text editor, a runtime stream graph view, and a corresponding graph overview.
graphically represents StreamIt programs, and preserves hierarchical information to allow an application engineer to focus on the parts of the stream program that are of interest.
CONTINUED…
SDT debugger supports line. and method breakpoints, watchpoints, program suspension, code stepping, variable inspection and value modification.
can track the flow of data between filters and it provides a deterministic mechanism to debug parallel streams.
APPLICATIONS:
Useful in DSP or GPU-type applications (such as image,video and digital signal processing) .
Compute intensity
CONCLUSION:
Stream processing has been shown to outperform mainstream programmable computing solutions while consuming less power for data parallel applications.
Exploiting the data- and instruction-level parallelism inherent in these applications,stream processors sustain many operations in parallel, and overlap them with memory accesses in order to improve computation throughput.
Realizing the performance potential of stream processing, however, depends on the ability to manage bandwidth demands in the memory hierarchy to sustain the operands needed for highly parallel computation.