Compilateurs

Quel type d'instructions la vectorisation automatique du compilateur utilise-t-elle ?

  1. ADes instructions déclenchant des interruptions
  2. BDes instructions SIMD traitant plusieurs données simultanément
  3. CDes instructions effaçant d'un coup tout le contenu du cache
Afficher la réponse et l'explication

Réponse : B. Des instructions SIMD traitant plusieurs données simultanément

La vectorisation automatique repère les boucles effectuant le même calcul sur chaque élément d'un tableau et les remplace par des instructions SIMD traitant plusieurs éléments à la fois. Par exemple, un registre SIMD de 128 bits additionne simultanément quatre nombres de 32 bits ; dans le meilleur cas, le nombre d'opérations de la boucle est divisé par quatre. Elle suppose l'absence de dépendance entre itérations et des données contiguës, et elle est parfois abandonnée en cas de recouvrement possible des pointeurs. Elle n'a rien à voir avec les instructions d'interruption ou de gestion du cache.

S'entraîner sur ce thème Retour au thème

Autres questions sur Compilateurs

  1. Quelle condition fondamentale les optimisations du compilateur doivent-elles respecter ?
  2. Quelle définition de la sélection d'instructions, l'une des étapes de la génération de code, est correcte ?
  3. Quelle définition du compilateur croisé est correcte ?
  4. Lorsqu'on examine au débogueur un programme compilé avec optimisation, certaines variables apparaissent parfois comme « non affichables ». Quelle en est la principale raison ?
  5. Après application poussée de la propagation de constantes, du repliement de constantes et de la suppression de code mort à la fonction ci-dessus, quelle valeur renvoie la fonction et quel code subsiste ?

Comparatifs sur ce thème