Heterogeneous Computing with OpenCL by Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry,

By Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa

Heterogeneous Computing with OpenCL teaches OpenCL and parallel programming for complicated platforms which can contain a number of gadget architectures: multi-core CPUs, GPUs, and fully-integrated speeded up Processing devices (APUs) equivalent to AMD Fusion expertise. Designed to paintings on a number of structures and with huge help, OpenCL might help you extra successfully application for a heterogeneous future.

Written via leaders within the parallel computing and OpenCL groups, this booklet provides you with hands-on OpenCL event to handle various primary parallel algorithms. The authors discover reminiscence areas, optimization ideas, pix interoperability, extensions, and debugging and profiling. meant to aid a parallel programming path, Heterogeneous Computing with OpenCL contains unique examples all through, plus extra on-line routines and different helping materials.

  • Explains ideas and techniques to benefit parallel programming with OpenCL, from knowing the 4 abstraction versions to completely trying out and debugging entire applications.
  • Covers picture processing, internet plugins, particle simulations, video modifying, functionality optimization, and more.
  • Shows how OpenCL maps to an instance objective structure and explains a few of the tradeoffs linked to mapping to numerous architectures
  • Addresses various primary programming recommendations, with a number of examples and case reviews that reveal OpenCL extensions for various platforms

Show description

Read or Download Heterogeneous Computing with OpenCL PDF

Best design & architecture books

Operational Amplifiers: Theory and Design

Operational Amplifiers – conception and layout, moment version offers a scientific circuit layout of operational amplifiers. Containing cutting-edge fabric in addition to the necessities, the publication is written to attract either the circuit fashion designer and the procedure fashion designer. it really is proven that the topology of all operational amplifiers may be divided into 9 major total configurations.

Computer and Information Security Handbook

The second edition of this accomplished guide of laptop and knowledge security provides the main whole view of machine protection and privateness on hand. It deals in-depth assurance of safeguard conception, know-how, and perform as they relate to proven applied sciences in addition to fresh advances.

Languages, Design Methods, and Tools for Electronic System Design: Selected Contributions from FDL 2015

This publication brings jointly a range of the easiest papers from the eighteenth variation of the discussion board on specification and layout Languages convention (FDL), which came about on September 14-16, 2015, in Barcelona, Spain. FDL is a well-established foreign discussion board dedicated to dissemination of analysis effects, useful studies and new rules within the program of specification, layout and verification languages to the layout, modeling and verification of built-in circuits, advanced hardware/software embedded structures, and mixed-technology platforms.

Extra resources for Heterogeneous Computing with OpenCL

Sample text

Khronos Group. OpenCL. org/opencl. Mattson, T. , Sanders, B. , & Massingill, B. L. (2004). Patterns for Parallel Programming. Upper Saddle River, NJ: Addison Wesley. NVIDA. CUDA Zone. html. AMD. OpenCL Zone. com/openclzone. 13 intentionally left blank CHAPTER Introduction to OpenCL 2 INTRODUCTION This chapter introduces OpenCL, the programming fabric that will allow us to weave our application to execute concurrently. Programmers familiar with C and Cþþ should have little trouble understanding the OpenCL syntax.

The code for a serial C implementation of the vector addition executes a loop with as many iterations as there are elements to compute. Each loop iteration adds the corresponding locations in the input arrays together and stores the result into the output array: // Perform an element wise addition of A and B and store in C. // There are N elements per array. void vecadd(int *C, int* A, int *B, int N) { for(int i 0; i < N; i++) { C[i] A[i] + B[i]; } } For a simple multi-core device, we could either use a low-level coarse-grained threading API, such as Win32 or POSIX threads, or use a data-parallel model such as OpenMP.

When data is read from an image, a sampler object is required. Samplers specify how out-of-bounds image accesses are handled, whether interpolation should be used, and if coordinates are normalized. , storing in the proper channel and with the proper size). Chapter 4 provides an example of an OpenCL program that uses images. Flush and Finish The flush and finish commands are two different types of barrier operations for a command queue. The clFinish() function blocks until all of the commands in a command queue have completed; its functionality is synonymous with a synchronization barrier.

Download PDF sample

Rated 4.08 of 5 – based on 44 votes