The PipelineKit is an open source project originated at AMD to develop a visual and high level programming environment for OpenCL and DirectCompute applications running on GPUs, APUs and multi-core CPUs. A textual pipeline description language describes buffers, kernels, uniforms, invariants, and control graphs with stages that together comprise a computational pipeline. A pipeline generator compiles that description into C++ and OpenCL or DirectCompute code that executes the specified control graphs while preserving the specified invariants at runtime. The generator also produces a framework for unit testing; some debugging/data capture features, as well as templates for the corresponding kernels or ComputeShaders. Software developers are responsible for filling in the kernels or ComputeShaders. The PipelineKit and the code it generates run on Linux, Mac OS and Windows. It supports multiple GPUs within a workstation and provides barrier synchronizations among graphs running on different GPUs. Recently work has begun on a visual editor that lets you directly edit the control and data flow graphs (please see screenshot). This editor is a functional prototype.
Mar 302011