Introduction to CUDA Programming @ BSC

CET
Vertex Building, Room VS208 (Barcelona BSC Campus Nord)

Vertex Building, Room VS208

Barcelona BSC Campus Nord

Description

The registration to this course is now open.

All PATC Courses at BSC do not charge fees.

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.

Registration
Registration Form
Support
The agenda of this meeting is empty
Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×