How to Program GPUs
Software for GPUs inc. compiler/directives, maths libs & tools (debuggers and profilers)
GPUs can be programmed using a variety of language extensions including:
Directives - extensions to high level languages such as FORTRAN and C. eg OpenACC
Various techniques are required to obtain good performance from GPUs. Useful tips and resources include
HPC-Europa sponsored "Programming & optimisation of applications for multiple GPUs" (Many thanks to: Marek Błażewicz, Michał Kierzynka, Krzysztof Kurowski, Bogdan Ludwiczak, Ariel Oleksiak, PSNC)
A Comprehensive Performance Comparison of CUDA and OpenCL - Paper (pdf) from T.U. Delft.
The University of Manchester is also developing a GPU Architecture & Programming Model module as part of its forthcoming GPU Courses.