Index

Savoir

Faire

Miscellaneous

To vectorise or not to vectorise ?

 

But : appréhender la performance supplémentaire que l'on peut obtenir grâce aux instructions vectorielles du processeur G4

Raison : grâce à un kit de développement en langage C à la fois simple et performant, les instructions vectorielles du G4 sont utilisables à un coût de développement qui peut être raisonnable ; reste à savoir quel bénéfice on peut en retirer

Moyens : utilisation de benchmarks testant ce point spéficique du processeur

Résultats : sur à la fois des calculs en 8 bits et en 32 bits, la performance moyenne obtenue sur des données sortant du cache premier niveau est la suivante :


Indice de performance à fréquence égale
(barre plus longue = meilleure performance)
(
cliquez ici pour avoir le détail de chaque test)

Conclusions : l'accélération peut atteindre des facteurs d'une dizaine de fois, voire plus, mais seulement si les données tiennent dans le cache. De manière plus réaliste, les gains sont aisément de 2 sur d'importantes quantités de données 8 bits, mais retombent sur un relativement maigre 1.3 sur du flottant 32 bits. Des gains potentiellement intéressants, mais à contre-balancer avec les implications qu'induit un recodage en vectoriel (perte de la portabilité et/ou diminution de la performance sur des processeurs ne possédant pas ces instructions vectorielles).