
Using OpenCL
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Title Page
- Preface
- Contents
- Introduction
- Existing Standard Parallel Programming Systems
- MPI
- OpenMP
- Two Parallelization Strategies: Data Parallelism and Task Parallelism
- Data Parallelism
- Task Parallelism
- Example
- History and Goals of OpenCL
- Origins of Using GPU in General Purpose Computing
- Short History of OpenCL
- Heterogeneous Computer Memories and Data Transfer
- Heterogeneous Computer Memories
- Data Transfer
- The Fourth Generation CUDA
- Host Code
- Phase a. Initialization and Creating Context
- Phase b. Kernel Creation, Compilation and Preparations for Kernel Execution
- Phase c. Creating Command Queues and Kernel Execution
- Finalization and Releasing Resource
- Applications of Heterogeneous Computing
- Accelerating Scientific/Engineering Applications
- Conjugate Gradient Method
- Jacobi Method
- Power Method
- Monte Carlo Methods
- Conclusions
- Benchmarking CGM
- Introduction
- Additional CGM Description
- Heterogeneous Machine
- Algorithm Implementation and Timing Results
- Conclusions
- OpenCL Fundamentals
- OpenCL Overview
- What is OpenCL
- CPU + Accelerators
- Massive Parallelism Idea
- Work Items and Workgroups
- OpenCL Execution Model
- OpenCL Memory Structure
- OpenCL C Language for Programming Kernels
- Queues, Events and Context
- Host Program and Kernel
- Data Parallelism in OpenCL
- Task Parallelism in OpenCL
- How to Start Using OpenCL
- Header Files
- Libraries
- Compilation
- Platforms and Devices
- OpenCL Platform Properties
- Devices Provided by Platform
- OpenCL Platforms - C++
- OpenCL Context to Manage Devices
- Different Types of Devices
- CPU Device Type
- GPU Device Type
- Accelerator
- Different Device Types - Summary
- Context Initialization - by Device Type
- Context Initialization - Selecting Particular Device
- Getting Information about Context
- OpenCL Context to Manage Devices - C++
- Error Handling
- Checking Error Codes
- Using Exceptions - Available in C++
- Using Custom Error Messages
- Command Queues
- In-order Command Queue
- Out-of-order Command Queue
- Command Queue Control
- Profiling Basics
- Profiling Using Events - C example
- Profiling Using Events - C++ example
- Work-Items and Work-Groups
- Information About Index Space from a Kernel
- NDRange Kernel Execution
- Task Execution
- Using Work Offset
- OpenCL Memory
- Different Memory Regions - the Kernel Perspective
- Relaxed Memory Consistency
- Global and Constant Memory Allocation - Host Code
- Memory Transfers - the Host Code
- Programming and Calling Kernel
- Loading and Compilation of an OpenCL Program
- Kernel Invocation and Arguments
- Kernel Declaration
- Supported Scalar Data Types
- Vector Data Types and Common Functions
- Synchronization Functions
- Counting Parallel Sum
- Parallel Sum - Kernel
- Parallel Sum - Host Program
- Structure of the OpenCL Host Program
- Initialization
- Preparation of OpenCL Programs
- Using Binary OpenCL Programs
- Computation
- Release of Resources
- Structure of OpenCL host Programs in C++
- Initialization
- Preparation of OpenCL Programs
- Using Binary OpenCL Programs
- Computation
- Release of Resources
- The SAXPY Example
- Kernel
- The Example SAXPY Application - C Language
- The example SAXPY application - C++ language
- Step by Step Conversion of an Ordinary C Program to OpenCL
- Sequential Version
- OpenCL Initialization
- Data Allocation on the Device
- Sequential Function to OpenCL Kernel
- Loading and Executing a Kernel
- Gathering Results
- Matrix by Vector Multiplication Example
- The Program Calculating matrix times vector
- Performance
- Experiment
- Conclusions
- Advanced OpenCL
- OpenCL Extensions
- Different Classes of Extensions
- Detecting Available Extensions from API
- Using Runtime Extension Functions
- Using Extensions from OpenCL Program
- Debugging OpenCL codes
- Printf
- Using GDB
- Performance and Double Precision
- Floating Point Arithmetics
- Arithmetics Precision - Practical Approach
- Profiling OpenCL Application
- Using the Internal Profiler
- Using External Profiler
- Effective Use of Memories - Memory Access Patterns
- Matrix Multiplication - Optimization Issues
- OpenCL and OpenGL
- Extensions Used
- Libraries
- Header Files
- Common Actions
- OpenGL Initialization
- OpenCL Initialization
- Creating Buffer for OpenGL and OpenCL
- Kernel
- Generating Effect
- Running Kernel that Operates on Shared Buffer
- Results Display
- Message Handling
- Cleanup
- Notes and Further Reading
- Case Study - Genetic Algorithm
- Historical Notes
- Terminology
- Genetic Algorithm
- Example Problem Definition
- Genetic Algorithm Implementation Overview
- OpenCL Program
- Most Important Elements of Host Code
- Summary
- Experiment Results
- Comparing CUDA with OpenCL
- Introduction to CUDA
- Short CUDA Overview
- CUDA 4.0 Release and Compatibility
- CUDA Versions and Device Capability
- CUDA Runtime API Example
- CUDA Program Explained
- Blocks and Threads Indexing Formulas
- Runtime Error Handling
- CUDA Driver API Example
- Theoretical Foundations of Heterogeneous Computing
- Parallel Computer Architectures
- Clusters and SMP
- DSM and ccNUMA
- Parallel Chip Computer
- Performance of OpenCL Programs
- Combining MPI with OpenCL
- Matrix Multiplication - Algorithm and Implementation
- Matrix Multiplication
- Implementation
- OpenCL Kernel
- Initialization and Setup
- Kernel Arguments
- Executing Kernel
- Using Examples Attached to the Book
- Compilation and Setup
- Linux
- Windows
- Bibliography and References
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.