Sh and Brook for GPUs

To simplify GPGPU programming, high-level languages appeared in 2004. Their goal is to hide graphics-related details from developers, and they follow a stream computing or data-parallel programming paradigm. This pages provides an overview and links to more resources.

Jump to


Brook for GPUs

Brook for GPUs, also known as BrookGPU, was developed at Stanford University. It is a compiler and runtime implementation of the Brook stream program language for graphics hardware. BrookGPU is implemented as an extension to the C programming language, and compiles to various backends. It supports NVIDIA and ATI GPUs on Windows and Linux.

BrookGPU is not supported anymore by the original developers. Instead, AMD has used BrookGPU as the basis for Brook+, the compiler and data-parallel language included in AMD Stream.


Sh – GPU Metaprogramming

Sh, a metaprogramming language for programmable GPUs, was developed at the University of Waterloo. It is implemented as a library on top of C++, and supports NVIDIA and ATI GPUs on Windows and Linux.

Sh is no longer actively supported by its developers. Instead, it has been commercialized into RapidMind Inc., and significantly expanded to support not only GPUs, but also the Cell processor and multicore CPUs.