Ludovic Courtès announced the StarPU 1.0.0 release as an extension to GCC with a run-time support library to handle hybrid CPU/GPU task programming. StarPU is self-described as "A Unified Runtime System for Heterogeneous Multicore Architectures."
The StarPU GCC plug-in allows for annotating C code to describe tasks and passable memory buffers for CPU and GPU (via OpenCL) targets. These tasks can be handled a-synchronously and the StarPU run-time handles the data transfers automatically for the GPU support. It also appears that there is NVIDIA CUDA support to complement OpenCL within StarPU.
More information on StarPU is available from the project's web-site.