MS-HPC-AI-GPU icon indicating copy to clipboard operation
MS-HPC-AI-GPU copied to clipboard

resources pour le cours d'introduction à la programmation des GPUs du mastère spécialisé HPC-AI

trafficstars

MS-HPC-AI-GPU

Resources pour le cours d'introduction à la programmation des GPUs du mastère spécialisé HPC-AI

biblio

Scientific Programming and Computer Architecture

CUDA / GPU training

CUDA / performance analysis

  • https://devblogs.nvidia.com/using-nsight-compute-to-inspect-your-kernels/
  • https://www.olcf.ornl.gov/wp-content/uploads/2019/08/NVIDIA-Profilers.pdf
  • http://on-demand.gputechconf.com/gtc/2017/presentation/s7445-jakob-progsch-what-the-profiler-is-telling-you.pdf
  • monitoring performance : https://github.com/NERSC/timemory
  • roofline model

Other CUDA resources

CUDA / python

Machine learning and Deep Learning

Physics Informed Neural Networks (PINN)

Graphics / GPU

  • https://raytracing.github.io/
  • https://github.com/RayTracing/raytracing.github.io
  • https://github.com/rogerallen/raytracinginoneweekendincuda : code très clean, super

OpenMP

  • https://www.openmp.org/wp-content/uploads/openmp-examples-4.5.0.pdf
  • https://github.com/OpenMP/Examples/tree/v4.5.0/sources
  • https://ukopenmpusers.co.uk/wp-content/uploads/uk-openmp-users-2018-OpenMP45Tutorial_new.pdf
  • https://www.nas.nasa.gov/hecc/assets/pdf/training/OpenMP4.5_3-20-19.pdf
  • http://www.admin-magazine.com/HPC/Articles/OpenMP-Coding-Habits-and-GPUs?utm_source=AMEP

OpenMP target

How to build clang++ with openmp target (off-loading) support ?

  • https://devmesh.intel.com/blog/724749/how-to-build-and-run-your-modern-parallel-code-in-c-17-and-openmp-4-5-library-on-nvidia-gpus
  • https://hpc-wiki.info/hpc/Building_LLVM/Clang_with_OpenMP_Offloading_to_NVIDIA_GPUs

OpenACC

Which compiler with OpenAcc support ?

  • Nvidia/PGI compiler is the oldest and probably more mature OpenACC compiler.
  • GNU/gcc provided by Spack is the easiest way to get started for OpenMP/OpenACC offload with the GNU compiler.

C++17 and parallel STL for CPU/GPU

Which compiler ?

stdpar for Fortran

  • https://developer.nvidia.com/blog/accelerating-fortran-do-concurrent-with-gpus-and-the-nvidia-hpc-sdk/
  • example code euler2d_cudaFortran : solving Euler's equations in Fortran with stdpar (do concurrent loops)

SYCL

Books on GPU programming / recommended reading

C++ resources

high-level C++ libraries for programming GPUs

Alternate programming models for programming modern computing architectures in a performance portable way:

  • introduction to performance portability
  • https://github.com/arrayfire/arrayfire
  • https://docs.nvidia.com/cuda/thrust/index.html
  • https://github.com/kokkos/kokkos
  • https://github.com/LLNL/RAJA et https://github.com/LLNL/RAJA-tutorials
  • https://github.com/triSYCL/triSYCL
  • https://github.com/codeplaysoftware/computecpp-sdk

Performance portability

Kokkos/C++ library

CMake

Git

Misc

Shell and command line skills

  • Learn/improve your skill on Linux’s command line/Bash e.g. http://swcarpentry.github.io/shell-novice/
  • http://www.tldp.org/LDP/abs/html/
  • http://www.epons.org/commandes-base-linux.php
  • The art of command line

Blogs or newsletters on HPC

MOOC

Projet

  • Portage d'un code C++ de simulation des équations de Navier-Stokes par la méthode de Boltzmann sur réseau.