The registration to this course is now open.
PLEASE BRING YOUR OWN LAPTOP.
Local Web Page: This course will provide very good introduction to the PUMPS Summer School run jointly with NVIDIA -also at Campus Nord, Barcelona. For further information visit the school website as this school has attendee selection process.
You may also be interested in our Introduction to OpenACC course.
Convener:
Antonio Peña, Computer Sciences Senior Researcher, Accelerators and Communications for High Performance Computing, BSC
Objectives:
The aim of this course is to provide students with knowledge and hands-on experience in developing applications software for processors with massively parallel computing resources. In general, we refer to a processor as massively parallel if it has the ability to complete more than 64 arithmetic operations per clock cycle. Many commercial offerings from NVIDIA, AMD, and Intel already offer such levels of concurrency. Effectively programming these processors will require in-depth knowledge about parallel programming principles, as well as the parallelism models, communication models, and resource limitations of these processors.
Agenda:
DAY 1
Session 1 / 9:00am – 1:00 pm (3:30 h lectures)
L1 9:00-10:45 The GPU hardware: Many-core Nvidia developments
10:45-11:15 Coffee break
L2 11:15-13:00 CUDA Programming: Threads, blocks, kernels, grids
13:00-14:00 Lunch break
Session 2 / 2:00pm – 6:00 pm (3:30 h lectures)
L3 14:00-15:45 CUDA Tools: Compiling, debugging, profiling, occupancy calculator
15:45-16:15 Coffee break
L4 16:15-18:00 CUDA Examples(1): VectorAdd, Stencil, ReverseArray
DAY 2
Session 3 / 9:00am – 1:00 pm (3:30 h lectures)
L5 9:00-10:45 CUDA Examples (2): Matrices Multiply. Assorted optimizations
10:45-11:15 Coffee break
L6 11:15-13:00 CUDA Examples (3): Dynamic parallelism, Hyper-Q, unified memory
13:00-14:00 Lunch break
Session 4 / 2:00pm – 6:00 pm (3:30 h practical)
H1 14:00-15:45 Hands-on Lab 1
15:45-16:15 Coffee break
H2 16:15-18:00 Hands-on Lab 2
DAY 3
Session 5 / 9:00am – 1:00 pm (3:30 h lectures)
L7 9:00-10:45 Inside Pascal: Multiprocessors, stacked memory, NV-link
10:45-11:15 Coffee break
L8 11:15-13:00 OpenACC and other approaches to GPU computing
13:00-14:00 Lunch break
Session 6 / 2:00pm – 6:00 pm (3:30 h practical)
H3 14:00-15:45 Hands-on Lab 3
15:45-16:15 Coffee break
H4 16:15-18:00 Hands-on Lab 4
DAY 4
Session 7 / 9:00am – 1:00 pm (3:30 h practical)
H5 9:00-10:45 Hands-on Lab 5
10:45-11:15 Coffee break
H6 11:15-13:00 Hands-on Lab 6
13:00-14:00 Lunch break
Session 8 / 2:00pm – 6:00 pm (3:30 h practical)
H7 14:00-15:45 Hands-on Lab 7
15:45-16:15 Coffee break
H8 16:15-18:00 Free Hands-on Lab
End of Course
The target audiences of the course are students who want to develop exciting applications for these processors, as well as those who want to develop programming tools and future implementations for these processors.
Level: INTERMEDIATE: for trainees with some theoretical and practical knowledge; those who finished the beginners course
ADVANCED: for trainees able to work independently and requiring guidance for solving complex problems
Prerequisites: Basics of C programming and concepts of parallel processing will help, but are not critical to follow the lectures.