NVIDIA GPU Code Optimization tutorial

Date and Time: 
2013 Thursday, April 4, and Friday, April 5
Tony Scudiero and Carl Ponder

Thursday: Effective GPU Computing With CUDA

Speaker: Tony Scudiero

CUDA is a parallel computing platform from NVIDIA which enables users to harness processing power of GPUs for general purpose computing. CUDA is an API and small set of extensions to standard C/C++ which has been used to boost performance in hundreds of high performance scientific applications. This full-day tutorial walks through how to get the most out of your GPU by understanding how the GPU carries out computational tasks. This understanding is helpful even when using directives approaches such as OpenACC (covered the next day).

Morning Lectures:

  • Understanding the CUDA Programming Model and GPU Architectures
  • CUDA Optimization Fundamentals

Afternoon Lab Exercises:

  • Hands On: Matrix Transpose by Example
  • Hands On: Profiler Driven Optimization with NVVP
  • You are encouraged to bring your own codes to test; presenters will be available to direct you and answer questions.


Accelerating Applications with OpenACC

Speaker: Carl Ponder

OpenACC is an open-standard extension to the C/C++ and Fortran languages for managing GPU calculations. It is supported by compilers provided by PGI, Cray and CAPS. Simple to use, yet a powerful way to map program loops to the GPU architecture, it is the recommended approach to porting existing codes to run on a GPU. It can be used in conjunction with MPI- and Thread- based parallelism to utilize a modern cluster architecture.

Morning Lectures:

  • OpenACC programming constructs
  • Architecting programs for better OpenACC performance
  • Profiling & Tuning OpenACC programs

Afternoon Lab Exercises:

  • Accelerating a Jacobi/LaPlace solver with OpenACC using the PGI compiler
  • Profiling and analyzing OpenACC applications
  • You are encouraged to bring your own codes to test; presenters will be available to direct you and answer questions.


BUFFET LUNCH and COFFEE BREAKs are provided on both days 



Speaker Description: 

Tony Scudiero is a Developer Technology engineer at NVIDIA working primarily with GPU acceleration of monte carlo particle transport codes. Prior to work at NVIDIA, Tony worked at Cray where he helped bring GPU computing to top-end supercomputers. An early proponent of GPU computing, he started non-graphical computing on GPUs in the days before CUDA. He holds Bachelors’ degrees in Computer Science and Mathematics, and a Masters in Computer Science from the University of Minnesota.

Carl Ponder earned his Bachelors degree in Information & Compute Science at UC Irvine and his Ph.D. in Computer Science at UC Berkeley. He has spent his career in various aspects of application and systems performance, including simulation, benchmarking, application tuning, and statistical analysis. He has worked at LLNL, Motorola, IBM and now NVIDIA. He currently works in Developer Technology on such diverse applications as weather modelling, earthquake modelling, molecular dynamics and quantum chemistry.

Event Category: