Articles of sse

Comment détecter la disponibilité de SSE / SSE2 / AVX / AVX2 / AVX-512 / AVX-128-FMA / KCVI au moment de la compilation?

J’essaie d’optimiser certains calculs masortingciels et je me demandais s’il était possible de détecter à la compilation si SSE / SSE2 / AVX / AVX2 / AVX-512 / AVX-128-FMA / KCVI [1] est activé par le compilateur? Idéalement pour GCC et Clang, mais je ne peux gérer qu’avec un seul d’entre eux. Je ne suis […]

Démarrer avec SSE

Je veux en savoir plus sur l’utilisation du SSE . Quels sont les moyens d’apprendre, en plus de la lecture évidente des manuels du développeur du logiciel Intel® 64 et IA-32 Architectures ? Je suis principalement intéressé par les fonctions intégrées du GCC X86 .

L’utilisation d’AVX insortingnsèques au lieu de SSE n’améliore pas la vitesse – pourquoi?

J’utilise les composants insortingnsèques SSE d’Intel depuis un certain temps avec de bons gains de performances. Par conséquent, je m’attendais à ce que les insortingnsèques AVX accélèrent encore mes programmes. Ce n’était malheureusement pas le cas jusqu’à présent. Je fais probablement une erreur stupide, alors je serais très reconnaissant si quelqu’un pouvait m’aider. J’utilise Ubuntu […]

Utilisation des instructions du processeur AVX: performances médiocres sans “/ arch: AVX”

Mon code C ++ utilise SSE et je souhaite maintenant l’améliorer pour prendre en charge AVX lorsqu’il est disponible. Donc, je détecte quand AVX est disponible et appelle une fonction qui utilise les commandes AVX. J’utilise Win7 SP1 + VS2010 SP1 et un processeur avec AVX. Pour utiliser AVX, il est nécessaire d’inclure ceci: #include […]

Comment les flottants dénormalisés sont-ils gérés en C #?

Lisez simplement cet article fascinant sur les ralentissements 20x-200x que vous pouvez obtenir sur les processeurs Intel avec des flotteurs dénormalisés (nombres à virgule flottante très proches de 0). Il existe une option avec SSE pour arrondir ces valeurs à 0, en restaurant les performances lorsque ces valeurs en virgule flottante sont rencontrées. Comment les […]

Référence des fonctions insortingnsèques SSE

Est-ce que quelqu’un connaît une référence listant le fonctionnement des fonctions insortingnsèques SSE pour gcc, c’est-à-dire les fonctions dans les fichiers d’en-tête ? Merci.

Comment vérifier si une CPU supporte le jeu d’instructions SSE3?

Le code suivant est-il valide pour vérifier si une CPU prend en charge le jeu d’instructions SSE3? L’utilisation de la fonction IsProcessorFeaturePresent() fonctionne apparemment pas sous Windows XP (voir http://msdn.microsoft.com/en-us/library/ms724482(v=vs.85).aspx ). bool CheckSSE3() { int CPUInfo[4] = {-1}; //– Get number of valid info ids __cpuid(CPUInfo, 0); int nIds = CPUInfo[0]; //– Get info for […]

Quelle est la signification des access mémoire «non temporels» dans x86

C’est une question un peu faible. Dans l’assemblage x86, il existe deux instructions SSE: MOVDQA xmmi, m128 et MOVNTDQA xmmi, m128 Le manuel du développeur de logiciel IA-32 dit que le NT dans MOVNTDQA est synonyme de non-temporel , et que sinon, il est identique à MOVDQA. Ma question est la suivante: que signifie non-temporel […]

Pourquoi SSE scalaire sqrt (x) est-il plus lent que rsqrt (x) * x?

J’ai étudié quelques-unes de nos mathématiques de base sur un processeur Intel Core Duo et, tout en examinant différentes approches de la racine carrée, j’ai remarqué quelque chose de bizarre: en utilisant les opérations scalaires SSE, il est plus rapide pour obtenir le sqrt, que d’utiliser l’opcode natif sqrt! Je le teste avec une boucle […]

Fichiers d’en-tête pour insortingnsèques SIMD x86

Quels fichiers d’en-tête fournissent les éléments insortingnsèques pour les différentes extensions de jeu d’instructions SIMD x86 (MMX, SSE, AVX, …)? Il semble impossible de trouver une telle liste en ligne. Corrige moi si je me trompe.