AMD offers get-started-in-GPGPU guidance

March 18, 2013 // By Graham Prophet
Graphics processing units (GPUs) are built around an array of processing cores, initially conceived as the means of efficiency carrying out the massively-parallel task of producing fast and detailed displays. Software developers realised that these arrays represented a low-cost, highly-parallel computing resource, but required a medium in which to program them.

That vehicle is OpenCL (a trademark of Apple, as is the OpenCL logo) and for some time, software developers have been using GPUs for general purpose processing, often referred to as General Purpose computation on Graphics Processing Units (GPGPUs). AMD notes, in a recently-published appication note, that the GPUs used for this purpose are usually high-performance multi-core processors capable of very high computation and data throughput; now, they are general-purpose parallel processors with support for accessible programming interfaces and industry-standard languages such as C and C++. Developers who port their applications to multi-core GPUs often achieve performance increases of orders of magnitude versus optimised CPU-only implementations.

Combining a low power CPU with a multicore high-performance GPU on the AMD Embedded G-Series APU (Accelerated Processing Unit) opens up new processing opportunities for embedded applications, the paper asserts - but how do you take full advantage of the processing power? What software is available and what can it do? Specifically, how does OpenCL help you get the most processing performance possible from the AMD G-Series APU? This paper provides an introduction to the AMD G-Series APU and operating systems that support these devices. It also introduces the reader to the OpenCL framework and programming model and contains an in-depth tutorial on working with AMD’s Accelerated Parallel Processing Software Development Kit (AMD APP SDK) including creating your first OpenCL program.

You can download the paper (there is a registration screen) here;