Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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> ​
sesiuni/gpu-opencl.txt · Last modified: 2016/06/08 17:16 by fbratiloveanu