Cargando…

Using OpenCL : programming massively parallel computers /

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Kowalik, Janusz S.
Autor Corporativo: IOS Press
Otros Autores: Puźniakowski, Tadeusz
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Amsterdam : IOS Press, ©2012.
Colección:Advances in parallel computing ; v. 21.
Temas:
Acceso en línea:Texto completo
Tabla de Contenidos:
  • 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 ExecutionFinalization 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 KernelsQueues, 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 CodeMemory 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