GPU Architectures and Computing

Aim

 

Graphics processing units (GPUs)  were originally developed  as specialized electronic circuits for fast image processing and graphics rendering. GPUs are nowadays heavily employed for all the general purpose applications that require high-performance computational power, because their highly parallel structure makes them more effective than general-purpose CPUs for algorithms where processing of large blocks of data is done in parallel. GPUs are becoming a valid alternative to the classic CPU-based supercomputer clusters also for the improved energy-consumption/performance ratio and their lower cost.  GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles.


The aim of the course is to provide students with a general overview about this emerging multi-core parallel computing architecture. The objectives of this course are:

  • gaining understanding of GPU computer architecture,
  • getting familiar with GPU programming environments,
  • implementing programs solving problems that would classically have been run on supercomputers

Basic notions of Computer Architectures and a good knowledge of C programming are expected, as all the programming will use environments building on C.

 

Subject

 

The course will start with an introduction on the modern GPU architectures, by tracing the evolution from the SIMD (Single Instruction, Multiple Data) architecture to the current architectural features and by discussing the trends for the future. We then will explore the two main Programming Models: CUDA and OpenCL. Real case studies will expose students to the potential applications of this technology. A final project will give them the possibility to make a concrete experience of the concepts taught, to solve a modest GPU programming problem that will be assigned by the teacher or proposed by the student, to present it at the end to the class. This is the
list of the main topics of the course:

  • GPU Architectures (NVIDIA Fermi, NVIDIA Kepler, ATI/AMD)
  • CUDA Programming Model
  • OpenCL Programming Model
  • Case Studies (Graph exploration, Path Planning, Curvature Analysis, Signal Processing, PDE Solvers)
  • Optimizing GPU performance

 

Registration

The enrollment can be performed using the MyTI portal https://ti.tuwien.ac.at/admin/. The enrollment will be close on Friday 10th March 2017. The max number of students for this course is 15. Please register soon !!! The lessons will start on Monday 13th of March (10-12) in the Seminarraum Techn. Informatik.

Lecturer

Asst. Prof. Ezio Bartocci

 

Homepage

https://tiss.tuwien.ac.at/course/educationDetails.xhtml?windowId=bb8&courseNr=182731&semester=2016S

 

Equipment

 

  • Our rack is equipped with:
    • 4 NVIDIA Kepler K10
    • 8 GPUs for a total of 12288 cores
    • 16 Teraflops in single precision
    • 1 Teraflops in double precision
    • 64 GB of CPU RAM available
    • 32 GB of GPU RAM available
GPU Architectures and Computing

 

Dates

Date Time Location Event Notes
         
07.03.2018 11:00 - 13:00 Seminarraum Techn. Informatik Course Introduction & GPU Architectures  
13.03.2018 10:00 - 12:00 Seminarraum Techn. Informatik CUDA Programming (Basics, Cuda Threads, Atomics)  
14.03.2018 11:00 - 13:00 Seminarraum Techn. Informatik CUDA Programming (Memories)  
18.04.2018 11:00 - 13:00 Seminarraum Techn. Informatik Parallel Patterns CUDA Tools  
25.04.2018 11:00 - 13:00 Seminarraum Techn. Informatik Introduction to the Thrust Library  
02.05.2018 11:00 - 13:00 Seminarraum Techn. Informatik Streams and Concurrency  
08.05.2018 09:00 - 11:00 Seminarraum Techn. Informatik Unified Virtual Memory (UVA)  
09.05.2018 11:00 - 13:00 Seminarraum Techn. Informatik Multi-GPU Programming  
15.05.2018 09:00 - 11:00 Seminarraum Techn. Informatik  TBA  
16.05.2018 11:00 - 13:00 Seminarraum Techn. Informatik TBA  
23.05.2018 11:00 - 13:00 Seminarraum Techn. Informatik TBA  
29.05.2018 09:00 - 11:00 Seminarraum Techn. Informatik TBA  
30.05.2018 11:00 - 13:00 Seminarraum Techn. Informatik TBA  
05.06.2018 09:00 - 11:00  Seminarraum Techn. Informatik TBA   
06.06.2018 11:00 - 13:00  Seminarraum Techn. Informatik TBA  
12.06.2018 09:00 - 11:00  Seminarraum Techn. Informatik TBA  
13.06.2018 11:00 - 13:00 Seminarraum Techn. Informatik TBA   

 

Resources