Introduction au NVidia HPC_SDK

Pierre Aubert




Objectif du cours



Ce cours à pour but de montrer comment utiliser le NVidia HPC_SDK pour :

  • Développer des programmes C++17/C++20/C++23 qui s'exécutent sur CPU et GPU


Prérequis

Compilateur

Ce cours utilisera le compilateur nvc++ fourni par le HPC_SDK. Le compilateur g++ 11 sera utiliser en complément, ou un autre compilateur compatible C++17/C++20/C++23.

Outils de compilation

Nous utiliserons CMake et Make pour compiler nos programmes et effectuer nos tests de performance.

Outil de gestion des versions

Nous utiliserons Git pour gérer les versions des programmes.

Spécification Hardware

Le HPC_SDK est fourni par NVidia. Par conséquent, il n'y a pas de garanti qu'il fonctionne avec des GPU autres que NVidia. Il faudra aussi que le GPU que vous avez à disposition soit assez récent (Compute Capabilities 6 ou plus). Si ce n'est pas le cas, vous pourrez tout de même suivre ce cours en utilisant la Plateforme MUST qui est le centre de calcul du LAPP

Suivre avec un conteneur

Ce cours peut-être suivit avec une image docker via apptainer sur votre laptop ou sur un serveur distant ou via docker :
  • "Light" image 5.68 GB : docker://gitlab-registry.in2p3.fr/cta-lapp/cours/introduction_hpcsdk/introduction_to_hpcsdk_2403_ubuntu_light:latest
  • Code server 5.89 GB : docker://gitlab-registry.in2p3.fr/cta-lapp/cours/introduction_hpcsdk/introduction_to_hpcsdk_2403_ubuntu_micromamba_code_server:latest
  • Jupyter-hub 5.99 GB : docker://gitlab-registry.in2p3.fr/cta-lapp/cours/introduction_hpcsdk/introduction_to_hpcsdk_2403_ubuntu_micromamba_vscode:latest


Usages are explained in the lecture demo.

Correction du projet complet

La correction des projets complets :