Implémentation efficace du logarithme vectoriel dans avx2
L'objectif est d'implémenter une version vectorisée efficace de la fonction log2 pour 4 numéros de double précis (__m256d a) mais disponible sur d'autres compilateurs.
Approche d'implémentation
La stratégie commune pour Log2 (a) implique de calculer la somme de l'exposant et le log2 de la mantissa, qui a une plage limitée de 1,0 à 2.0. Cela nous permet d'utiliser une approximation polynomiale pour le log2 de la mantissa.
Le matériel moderne a de longs latences d'instruction. Pour optimiser les performances, nous pouvons utiliser des schémas d'évaluation polynomiale plus rapides, tels que le schéma d'Estrin, qui permet l'exécution parallèle des termes polynomiaux.
Exploiter FMA:L'instruction FUSE-MULTIPLY-ADD (FMA) est très efficace. En utilisant FMA dans notre implémentation, nous pouvons accélérer le processus d'évaluation polynomiale.
précision et gamme
La précision et la plage de l'implémentation dépendent de l'approximation polynomiale spécifique utilisée. Il est possible d'atteindre une précision très élevée sur une gamme spécifique de valeurs de mantissa.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3