2017-02-20 4 views
1

Je lis le document this sur la façon de compiler le code C/C++ en utilisant le compilateur Intel C++ et le support AVX512 sur Intel Knights Landing.Confusion à propos de la compilation avec AVX512

Cependant, je suis un peu confus au sujet de cette partie:

-xMIC-AVX512: utiliser cette option pour générer AVX-512f, AVX-512CD, AVX-512ER et AVX-512FP. -xCORE-AVX512: utilisez cette option pour générer AVX-512F, AVX-512CD, AVX-512BW, AVX-512DQ et AVX-512VL. Par exemple, pour générer des instructions Intel AVX-512 pour le processeur Intel Xeon Phi x200, vous devez utiliser l'option -xMIC-AVX512. Pour exemple, sur un système Linux

$ icc de application.c -xMIC-AVX512 Cette option du compilateur est utile lorsque vous voulez construire un énorme binaire pour le processeur Intel Xeon Phi X200. Au lieu de construire sur le coprocesseur où il faudra plus temps, construire sur une machine à base de processeur Intel Xeon

Mon Xeon Phi KNL ne dispose pas d'un coprocesseur (Pas besoin de ssh micX ou compiler avec le drapeau -mmic). Cependant, je ne comprends pas s'il est préférable d'utiliser le -xMIC ou -xCORE?

En second lieu sur les -ax au lieu de -x:

Cette option du compilateur est utile lorsque vous essayez de construire un binaire qui peut fonctionner sur plusieurs plates-formes.

Ainsi -ax est utilisé pour le support multi-plateforme, mais est-il une différence de performance comapred à -x?

+0

'-xCORE' ne fonctionnera pas sur KNL, car il ne prend pas en charge AVX-512BW, AVX-512DQ et AVX-512VL. –

Répondre

1

Pour la première question, veuillez utiliser -xMIC-AVX512 si vous voulez compiler pour le processeur Intel Xeon Phi x200 (également connu sous le nom de processeur KNL). Notez que la phrase dans le document que vous avez mentionné a été mal orthographié, il devrait lire "Cette option du compilateur est utile lorsque vous voulez construire un énorme binaire pour le processeur Intel Xeon Phi x200, au lieu de le construire sur le processeur Intel Xeon Phi x200 il faudra plus de temps, construisez-le sur une machine basée sur un processeur Intel Xeon. " Pour la deuxième question, il ne devrait pas y avoir de différence de performance si vous exécutez les binaires sur un processeur Intel Xeon Phi x200. Cependant, la taille du binaire conforme à -ax devrait être plus grande que celle compilée avec l'option -x.

+0

Je suis désolé mais je suis un peu confus, qu'est-ce qu'un "Intel Xeon processeur à base de machine"? Comme je vous l'ai dit, dans mon cas, je n'ai pas de co-processeur qui doit être ssh-ed et où exécuter le code, je ssh seulement la machine "principale", compiler et exécuter le code dessus. – justHelloWorld

+0

@justHelloWorld, «machine à processeur Intel Xeon» signifie une machine non KNL avec le compilateur Intel. Vous pouvez construire votre exécutable sur une autre machine, puis copier le binaire sur la machine KNL. Le fait est que les noyaux d'une machine KNL sont de faible puissance et basse fréquence (OTOH vous en avez beaucoup), donc il peut être plus rapide de construire sur une autre machine et de copier le binaire. –