Filter

GPGPU Computing in C++ with CUDA

Some algorithms are massively parallel, for instance applying filters to images, convolutions, matrix operations, particle based physics simulations, evaluating neural networks. These algorithms can be massively accelerated by executing them on the GPU instead of the CPU. In this course we use NVIDIA CUDA for writing programs that perform their computations on the GPU.

This course goes close to the metal and as such we focus a fair bit on GPU hardware architecture, since the main goal of GPU programming is to get better performance we need to know which patterns that work best and how to debug and optimize for GPU computing.

NVIDIA CUDA is a library and extension to C++ that allows you to mix code that runs on the CPU with code for the GPU in same source file.

  • C++
  • GPGPU

Target audience

Experienced C++ Developers

Prerequisites

Multi-threaded programming using threads on CPU. 

Day 1

  • Introduction
  • GPGPU History
  • Hardware
    • CPU Hardware
    • GPU Hardware
  • CUDA Basics
    • Writing a CUDA kernel
    • Grid-stride loops
    • Error Handling
    • Inside a kernel
    • Global Memory
    • CUDA Toolchain
  • Debugging
    • CUDA GDB
    • MemCheck
    • Nsight
  • Tiling
    • Basic Tiling
    • Coalescing
    • Shared Memory
    • Bank Conflicts
    • GPU Stalls
    • Occupancy

Day 2

  • Algorithms and Datastructures on a GPU
    • Vectors
    • Lists
    • Trees
    • Map
    • Transpose
    • Reduce
    • Parallel Prefix Sum
    • Stream Compaction
    • NVIDIA Thrust
  • Synchronization
    • Fences
    • Atomics
    • Volatile
    • Invariants
    • Warp Functions
    • Cooperative Groups
  • Profiling
    • Measuring Performance
    • Bottlenecks
    • Events
    • Visual Profiler
    • Texture Memory
    • Constant Memory
  • Streams
    • Command Queues
    • Memory Busses
    • Overlapping Transfeers
    • Dynamic Parallelism
    • TDR, How to avoid

Course info

Course code: T394
Duration: 2 days
Price: 24 500 SEK
Language: English

Course schedule

Stockholm
Gothenburg
Malmö
25 NovBook now

Teachers

Share

Related courses

  • C++ for Experienced Developers

    Category: C++
    Duration: 3 days
    Price: 25 900 SEK
  • Advanced C++

    Category: C++
    Duration: 2 days
    Price: 21 500 SEK
  • GPGPU Computing in C++ with AMP

    Category: C++
    Duration: 2 days
    Price: 24 500 SEK
  • Parallel Programming in C++

    Category: C++
    Duration: 1 day
    Price: 16 500 SEK

Contact us for details

+46 40 61 70 720
info@edument.se


All prices excluding VAT