Question

Quelle méthode dois-je préférer rédiger des instructions SIMD?

MM* Les méthodes forment * mmintrin.h semblent être plus portables entre les compilateurs.

Mais GCC Extensions vectorielles Semble produire du code MUSH plus simple et prendre en charge plus d'architectures.

Alors, quelle méthode est la meilleure?

Était-ce utile?

La solution

Si vous utilisez les extensions vectorielles GCC, vous ne pourrez utiliser qu'un sous-ensemble limité de fonctionnalités SSE, car il existe de nombreuses intrinsèques SSE qui ne s'intègrent pas avec un modèle de vecteur générique tel que GCC. Si vous voulez seulement faire des choses assez basiques, par exemple, l'arithmétique du point flottant sur les vecteurs, vous pourriez vous en tirer, mais si vous êtes intéressé à exploiter SIMD pour un avantage de performance maximum, vous devrez aller avec l'intrinssique natif.

Autres conseils

L'intrinssique disponible à partir des fichiers * mmintrin.h est disponible uniquement sur les machines SSE, mais ils sont disponibles sur différents compilateurs. Les extensions vectorielles GCC sont plus limitées mais mises en œuvre sur une gamme plus large de plates-formes, et évidemment spécifiques au CCC.

Comme pour tout, il n'y a pas de «meilleure» réponse; Vous devrez en choisir un qui correspond à vos besoins.

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