Pagini
Workshops
Parteneri
This shows you the differences between two versions of the page.
— |
sesiuni:gpu-opencl [2016/06/08 17:16] (current) fbratiloveanu created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | = Introduction to GPU Computing = | ||
+ | This workshop introduces the concept of GPU computing - the ability to write general-purpose, non-graphical applications that can be processed by a modern GPU. Since 2001 GPUs have become programmable processors, initially capable of only handling graphical applications like video games or professional visualization tools. Currently, however, they are much more capable: based on a highly parallel, many-core architecture, GPUs are being used in a large number of high-performance computing domains, such as computational physics, computer vision, computational finance, medical imaging and many others. | ||
+ | In this workshop, you will learn more about what makes a GPU so powerful and how you can use it to accelerate your own computational tasks. It also introduces CUDA as a stable and mature API for NVIDIA-based GPUs, coupled with several useful development tools bundled under NSIGHT - a highly capable and easy-to-use toolkit which integrates with popular IDEs like Visual Studio or Eclipse. | ||
+ | The hands-on tasks will familiarize you with the parallel programming model exposed by CUDA and show you how you can optimize your code to squeeze more performance out of the GPU. | ||
+ | |||
+ | = When and Where? = | ||
+ | July 25th - July 26th 2015. | ||
+ | ^ Date ^ Time ^ Room | | ||
+ | | July 25th, 2015 | 09:00-19:00 | EG304 | | ||
+ | | July 26th, 2015 | 13:00-19:00 | EG304 | | ||
+ | |||
+ | = Workshop Agenda = | ||
+ | |||
+ | DAY 1 (July 25th, 2015) | ||
+ | |||
+ | * GPGPUs and GPU computing | ||
+ | * GPU computing APIs | ||
+ | * GPU hardware architecture | ||
+ | * The accelerator programming model | ||
+ | * CUDA C | ||
+ | * The NVCC compiler | ||
+ | * Threading model | ||
+ | * GPU-specific memory types | ||
+ | * Compute capabilities | ||
+ | * GPU computing demos | ||
+ | * The CUDA SDK | ||
+ | * Hands-on: Implemeting "Hello World!" using CUDA | ||
+ | |||
+ | DAY 2 (July 26th, 2015) | ||
+ | |||
+ | * Hands-on: Vector addition using CUDA | ||
+ | * Using NSIGHT for CUDA debugging and profiling | ||
+ | * Hands-on: 1D convolution (naive implementation) | ||
+ | * Hands-on: 1D convolution (optimized implementation) | ||
+ | * Discussing the performance difference between the 2 1D convolution implementations | ||
+ | * Conclusions | ||
+ | |||
+ | = Technical Prerequisites = | ||
+ | |||
+ | * basic to intermediate C / C++ programming knowledge | ||
+ | * basic knowledge of parallel programming concepts (threads, barriers etc.) | ||
+ | * basic notions of a computing system's architecture (CPU, RAM, GPU etc.) | ||
+ | |||
+ | This workshop is addressed to people who are curious to learn how a modern GPU can be programmed to run numerically-intensive non-graphical applications. Knowledge of a typical computing system's architecture is necessary to better understand how the GPU fits in as a high-performance computing accelerator. C / C ++ programming knowledge and parallel programming concepts will be needed during the hands-on sessions. | ||
+ | |||
+ | = Registration = | ||
+ | |||
+ | Enrollment will be based on a first-come, first-serve principle. | ||
+ | Registration is available until **July 20th, 2015**. | ||
+ | |||
+ | Registration for this workshop has **closed**. | ||
+ | |||
+ | = Trainer = | ||
+ | **Andrei Trandafir** | ||
+ | |||
+ | **E-mail**: | ||
+ | <andrei.tra@gmail.com> |