High-performance computing using Graphics Processing Units (GPUs)
has become increasingly popular due to their remarkable
computational power, improved programmability and relatively cheap
prices. Performing general purpose computing on graphics processor
units (GPGPU) usually leads to performance gains of several orders
of magnitude compared with traditional CPU implementations. This
course aims to provide the students with the knowledge and the
practical means on how to get the most out of this data-parallel
computing environment, as well its limitations and pitfalls.
Practical examples span from solving linear problems to the simulation of molecular dynamics.
Miguel A. Otaduy
Miguel A. Otaduy is an associate professor in the Department of
Computer Science at Universidad Rey Juan Carlos (URJC Madrid). His
main research areas are physically based computer animation and
haptic rendering. He obtained his BS (2000) on electrical
engineering from Mondragon University, and MS (2003) and PhD
(2004) on computer science from the University of North Carolina
at Chapel Hill. From 2005 to 2008 he was a research associate at
ETH Zurich, and then he joined URJC Madrid. He has published over
50 papers in computer graphics and haptics, and has recently
co-chaired the program committees for the ACM SIGGRAPH /
Eurographics Symposium on Computer Animation (2010) and the
Spanish Computer Graphics Conference (2010). He also leads the ERC
Starting Grant Animetrics, on measurement-based modeling of
complex mechanical phenomena.
Marco Fratarcangeli is an assistant professor at the Department
of Computer and Systems Science "A. Ruberti" at Sapienza
University of Rome, Italy, where he also received his MSc (Laurea)
in 2003 in Computer Engineering. He obtained his PhD in 2009 in
the field of physically-based animation of virtual faces. Between
2004 and 2006, he was a research assistant at the Image Coding
Group at the Linköping University, Sweden. From 2008 to 2011,
he worked as technical lead at Taitus Software, focusing on the
development of cross-platform visualization tools for planning and
analysis of Earth Observation missions.
His research interests focus on physically-based simulation of deformable bodies, face and body animation for virtual characters, collision handling and geometric algorithms.
The course can be taken for credits as a course of class B (with an additional project) or as seminars of class C.
Where: Room A4, Via Ariosto 25.
To access the slides and all the related material, send an email to email@example.com
05/06 Tuesday, 14:30 - 17:30 (Fratarcangeli)
CUDA Programming model
Memory spaces and memory access
Texture and shared memory
07/06 Thursday, 14:30 - 17:30 (Otaduy)
Sparse linear systems
Problem description: Linear elasticity.
Conjugate gradient solver. Sparse matrix-vector multiplications
Problem description: Constrained optimization with Lagrange multipliers.
Sparse matrix-matrix multiplication.
CUDA and libraries.
08/06 Friday, 14:30 - 17:30 (Otaduy)
Neighbor queries .
Problem description: Electrostatic forces in molecular dynamics.
Cell list approach: Memory-access-bound vs. compute-bound.
Neighbor list approach.
GPU programming model: branching, occupancy, shared memory...
Students interested in class B credits shall develop a personal
project using CUDA or GPGPU relevant technology, like OpenCL,
DirectCompute or GLSL shaders.
The topic of the project shall be approved by the instructors and shall regard the implementation of an algorithm or data structure of interest for your research, and that is interesting for the others.
The projects will be presented in a seminar of 30-45 minutes in
front of the other students.
The talk will address the topic theory, how the parallelization has been implemented and shall provide some benchmark.