2016-11-15 3 views
1

Je recherchais récemment des implémentations de fonctions exponentielles vectorisées. Il est en fait très simple de trouver du code pour la précision simple, mais très difficile de trouver du code pour la double précision. Je n'ai pas été en mesure de trouver une implémentation de l'exponentiation AVX double précision. Le code de SSE peut presque être adapté mais l'astuce généralement utilisée pour multiplier par 2^n ne semble pas être adaptable à AVX.Où puis-je trouver une fonction exponentielle double précision AVX?

Est-ce que quelqu'un sait d'une telle mise en œuvre?

+0

Il y a toujours '_mm256_exp_pd' dans la bibliothèque SVML d'Intel. Aussi je crois que la bibliothèque de classes de vecteur de Agner Fog soutient 'exp' pour vecteurs double précision: http://www.agner.org/optimize/vectorclass.pdf –

+0

Une autre bibliothèque mathématique avec AVX2 et support double précision est [!] Yeppp (https: //www.yeppp.info/index.html). – wim

+1

La bibliothèque de vecteurs d'Agner Fog a très bien réussi! Si vous postez comme réponse, je vais l'accepter @PaulR –

Répondre

3

Si vous utilisez le compilateur ICC d'Intel alors il est _mm256_exp_pd dans la bibliothèque SVML.

Alternativement, le vector class library d'Agner Fog prend en charge exp pour les vecteurs de précision double.

+1

La bibliothèque de vecteurs d'Agner Fog est exactement ce que je cherchais et le code est assez complet. –