Call : (+91) 968636 4243
Mail : info@EncartaLabs.com
EncartaLabs

Parallel programming with OpenCL

( Duration: 4 Days )

OpenCL is a standard for programming heterogeneous computers built from CPUs, GPUs, and other processors. It includes a framework to define the platform in terms of a host, such as a CPU, and one or more compute devices, such as a GPU plus a C-based programming language for writing programs for the compute devices. Using OpenCL, a programmer can write task-based and data-parallel programs that can take advantage of these different types of processors in a single system.

This Parallel programming with OpenCL training course provides skills for the development of OpenCL portable parallel programs for execution on GPUs from NVIDIA and AMD.

By attending Parallel programming with OpenCL workshop, delegates will:

  • Learn parallel programming with OpenCL.
  • Know what (not) to expect from parallel programming.
  • Understand heavy multithreading and how it is mapped to the hardware.
  • Measure OpenCL code performance, locate and solve bottlenecks.
  • Write efficient OpenCL code.

  • Good knowledge of the C language

The Parallel programming with OpenCL class is intended for Developers

COURSE AGENDA

1

Introduction to OpenCL

  • History
  • OpenCL 1.0
  • OpenCL 1.1
  • OpenCL 1.2
  • OpenCP/EP (Embedded Profile)
  • Design goals of OpenCL
  • CPUs, GPUs and GPGPUs
  • Data-parallel and Task-parallel
  • Hardware related and portable
  • Terminology
  • Host / Device
  • Memory model
  • Execution Model
2

The OpenCL Architecture

  • Platform Model
  • Execution Model
  • Memory Model
  • Programming Model
  • The OpenCL Software Stack
3

The OpenCL Host API

  • Platform layer
  • Querying and selecting devices
  • Managing compute devices
  • Managing computing contexts and queues
  • The host objects: program, kernel, buffer, image
  • Runtime
  • Managing resources
  • Managing memory domains
  • Executing compute kernels
  • Compiler
  • The OpenCL C programming language
  • Online compilation
  • Offline compilation
4

The Basic OpenCL Execution Model

  • How code is executed on hardware
  • Compute kernel
  • Compute program
  • Application queues
  • OpenCL Data-parallel execution
  • N-dimensional computation domains
  • Work-items and work-groups
  • Synchronization and communication in a work-group
  • Mapping global work size to work-groups
  • Parallel execution of work-groups
5

The OpenCL Programming Language

  • Restrictions from C99
  • Data types
  • Scalar
  • Vector
  • Structs and pointers
  • Type-conversion functions
  • Image types
  • Required built-in functions
  • Work-item functions
  • Math and relational
  • Input/output
  • Geometric functions
  • Synchronization
  • Optional features
  • Atomics
  • Rounding modes
6

Advanced OpenCL Execution modes

  • Profiling
  • The OpenCL Memory Model
  • Global Memory
  • Local Memory
  • Private Memory
  • OpenCL Task-parallel execution
  • Optional OpenCL feature
  • Native work-items
7

Efficient OpenCL

  • When (not) to use OpenCL
  • Code design guidelines
  • Explicit vectorization
  • Memory latency and access patterns
  • ALU latency
  • Using local memory
  • Synchronizing threads
  • Warps/Wavefronts, work groups, and GPU cores

Encarta Labs Advantage

  • One Stop Corporate Training Solution Providers for over 6,000 various courses on a variety of subjects
  • All courses are delivered by Industry Veterans
  • Get jumpstarted from newbie to production ready in a matter of few days
  • Trained more than 50,000 Corporate executives across the Globe
  • All our trainings are conducted in workshop mode with more focus on hands-on sessions

View our other course offerings by visiting https://www.encartalabs.com/course-catalogue-all.php

Contact us for delivering this course as a public/open-house workshop/online training for a group of 10+ candidates.

Top
Notice
X