Il faut vraiment oublier le SIMD, C'est pourrit, RISC-V à définit dès depuis des années une extension vectorielle (actuellement nommée RVV), l'avantage, par rapport au SIMD:
* Sur un SIMD, tu as des instructions qui chargent les données, les traite et les sauvegarde, puis il faut indiquer les données suivantes et recommencer via une boucle.
* Sur un processeur vectoriel, tu donne une séquence de données, la séquence de commandes à y appliquer, et ça se pipeline tout seul pour gagner en latence. Plus la séquence de données est importante, plus on gagne en performances dans le deuxième cas par rapport au premier.
Le kernel Linux le gère déjà et l'utilise notamment pour la crypto (on imagine l'intérêt pour le déchiffrement d'un gros fichier). GCC depuis la 14 commence à auto-vectoriser en RVV,
Il y a aussi un outil pour du SIMD SSE x86_64 vers du RVV RV64 plus ou moins automatiquement (comme premier pas, ça peut aider à automatiser), probablement inspiré d'autres pour convertir automatiquement de SIMD x86 vers du SIMD PowerPC ou ARM.
[^] # Re: Unification de l'ISA mais fragmentation des microarchitectures
Posté par tao popus . En réponse à la dépêche Linus Torvalds: comment éviter que RISC-V ne reproduise les erreurs du passé?. Évalué à 2.
Il faut vraiment oublier le SIMD, C'est pourrit, RISC-V à définit dès depuis des années une extension vectorielle (actuellement nommée RVV), l'avantage, par rapport au SIMD:
* Sur un SIMD, tu as des instructions qui chargent les données, les traite et les sauvegarde, puis il faut indiquer les données suivantes et recommencer via une boucle.
* Sur un processeur vectoriel, tu donne une séquence de données, la séquence de commandes à y appliquer, et ça se pipeline tout seul pour gagner en latence. Plus la séquence de données est importante, plus on gagne en performances dans le deuxième cas par rapport au premier.
Le kernel Linux le gère déjà et l'utilise notamment pour la crypto (on imagine l'intérêt pour le déchiffrement d'un gros fichier). GCC depuis la 14 commence à auto-vectoriser en RVV,
Il y a aussi un outil pour du SIMD SSE x86_64 vers du RVV RV64 plus ou moins automatiquement (comme premier pas, ça peut aider à automatiser), probablement inspiré d'autres pour convertir automatiquement de SIMD x86 vers du SIMD PowerPC ou ARM.