Differences

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

Link to this comparison view

Next revision
Previous revision
sesiuni:gpu_computing [2015/06/24 22:02]
atrandafir created
sesiuni:gpu_computing [2015/07/20 13:14] (current)
atrandafir [Registration]
Line 1: Line 1:
 = Introduction to GPU Computing = = Introduction to GPU Computing =
  
-<​TODO>​+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? ​==+= When and Where? =
 July 25th - July 26th 2015. July 25th - July 26th 2015.
 ^  Date  ^  Time          ^  Room  | ^  Date  ^  Time          ^  Room  |
-| July 25th 2015 | 09:00-19:00 |  EG304  | +| July 25th2015 | 09:00-19:00 |  EG304  | 
-| July 26th 2015 | 13:00-19:00 |  EG304  |+| July 26th2015 | 13:00-19:00 |  EG304  |
  
-== Workshop Agenda =+= Workshop Agenda =
-DAY 1 +
-* Theory +
-  * OpenCL platforms, hosts and devices +
-  * Compute units, work groups, work items +
-  * Memory hierarchy +
-* Lab session +
-  * Detect available OpenCL platforms and devices on your system +
-  * Query capabilities of the detected OpenCL platforms and devices+
  
-DAY +DAY 1 (July 25th2015)
-* Theory +
-  * OpenCL execution model +
-  * Kernelsqueues, synchronization +
-  * Memory objects +
-  * The OpenCL language +
-* Lab session +
-  * How to map work items on the problem space +
-  * Transfer data to/from GPU +
-  * Implement the OpenCL kernel for the first image processing operation (IPO1) +
-  * Transfer data to GPU and back from the GPU+
  
 +* 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 
  
-== Technical Prerequisites ==+DAY 2 (July 26th, 2015)
  
-If you are interested in learning ​the fundamentals of OpenCL or simply eager to take a first step in the world of parallel programming with GPUs, then you're definitely part of the target audience. You are expected to be familiar with computer architecture and have good C programming knowledge. +* Hands-on: Vector addition using CUDA 
-== Registration ==+* 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
  
-To register for this workshop, please fill in the [[http://​goo.gl/​forms/​uQQEMiW5GU|form]]. += Technical Prerequisites =
-Please try to just be yourself and provide honest and simple answers. We want to get a better idea about what you already know and what you would like to learn, but also to polish the last details of the training materials according to your requirements and preference. +
-For any questions regarding this workshop, please feel free to contact the trainer.+
  
-== Trainer ​==+* 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** **Andrei Trandafir**
  
 **E-mail**: ​ **E-mail**: ​
 <​andrei.tra@gmail.com> ​ <​andrei.tra@gmail.com> ​
sesiuni/gpu_computing.1435172577.txt.gz · Last modified: 2015/06/24 22:02 by atrandafir