This course is an introduction to NVIDIA's CUDA technology and its usage in porting Quantum ESPRESSO (QE) to GPGPU architectures. CUDA, the Compute Unified Device Architecture, is NVIDIA's parallel computing framework that enables programmers to carry out general-purpose computation on graphics processing units (GPUs). Quantum ESPRESSO is an integrated suite of computer codes for electronic-structure calculations and materials modeling at the nanoscale. Using CUDA, ICHEC has ported the PWscf code in QE to run on hybrid CPU-GPU systems. During the course, students will be introduced to the fundamentals of GPGPU and CUDA; then the ported features of QE are presented along with means to configure the code and datasets for optimal performance.
Topics covered:
- Introduction to GPGPU technology
- CUDA basics
- Overview of Quantum ESPRESSO (QE)
- Porting of QE code (PWscf) to hybrid CPU-GPU platforms
- Code installation / compilation
- CUDA-ported computational kernels
- Overlapping usage of CUDA and CPU math libraries
- Tuning and performance considerations
Objectives:
- GPGPU technology and CUDA programming model
- Real-world example of application porting to CPU-GPU platforms
- Practical experience of compilation, configuration and effective use of the CUDA-enabled QE code.
Prerequisites:
- Knowledge of Linux
- Knowledge of C or Fortran is an advantage
- Knowledge of Quantum Espresso is an advantage
Target Audience:
- Quantum Espresso users who wish to achieve performance gains on GPGPU architectures
- Programmers interested in application porting to hybrid CPU-GPU platforms