PATC Course: Introduction to CUDA Programming

This course is delivered by the CUDA Center of Excellence (CCOE) awarded by NVIDIA to the Barcelona Supercomputing Center (BSC) in association with Universitat Politecnica de Catalunya (UPC).


Monday, 2 June, 2014 - 09:00 to Friday, 6 June, 2014 - 18:00

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. 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.

Learning Outcomes:
The students who finish this course will learn how to program massively parallel processors and achieve high performance, functionality, maintainability, and scalability across future generations.
The students who finish this course will acquire technical knowledge required to achieve the above goals by learning principles and patterns of parallel algorithms, processor architecture features and constraints, and programming API, tools and techniques.


Day 1 – 2nd June, 2014
09:00h   The GPU hardware: Many-core Nvidia developments
11:15h   CUDA Programming: Threads, blocks, kernels, grids
14:00h   CUDA Tools: Compiling, debugging, profiling, occupancy calculator
16:15h   CUDA Examples: VectorAdd, ReverseArray, Matrix Multiply
18.00h   Adjourn

Day 2 – 3th June, 2014
09:00h    Inside Kepler
11:15h    Optimizing GPU codes on Kepler using CUDA 5.0
14:00h    Lab: Getting Started Guide (PATC)
14:30h    Lab: Vector Addition
16:15h    Lab: Simple Matrix-Matrix Multiplication
18.00h    Adjourn

Day 3 – 4th June, 2014
09:00h    Future Nvidia designs: Maxwell, Pascal, Stacked DRAM
11:15h    Programming with CUDA 6.0 and unified memory
14:00h    Lab: Tiled 7-point 3D Stencil
16:15h    Lab: Tiled Matrix-Matrix Multiplication
18.00h    Adjourn

Day 4 – 5th June, 2014
09:00h    Atomics and Histograming14:30h    Lab: Vector Addition
11:15h    Reductions
14:00h    Lab: Histogramming
16:15h    Lab: Vector Reduction
18.00h    Adjourn

Day 5 – 6th June, 2014
09:00h    Prefix Scan
11:15h    CUDA Streams
14:00h    Lab: Prefix scan
18.00h    Adjourn

Target group: 

Level: BEGINNERS: for trainees from different background or very little knowledge (All courses are designed for specialists with at least finished 1st cycle degree)


The course will take place in Barcelona Supercomputing Centre, within the UPC Campus Nord premises,

Room VS219, Vertex Building (green on the map)
S indicates that the room is 2 floors below the entrance level.

How to arrive?: 

From the Airport

Barcelona airport is at 12 Km from the city. More information about Barcelona’s airport: You can arrive with different transport methods from the airport to BSC:

By taxi
In T1, you will find a taxi stand in the arrivals zone (P0) and in the Barcelona-Madrid air corridor; in T2, opposite terminals T2A, T2B and T2C. If they are available, they will show a green light with the text LIBRE or LLIURE (it means “available”). You can check fees at

By car
If you rent a car from the airport (T1), please leave “El Prat del Llobregat” and take C-32B. Continue along this route and head towards Ronda de Dalt / Lleida / Girona. Close to Barcelona, take route C-32 passing close to Cornellà del Llobregat and L’Hospitalet. Take B-20 and take Exit 10 called “Carretera d'Esplugues”. Take the street called “carrer del Gran Capità” and turn left towards Jordi Girona street.

By train
There is a Renfe suburban train. The airport station is situated opposite of terminal T2, and is connected to this terminal via an airbridge. There is also a Bus transit service between the Rail station and T1. From the airport to Barcelona Sants there is approximately 20 minutes journey. From this station, take the L3 (green line) in direction to “Zona Universitaria” and get off on the “Palau Reial” stop. You will have a 5-minutes walking distance to arrive to BSC. (

By Bus (Aerobus)

Airport stops: Bus stops at Terminal T1 and T2 (A, B, C) 

Downtown stops: This line ends at Plaça Catalunya (city center). Once there, you may take L3 of the underground to "Palau Reial" or "Zona Universitaria" stations.

From the City Centre

Campus Nord of Universitat Politècnica de Catalunya is located at the North-West corner of the city, at the end of the Green Line (L3) of the underground. In order to reach the Campus by public transport, it is advisable to use the underground. There are two stations near to the Campus, “Zona Universitària” and “Palau Reial”, both on L3.


There is no registration fee. The attendees would need to cover the expenses for travel, accommodation and meals. Click to go to suggested accommodation


Basic knowledge of C/C++ programming
Attendees will need to bring their own laptops with a SSH client.

Contact Us: 

CONTACT US for further details about MSc, PhD, Post Doc studies, exchanges and collaboration in education and training with BSC.

For further details about Postgraduate Studies in UPC - Barcelona School of Informatics (FiB), visit the website.


The PATC@BSc training events are funded by BSC and PRACE 3IP project.

If you want to learn more about PRACE Project, visit the website.