Chapter 7.2 : L'utilisation de std::zip



Il faut reconnaitre que le gros tableau d'indices de l'implémentation précédente est un peu ridicule. Cela n'est pas sans rappeler l'utilisation de l'adresse d'un Thread GPU pour déterminer les données qu'il doit traiter mais il dans le cas où l'on veut exprimer le maximum de parallélisme avoir un tableau d'indice aussi gros que le tableau de données que l'on traite est très embétant. Globalement, diviser la mémoire utile du GPU par deux juste pour stoker des indices n'est pas souhaitable et une méthode plus classe serait la bienvenue.

Sauf que, le seul compilateur au monde qui permet d'utiliser std::views::zip au moment où j'écris ces lignes est G++ 13. Il n'est sorti que très récemment et les ingénieurs de nvc++ n'ont pas encore eut le temps d'abapter le HPC_SDK 23.5 à ces subtilités.

Tout sera certainement fonctionnel pour la version 23.9, mais en attendant exprimez le plus de parallélisme que vous pourez.