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.