NVIDIA is the world’s leading manufacturer of high performance GPUs (graphics processors) which are now used for a wide variety of applications, in particular machine learning using deep neural networks.
This is a 5-day hands-on course for students and academics who want to learn how to develop applications to run on NVIDIA GPUs using NVIDIA’s CUDA programming environment which is an extension to C/C++. All that will be assumed is some proficiency with C and basic C++ programming (e.g. templates). No prior experience with parallel
computing will be assumed.
The course consists of approximately 3 hours of lectures and 4 hours of practicals each day, with the practicals being carried out on Yachay EP’s IBM supercomputer which has NVIDIA K80 GPUs.
The aim is that by the end of the course you will be able to write relatively simple programs and will be confident and able to continue learning through studying the examples provided by NVIDIA as part of their SDK (software development kit).
The lecturer, Prof. Mike Giles, is a Professor in Scientific Computing at the University of Oxford. He has been an expert in GPU computing for the past 10 years, working in close collaboration with NVIDIA. The course is based on one which he teaches each year in Oxford to 60-70 students, postdocs and industry researchers.
Mike Giles, Ph.D.
During the period 1985–2007, my research was primarily on the development and analysis of computational fluid dynamics methods for the simulation and design of gas turbine engines. Particular highlights of this work were the development of a novel 2D airfoil design code (with a colleague Mark Drela) which was widely used in industry, the development of non- reflecting boundary conditions for unsteady flow calculations, and the development of ad joint methods for both design optimization and error analysis.
From around 2004, I started to switched fields to computational finance, introducing ad joint methods to that community for the efficient Monte Carlo-based calculation of the sensitivity of option prices to various input parameters. This led me to work on Monte Carlo methods, and in 2006, building on the ideas of multigrid in the numerical solution of PDEs, I introduced the Multilevel Monte Carlo (MLMC) method which combines simulations with different levels of accuracy to greatly reduce the overall cost of achieving a certain target RMS error. This paper has had a big impact in the field of Monte Carlo methods and MLMC has now become a standard approach. In the past 10 years I have developed and analyzed MLMC methods in a variety of application areas, in collaboration with many researchers worldwide.