Leader en solutions logicielles pour scientifiques

[TUTORIEL] Quelle est l'efficacité de votre vectorisation ?

Pour obtenir les meilleures performances sur votre système, il est crucial de déterminer dans quelle mesure votre application est vectorisée. Dans cet article, nous vous montrerons comment identifier les problèmes de vectorisation, vérifierons si vous utilisez bien votre matériel, et optimiserons les performances à l'aide d'Intel Advisor, disponible en version gratuite.

Intel Advisor vous aide à mettre en évidence :

  • Quelles boucles sont vectorisées
  • Les types de données, largeurs de vecteur et ensembles d'instructions.
  • Le nombre d'opérations en virgule flottante et/ou en nombre entier qui sont exécutées
  • Combien d'instructions ont été consacrées au calcul et combien aux opérations mémoire
  • Votre utilisation du registre
  • Comment améliorer votre vectorisation

…Et bien plus encore !

Obtenez les meilleures performances

Pour obtenir des performances optimales, vous avez besoin des informations sur la manière dont vous utilisez toutes les ressources du système. La nouvelle vue récapitulative améliorée d'Intel Advisor (Figure 1) vous donne une indication de la performance de l'application dans son ensemble.

 

Figure 1 – Vue d’ensemble d’Intel Advisor

 

Vous pouvez voir les jeux d'instructions de vectorisation utilisés et plusieurs métriques de performance utiles. Cette vue inclut maintenant une section « Program Characteristics », qui compare votre performance relative à la performance maximale que vous pouvez obtenir. Dans la figure 1, vous remarquerez que l'application utilise plusieurs ensembles d'instructions différents, c’est quelque chose que nous devrions examiner. Notez également que le programme obtient une efficacité de vectorisation de seulement 42%. Mais alors, où avons-nous perdu 58 % de notre efficacité ?

Creusons un peu

Vous pouvez obtenir plus de détails dans l'onglet « Survey & Roofline » (Figure 2). Cette vue donne les détails boucle par boucle. Intel Advisor indique si la boucle est vectorisée et son efficacité. Si le compilateur n'a pas pu vectoriser la boucle, Intel Advisor peut vous dire pourquoi. La colonne « Performance Issue » vous donne des indices sur les raisons de la perte d’efficacité.

 

Figure 2 – Menu « Survey and rooftop »

 

Analyse du jeu d'instructions

L'analyse du jeu d'instructions (Figure 3) permet d’analyser avec précision ce que le compilateur a fait pour vectoriser votre code. Il montre :

  • Je jeu d'instructions de vectorisation utilisé
  • Les largeurs de vecteurs
  • Les type de données en cours d'exploitation

 

La colonne « Traits » indique les manipulations sur la mémoire que le compilateur a dû faire pour adapter votre structure de données dans un vecteur. Ces manipulations de la mémoire peuvent être des indicateurs d’un problème d’efficacité.

 

Figure 3 – Instruction set analysis

 

Dans notre exemple d'application, la boucle principale utilise Intel AVX-512, mais les largeurs vectorielles sont seulement de 128 et 256. Intel Advisor vous avertit si votre application semble être en manque de performances et vous donne des conseils d’ajustement (Figure 4).

 

 

Figure 4 – Message d’avertissement

 

La recompilation pour activer les registres ZMM donne l'analyse du jeu d'instructions de la figure 5. La plupart de nos boucles utilisent maintenant les 512 octets complets des registres vectoriels. Dans notre exemple, l'utilisation des registres ZMM a amélioré les performances. Cependant, ce n'est pas toujours le cas.

 

Figure 5 – Instruction Set Analysis

 

Partie centrale de l'interface Intel Advisor

Les onglets centraux de l'interface graphique d'Intel Advisor contiennent une mine d'informations sur le programme (Figure 6).

 

Figure 6 – Intel Advisor : menu GUI

 

L'onglet « Recommendations » est un excellent moyen d'obtenir des conseils pour améliorer la performance (Figure 7). Par exemple, si une boucle n'a pas été vectorisée, l'onglet peut vous dire pourquoi avec des exemples de code montrant comment résoudre le problème.

 

Figure 7 – Onglet « Recommendations »

 

Analyse de code

La partie « Code Analytics » (Figure 8) affiche des détails sur ce qui se passe dans vos boucles. Vous pouvez y voir les performances sur un niveau élevé, ou obtenir des statistiques pour toutes les opérations ainsi qu'un résumé du mix d'instructions.

 

Figure 8 – Intel Advisor Code Analytics

 

Des statistiques pour toutes les opérations

Vous pouvez obtenir des statistiques pour toutes les opérations, y compris les opérations à virgule flottante (FLOPS), à nombre entier (INTOP) ou mixte (INT+FLOAT) (Figure 9). Cela vous donne une vue détaillée de certains indicateurs de performance clés, montrant combien d'instructions sont exécutées par seconde. Cette vue donne également des métriques sur la façon dont est utilisée la hiérarchie mémoire dans vos boucles.

 

Figure 9 – Des statistiques pour toutes vos opérations

 

Combien d'opérations exécutez-vous ?

Quels types d'instructions contiennent vos boucles ? Sont-elles basées sur le calcul ou la mémoire ? Intel Advisor peut répondre à ces questions et vous donner à la fois le nombre d'instructions statiques et dynamiques ainsi qu’un résumé du mix d'instructions statiques (Figure 10). Vous obtenez aussi le pourcentage de chaque instruction que vous exécutez.

 

Figure 10 – Résumé du mix d’instructions statiques

 

Optimisez la vectorisation

Il est crucial d'optimiser la vectorisation de votre programme. Comprendre comment votre programme est vectorisé à l'aide d'un outil comme Intel Advisor peut vous aider à vous assurer que vous tirez le meilleur parti de votre matériel.

 

Source : Kevin O’Leary, Technical Consulting Engineer, Intel Corporation
Traduction : Maxime de Courville, RITME

Accéder à mon profil

Veuillez rentrer votre email et mot de passe de connexion pour la plateforme MYRITME. S’il s’agit de votre première connexion à MYRITME, veuillez rentrer un email déjà utilisé auprès de Ritme ou bien vous créer un profil en cliquant sur le lien pour créer son profil.

Je souhaite créer mon profil pour bénéficier de tarifs adaptés

Mot de passe oublié ?

Mot de passe oublié ?

Pour recevoir votre mot de passe, veuillez indiquer votre identifiant de connexion (l'adresse e-mail utilisée lors de la création de votre compte).

Creér mon profil

Si vous êtes particulier ou étudiant, Accédez directement à votre catalogue en ligne en créant votre compte avec ce type de profil

* Pays : * Langue :

Cocher votre profil









 
 
 
J’accepte que le groupe Ritme m’adresse ses newsletters, au plus toutes les 2 semaines. Ces communications concernent les actualités et évènements de Ritme (user meetings, rendez-vous thématiques, etc.)
Les e-mails d’informations produit liés aux logiciels et services que vous aurez achetés vous seront envoyés par défaut. Vous pouvez demander à vous rétracter auprès de notre responsable à la protection des données via l’adresse : dataprotection@ritme.com