« Fonctionnement d'un ordinateur/Les architectures à parallélisme de données » : différence entre les versions

Contenu supprimé Contenu ajouté
que j'aie / qu'il/elle/on ait
→‎Vector Length Register : Correction faute de frappe
Balises : Modification par mobile Modification par le web mobile
Ligne 34 :
[[File:Vector length register.png|centre|Vector length register.]]
 
Ce registre facilite l'usage d'une optimisation appelée le '''déroulage de boucle'''. Il s'agit d'une optimisation qui vise à réduire le nombre d'itérations d'une boucle en dupliquant son corps en plusieurs exemplaires. Elle est utilisée pour réduire le cout d’exécution des branchements et des autres opérations de comparaison de la boucle. Sur les processeurs SIMD, elle petpeut s'utiliser afin de réduire le temps d’exécution de boucles qui agissent sur des tableaux. LD'ordinaire, les programmeurs utilisent une boucle pour répéter un traitement sur tous les éléments d'un tableau, la boucle traitant un élément à la fois. Nos instructions vectorielles permettent de traiter plusieurs éléments à la fois, ce qui fait que plusieurs tours de boucles peuvent être rassemblés en une seule instruction SIMD. Mais cela ne fonctionne que si les éléments du tableau sont traités indépendamment, ou d'une façon assez simple, auquel cas la boucle peut être vectorisée. Pour cela, le compilateur va répliquer le corps de la boucle (les instructions à répéter) en plusieurs exemplaires dans cette boucle.
 
Exemple, prenons cette boucle, écrite dans le langage C :