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 LAPPSuivre 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 :- SimpleHadamardProduct.tar.gz.
- SimpleHadamardProductBetterInit.tar.gz.
- SimpleHadamardProductBestInit.tar.gz.
- SimpleDotProduct.tar.gz.
- SimpleDotProductBestInit.tar.gz.
- SimpleDotProductRandom.tar.gz.
- CURANDReduce.tar.gz.
- CURANDReduceVector.tar.gz.
- CUFFT_HDF5_CUDA.tar.gz.
- CUFFT_HDF5_Thrust.tar.gz.
- CUFFT_HDF5_Unified.tar.gz.
- FullCalibrationBench.tar.gz.