Question

J'ai fait quelques codage ASM en ligne pour SSE avant et il était pas aussi dur, même pour quelqu'un qui ne sait pas ASM. Mais je note également MS fournir intrinsics emballage beaucoup de ces instructions spéciales.

Y at-il une différence de performance particulière, ou toute autre raison forte pour laquelle on devrait être utilisé au-dessus de l'autre?

Pour répéter à partir du titre, cela est spécifiquement couvre intrinsics exposés par VC ++ 2008 ++ non géré, natif C.

Était-ce utile?

La solution

En général, il est préférable d'utiliser intrinsics - il est plus productif pour le programmeur et un bon compilateur (par exemple Intel ICC) va faire un travail décent de l'allocation de registre, l'ordonnancement des instructions, etc. Le compilateur Microsoft n'est pas aussi bon à cet égard, mais il a probablement fait encore un travail raisonnable -. vous pouvez toujours passer à la CPI plus tard si vous avez besoin pour obtenir de meilleures performances

Autres conseils

Il n'y a pas de montage en ligne dans Visual C ++ pour x64. Intrinsics peuvent être utilisés sur x64 ainsi. Si vous voulez jamais au port votre code à 64 bits, vous devez utiliser intrinsics.

Intrinsics sont identiques à leurs instructions d'assemblage équivalent et vous devez les utiliser si possible - le compilateur sait les traduire directement, il n'y a pas de différence de performance.

Utilisez intrinsics.

assemblage à l'aide entraînera généralement plusieurs jours de travail non-stop, seulement pour découvrir le compilateur bat votre meilleure performance de 5%. (5% si vous êtes vraiment bon,. 30% le plus probable)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top