C++ AMP Training
C++ Accelerated Massive Parallelism (C++ AMP) is a programming model that can accelerate the execution of your C++ code by taking advantage of the data-parallel hardware that is commonly present as a GPU and multi-core CPU.
Acceleware is pleased to offer the first C++ AMP training course for creating and optimizing applications on heterogeneous platforms. Delivered by Acceleware’s Developers (as opposed to trained trainers!), the course is designed for programmers looking to acquire comprehensive skills in accelerating applications through parallel programming.
Developed in partnership with Microsoft, Acceleware’s 4 day C++ AMP course focuses on using GPUs as the data parallel hardware. Using Visual Studio 12, students will learn:
- Data parallel programming model
- C++ AMP syntax
- C++ AMP API
- C++ AMP debugging functionality in Microsoft Visual Studio 12
- C++ AMP support in the concurrency visualiser in Visual Studio 12
- Optimizing code for GPUs
The training comprises of classroom lectures and practical hands-on exercises using supplied laptops equipped with compute-capable GPUs. Small class sizes maximize learning and ensure a personal educational experience for each student.
Your fee includes:
- Use of a laptop equipped with compute-capable GPU
- Manual of all lectures
- C ++ AMP quick reference guide
- Electronic copy of lab exercises
- Certificate of completion
In addition to the public class schedule Acceleware offers private onsite classes for small groups. Email services@acceleware.com for more information.
We recommend that the attendees have a background C/C++/C# (1 year or more) in order to get the most out of the course.
Attendees should be familiar with the following C/C++/C# concepts:
|
Entirely optional (but helpful) experiences:
|
4 Day Course Syllabus
- Day 1: Introduction to GPU Programming and GPU Architectures
- Overview of GPU Computing
- C++ 11 Lambda Syntax
- Data-Parallel Architectures and C++ AMP Programming Model
- AMPed Up! (AKA More C++ AMP Features)
- Hands-on Exercises: Lambda Functions and Templates, Intro to C++ AMP and Mini Exercises exploring AMP Features
- Day 2: Lower Level API, Debugging and Graphics
- Lower Level API (Tiles)
- Debugging C++ AMP Programs & Understanding Numerical Differences
- Textures & DirectX Interoperability
- Hands-on Exercises: Debugging Demo and Moving Average Filter, C++ AMP Support in the Visual Studio 12 Debugger, Graphics Interoperability
- Day 3: Intro to Optimization
- Asynchronous Operations and Efficient Copy Operations
- Accelerator Architectures/Latency
- Performance Optimizations
- Hands-on Exercises: Asynchronous Operations, Latency Exercise, Arithmetic and Memory Performance Optimization
- Day 4: Profiling and Case Studies
- Profiling Applications
- Case Study 1: Finite Difference Stencil Algorithm
- Case Study 2: Monte Carlo Simulations
- Hands-on Exercises: C++ AMP Features in Concurrency Visualiser for Visual Studio 12, Finite Difference Exercise and Monte Carlo Exercise















