Part 5 : Une meilleure initialisation



Dans cette partie, nous allons (encore) écrire un produit scalaire en C++20 et améliorer la version de la partie partSimpleDotProductBestInitBestInit avec la méthode de la partie 3. Pour cela nous utiliserons la fonction std::generate pour initialiser nos tableaux sans utiliser de temporaire.

Nous allons donc utiliser un std::generate pour initialiser nos données sans passer par ce std::vector d'indices. Les autres fichiers ne changerons pas, mais je les remet pour que tous les exemples puissent être lues dans n'importe quel ordre.

Comme nvc++ est fourni avec le HPC_SDK (installé dans /opt) et que la version de ce dernier change en fonction des installations. Nous allons créer une variable d'environnement, NVCPP, pour nous y retrouver, en ce qui me concerne :

1
export NVCPP="/opt/nvidia/hpc_sdk/Linux_x86_64/22.11/compilers/bin/nvc++"


Note : il faut, bien entendu, créer cette variable avec la version du HPC_SDK installée sur votre système. Le plus simple est d'ajouter cette commande dans votre ~/.bashrc.


La correction est disponible ici.