0%

Book Description

Using 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

  • Understanding OpenCL’s architecture, concepts, terminology, goals, and rationale

  • Programming with OpenCL C and the runtime API

  • Using buffers, sub-buffers, images, samplers, and events

  • Sharing and synchronizing data with OpenGL and Microsoft’s Direct3D

  • Simplifying development with the C++ Wrapper API

  • Using OpenCL Embedded Profiles to support devices ranging from cellphones to supercomputer nodes

  • Case studies dealing with physics simulation; image and signal processing, such as image histograms, edge detection filters, Fast Fourier Transforms, and optical flow; math libraries, such as matrix multiplication and high-performance sparse matrix multiplication; and more

  • Source code for this book is available at https://code.google.com/p/opencl-book-samples/

  • Table of Contents

    1. Title Page
    2. Copyright Page
    3. Contents
    4. Figures
    5. Tables
    6. Listings
    7. Foreword
    8. Preface
    9. Acknowledgments
    10. About the Authors
    11. Part I. The OpenCL 1.1 Language and API
      1. Chapter 1. An Introduction to OpenCL
      2. Chapter 2. HelloWorld: An OpenCL Example
      3. Chapter 3. Platforms, Contexts, and Devices
      4. Chapter 4. Programming with OpenCL C
      5. Chapter 5. OpenCL C Built-In Functions
      6. Chapter 6. Programs and Kernels
      7. Chapter 7. Buffers and Sub-Buffers
      8. Chapter 8. Images and Samplers
      9. Chapter 9. Events
      10. Chapter 10. Interoperability with OpenGL
      11. Chapter 11. Interoperability with Direct3D
      12. Chapter 12. C++ Wrapper API
      13. Chapter 13. OpenCL Embedded Profile
    12. Part II. OpenCL 1.1 Case Studies
      1. Chapter 14. Image Histogram
      2. Chapter 15. Sobel Edge Detection Filter
      3. Chapter 16. Parallelizing Dijkstra’s Single-Source Shortest-Path Graph Algorithm
      4. Chapter 17. Cloth Simulation in the Bullet Physics SDK
      5. Chapter 18. Simulating the Ocean with Fast Fourier Transform
      6. Chapter 19. Optical Flow
      7. Chapter 20. Using OpenCL with PyOpenCL
      8. Chapter 21. Matrix Multiplication with OpenCL
      9. Chapter 22. Sparse Matrix-Vector Multiplication
    13. Appendix A. Summary of OpenCL 1.1
    14. Index
    15. Footnotes
      1. Chapter 1
      2. Chapter 3
      3. Chapter 4
      4. Chapter 5
      5. Chapter 7
      6. Chapter 16
      7. Chapter 17
      8. Chapter 18
      9. Chapter 19
      10. Chapter 22
    18.218.3.204