OpenCL Programming GuideUsing the new OpenCL (Open Computing Language) standard, you can write applications that access all available programming resources: CPUs, GPUs, and other processors such as DSPs and the Cell/B.E. processor. Already implemented by Apple, AMD, Intel, IBM, NVIDIA, and other leaders, OpenCL has outstanding potential for PCs, servers, handheld/embedded devices, high performance computing, and even cloud systems. This is the first comprehensive, authoritative, and practical guide to OpenCL 1.1 specifically for working developers and software architects.
Written by five leading OpenCL authorities, OpenCL Programming Guide covers the entire specification. It reviews key use cases, shows how OpenCL can express a wide range of parallel algorithms, and offers complete reference material on both the API and OpenCL C programming language.
Through complete case studies and downloadable code examples, the authors show how to write complex parallel programs that decompose workloads across many different devices. They also present all the essentials of OpenCL software performance optimization, including probing and adapting to hardware. Coverage includes
|
Other editions - View all
Common terms and phrases
2D image address space algorithm allocated argument array buffer object built-in functions bytes chapter char cl_command_queue command_queue cl_context context cl_device_id cl_event event cl_int cl_mem CL_SUCCESS cl_uint num_events_in_wait_list clEnqueueNDRangeKernel clSetKernelArg CMake command-queue commands compute const size_t coord created data types defined Direct3D doublen element embedded profile enqueued errNum error example execution float float4 floating-point gentype gentypef get_global_id(0 global memory halfn hardware histogram host memory image object image2d_t image implementation-defined input int2 int4 integer intn kernel function kernel object kernel void Listing matrix Matrix Multiplication NULL NVIDIA OpenCL device OpenCL implementation OpenCL kernel OpenCL platform operand operations optical flow options output packet param_name param_value performance pointer preprocessor program object query queue read_imagef reference count result rounding mode scalar size_t offset sparse matrix specified std::endl sub-buffer supported Table texture uchar uint unsigned int vector vector data types vector types vertex work-group work-items


