OpenCL Programming by Example.

By: Banger, RavishekharContributor(s): Bhattacharyya, KoushikPublisher: Olton : Packt Publishing, Limited, 2013Copyright date: ©2013Description: 1 online resource (304 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9781849692359Subject(s): Italy -- Commerce.;Italy -- Economic conditions -- 1994-;ItalyGenre/Form: Electronic books. Additional physical formats: Print version:: OpenCL Programming by ExampleDDC classification: 005.2/75 LOC classification: QA76.642 -- .B378 2013ebOnline resources: Click to View
Contents:
Cover -- Copyright -- Credits -- About the Authors -- About the Reviewers -- www.PacktPub.com -- Table of Contents -- Preface -- Chapter 1: Hello OpenCL -- Advances in computer architecture -- Different parallel programming techniques -- OpenMP -- MPI -- OpenACC -- CUDA -- CUDA or OpenCL? -- Renderscripts -- Hybrid parallel computing model -- Introduction to OpenCL -- Hardware and software vendors -- Advanced Micro Devices, Inc. (AMD) -- NVIDIA® -- Intel® -- ARM Mali™ GPUs -- OpenCL components -- An example OpenCL program -- Basic software requirements -- Windows -- Linux -- Installing and setting up an OpenCL compliant computer -- Installation steps -- Installing OpenCL on a Linux system with an AMD graphics card -- Installing OpenCL on a Linux system with an NVIDIA graphics card -- Installing OpenCL on a Windows system with an AMD graphics card -- Installing OpenCL on a Windows system with an NVIDIA graphics card -- Apple OSX -- Multiple installations -- Implement the SAXPY routine in OpenCL -- Summary -- References -- Chapter 2: OpenCL Architecture -- Platform model -- AMD A10 5800K APUs -- AMD Radeon™ HD 7870 Graphics Processor -- NVIDIA® GeForce® GTC 680 GPU -- Intel® IVY bridge -- Platform versions -- Query Platforms -- Query devices -- Execution model -- NDRange -- OpenCL context -- OpenCL command queue -- Memory model -- Global memory -- Constant memory -- Local memory -- Private memory -- OpenCL ICD -- What is an OpenCL ICD? -- Application scaling -- Summary -- Chapter 3: OpenCL Buffer Objects -- Memory Objects -- Creating Subbuffer objects -- Histogram calculation -- Algorithm -- OpenCL Kernel Code -- The Host Code -- Reading and writing buffers -- Blocking_read and Blocking_write -- Rectangular or cuboidal reads -- Copying buffers -- Mapping buffer objects -- Querying buffer objects -- Undefined behavior of the cl_mem objects.
Summary -- Chapter 4: OpenCL Images -- Creating images -- Image format descriptor cl_image_format -- Image details descriptor cl_image_desc -- Passing image buffers to kernels -- Samplers -- Reading and writing buffers -- Copying and filling images -- Mapping image objects -- Querying image objects -- Image histogram computation -- Summary -- Chapter 5: OpenCL Program and Kernel Objects -- Creating program objects -- Creating and building program objects -- OpenCL program building options -- Querying program objects -- Creating binary files -- Offline and online compilation -- SAXPY using the binary file -- SPIR - Standard Portable Intermediate Representation -- Creating kernel objects -- Setting kernel arguments -- Executing the kernels -- Querying kernel objects -- Querying kernel argument -- Releasing program and kernel objects -- Built-in kernels -- Summary -- Chapter 6: Events and Synchronization -- OpenCL events and monitoring of these events -- OpenCL event synchronization models -- No synchronization needed -- Single device in-order usage -- Synchronization needed -- Single device and out-of-order queue -- Multiple devices and different OpenCL contexts -- Multiple devices and single OpenCL context -- Coarse grained synchronization -- Event based or fine grained synchronization -- Getting information about cl_event -- User created events -- Event profiling -- Memory fences -- Summary -- Chapter 7: OpenCL C Programming -- Built-in data types -- Basic data types and vector types -- The half data type -- Other data types -- Reserved data types -- Alignment of data types -- Vector data types -- Vector components -- Aliasing rules -- Conversions and type casts -- Implicit conversion -- Explicit conversion -- Reinterpreting data types -- Operators -- Operation on half data type -- Address space qualifiers -- __global/global address space.
__local/local address space -- __constant/constant address space -- __private/private address space -- Restrictions -- Image access qualifiers -- Function attributes -- Data type attributes -- Variable attribute -- Storage class specifiers -- Built-in functions -- Work item function -- Synchronization and memory fence functions -- Other built-ins -- Summary -- Chapter 8: Basic Optimization Techniques with Case Studies -- Finding the performance of your program? -- Explaining the code -- Tools for profiling and finding performance bottlenecks -- Case study - matrix multiplication -- Sequential implementation -- OpenCL implementation -- Simple kernel -- Kernel optimization techniques -- Case study - Histogram calculation -- Finding the scope of the use of OpenCL -- General tips -- Summary -- Chapter 9: Image Processing and OpenCL -- Image representation -- Implementing image filters -- Mean filter -- Median filter -- Gaussian filter -- Sobel filter -- OpenCL implementation of filters -- Mean and Gaussian filter -- Median filter -- Sobel filter -- JPEG compression -- Encoding JPEG -- OpenCL implementation -- Summary -- References -- Chapter 10: OpenCL-OpenGL Interoperation -- Introduction to OpenGL -- Defining Interoperation -- Implementing Interoperation -- Detecting if OpenCL-OpenGL interoperation is supported -- Initializing OpenCL context for OpenGL Interoperation -- Mapping of a Buffer -- Listing interoperation steps -- Synchronization -- Creating a Buffer from GL texture -- Renderbuffer object -- Summary -- Chapter 11: Case studies - Regressions, Sort, and KNN -- Regression with least square curve fitting -- Linear approximations -- Parabolic approximations -- Implementation -- Bitonic sort -- K-Nearest Neighborhood (k-NN) algorithm -- Summary -- Index.
Summary: This book follows an example-driven, simplified, and practical approach to using OpenCL for general purpose GPU programming.If you are a beginner in parallel programming and would like to quickly accelerate your algorithms using OpenCL, this book is perfect for you! You will find the diverse topics and case studies in this book interesting and informative. You will only require a good knowledge of C programming for this book, and an understanding of parallel implementations will be useful, but not necessary.
Holdings
Item type Current library Call number Status Date due Barcode Item holds
Ebrary Ebrary Afghanistan
Available EBKAF00085668
Ebrary Ebrary Algeria
Available
Ebrary Ebrary Cyprus
Available
Ebrary Ebrary Egypt
Available
Ebrary Ebrary Libya
Available
Ebrary Ebrary Morocco
Available
Ebrary Ebrary Nepal
Available EBKNP00085668
Ebrary Ebrary Sudan

Access a wide range of magazines and books using Pressreader and Ebook central.

Enjoy your reading, British Council Sudan.

Available
Ebrary Ebrary Tunisia
Available
Total holds: 0

Cover -- Copyright -- Credits -- About the Authors -- About the Reviewers -- www.PacktPub.com -- Table of Contents -- Preface -- Chapter 1: Hello OpenCL -- Advances in computer architecture -- Different parallel programming techniques -- OpenMP -- MPI -- OpenACC -- CUDA -- CUDA or OpenCL? -- Renderscripts -- Hybrid parallel computing model -- Introduction to OpenCL -- Hardware and software vendors -- Advanced Micro Devices, Inc. (AMD) -- NVIDIA® -- Intel® -- ARM Mali™ GPUs -- OpenCL components -- An example OpenCL program -- Basic software requirements -- Windows -- Linux -- Installing and setting up an OpenCL compliant computer -- Installation steps -- Installing OpenCL on a Linux system with an AMD graphics card -- Installing OpenCL on a Linux system with an NVIDIA graphics card -- Installing OpenCL on a Windows system with an AMD graphics card -- Installing OpenCL on a Windows system with an NVIDIA graphics card -- Apple OSX -- Multiple installations -- Implement the SAXPY routine in OpenCL -- Summary -- References -- Chapter 2: OpenCL Architecture -- Platform model -- AMD A10 5800K APUs -- AMD Radeon™ HD 7870 Graphics Processor -- NVIDIA® GeForce® GTC 680 GPU -- Intel® IVY bridge -- Platform versions -- Query Platforms -- Query devices -- Execution model -- NDRange -- OpenCL context -- OpenCL command queue -- Memory model -- Global memory -- Constant memory -- Local memory -- Private memory -- OpenCL ICD -- What is an OpenCL ICD? -- Application scaling -- Summary -- Chapter 3: OpenCL Buffer Objects -- Memory Objects -- Creating Subbuffer objects -- Histogram calculation -- Algorithm -- OpenCL Kernel Code -- The Host Code -- Reading and writing buffers -- Blocking_read and Blocking_write -- Rectangular or cuboidal reads -- Copying buffers -- Mapping buffer objects -- Querying buffer objects -- Undefined behavior of the cl_mem objects.

Summary -- Chapter 4: OpenCL Images -- Creating images -- Image format descriptor cl_image_format -- Image details descriptor cl_image_desc -- Passing image buffers to kernels -- Samplers -- Reading and writing buffers -- Copying and filling images -- Mapping image objects -- Querying image objects -- Image histogram computation -- Summary -- Chapter 5: OpenCL Program and Kernel Objects -- Creating program objects -- Creating and building program objects -- OpenCL program building options -- Querying program objects -- Creating binary files -- Offline and online compilation -- SAXPY using the binary file -- SPIR - Standard Portable Intermediate Representation -- Creating kernel objects -- Setting kernel arguments -- Executing the kernels -- Querying kernel objects -- Querying kernel argument -- Releasing program and kernel objects -- Built-in kernels -- Summary -- Chapter 6: Events and Synchronization -- OpenCL events and monitoring of these events -- OpenCL event synchronization models -- No synchronization needed -- Single device in-order usage -- Synchronization needed -- Single device and out-of-order queue -- Multiple devices and different OpenCL contexts -- Multiple devices and single OpenCL context -- Coarse grained synchronization -- Event based or fine grained synchronization -- Getting information about cl_event -- User created events -- Event profiling -- Memory fences -- Summary -- Chapter 7: OpenCL C Programming -- Built-in data types -- Basic data types and vector types -- The half data type -- Other data types -- Reserved data types -- Alignment of data types -- Vector data types -- Vector components -- Aliasing rules -- Conversions and type casts -- Implicit conversion -- Explicit conversion -- Reinterpreting data types -- Operators -- Operation on half data type -- Address space qualifiers -- __global/global address space.

__local/local address space -- __constant/constant address space -- __private/private address space -- Restrictions -- Image access qualifiers -- Function attributes -- Data type attributes -- Variable attribute -- Storage class specifiers -- Built-in functions -- Work item function -- Synchronization and memory fence functions -- Other built-ins -- Summary -- Chapter 8: Basic Optimization Techniques with Case Studies -- Finding the performance of your program? -- Explaining the code -- Tools for profiling and finding performance bottlenecks -- Case study - matrix multiplication -- Sequential implementation -- OpenCL implementation -- Simple kernel -- Kernel optimization techniques -- Case study - Histogram calculation -- Finding the scope of the use of OpenCL -- General tips -- Summary -- Chapter 9: Image Processing and OpenCL -- Image representation -- Implementing image filters -- Mean filter -- Median filter -- Gaussian filter -- Sobel filter -- OpenCL implementation of filters -- Mean and Gaussian filter -- Median filter -- Sobel filter -- JPEG compression -- Encoding JPEG -- OpenCL implementation -- Summary -- References -- Chapter 10: OpenCL-OpenGL Interoperation -- Introduction to OpenGL -- Defining Interoperation -- Implementing Interoperation -- Detecting if OpenCL-OpenGL interoperation is supported -- Initializing OpenCL context for OpenGL Interoperation -- Mapping of a Buffer -- Listing interoperation steps -- Synchronization -- Creating a Buffer from GL texture -- Renderbuffer object -- Summary -- Chapter 11: Case studies - Regressions, Sort, and KNN -- Regression with least square curve fitting -- Linear approximations -- Parabolic approximations -- Implementation -- Bitonic sort -- K-Nearest Neighborhood (k-NN) algorithm -- Summary -- Index.

This book follows an example-driven, simplified, and practical approach to using OpenCL for general purpose GPU programming.If you are a beginner in parallel programming and would like to quickly accelerate your algorithms using OpenCL, this book is perfect for you! You will find the diverse topics and case studies in this book interesting and informative. You will only require a good knowledge of C programming for this book, and an understanding of parallel implementations will be useful, but not necessary.

Description based on publisher supplied metadata and other sources.

Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2019. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.

There are no comments on this title.

to post a comment.