Why OpenCL ?
OpenCL, short for Open Computing Language, is the first open, royalty-free standard for cross-platform, parallel programming on modern processors found in personal computers, servers and hand-held/embedded devices. Applications ranging from gaming to scientific and medical imaging can greatly benefit from OpenCL by improving speed and responsiveness. The standard is managed by the non-profit technology consortium Khronos Group.
OpenCL allows you to use the power of Multicore and Many core processors to speed up your applications. Imagine you have a Mini Hard Disk with a capacity of 1 TB. Now since the disk has very critical data, you want to make sure that the data is not corrupted by Viruses. So you start scanning it on your PC using a traditional Antivirus that has been programmed to execute sequentially on the processor. Such an Antivirus will take many hours to scan the disk , which is obviously not desirable. An option will be to do parallel programming on multiple processing cores of modern GPUs and CPUs, running the scanning algorithm simultaneously on all the available cores. But this requires lots of effort , expertise and knowledge of low level details of the GPU OpenCL on the other hand is based on C programming language, which is familier to most of the developers/engineers, and provides necessary abstractions so as to make life of programmers easier. OpenCL can help you utilize the power of 100s of processing cores of a GPU and accelerate the pattern matching algorithm for virus detection by many folds.
Apart from consumer applications hundreds of scientific problems are being solved using GPUs. Click here to have a glimpse of some of the latest applications getting performance boost from OpenCL. In short GPU Computing is going to rule the industry from Biotechnology and Biochemistry to Fluid Dynamics and Internet Security Auditing.
The training is offered Online as well as Offline/Class room-instructor lead and is customized based on your requirement and area of interest.
Review of few important C concepts
- C Programming basics
- Building C Program on Linux
Running a Program
- User Defined Data Type
Dynamic Memory Allocation: malloc(),free()
An introduction to Multi-core/ GPU Computing
- Why GPU/Parallel Computing?
- Basic differences between GPUs and CPUs
- The Accelerated Processing Unit (APU)?
- The processor of 2020
- Alternatives to Parallel Computing
Architecture of some recent CPUs and GPUs
OpenCL Architecture- Comparison with other programming models
OpenCL Buffers with examples in Image processing
Programming Multi Device
Hands-on sessions will cover a no. of lab exercises covering above listed topics and demonstrations on the following:
- Demonstration of N-body Simulation
- Fast Matrix Multiplication
- Application in Artificial Neural Network
- Image/Video Processing
- Computational Finance
A no. of project ideas will also be discussed at the end of the program.
For any specific information or query contact us at email@example.com