Apple nous vend encore du rêve avec l'auto vectorisation...
J'avais un doute mais après quelques tests c'est confirmé. Ayant pour habitude d'optimiser certaines portions de code critiques avec des instructions SSE, je me suis amusé à tester la vectorisation automatique de boucles dispo avec LLVM 5.0.
Les résultats sont sans appel: gain zéro.
Je ne suis d'ailleurs pas le seul à constater la chose:
http://www.phoronix.com/scan.php?page=news_item&px=MTIxNjM
Alors quand je lis ce genre de choses sur la toile, cela me laisse perplexe...
Using these optimized instructions, Apple has seen a boost in execution speed of apps ranging from 15 to 30 percent. The LLVM compiler also better supports SIMD (single instruction, multiple data) instructions such as ARM's NEON and Intel's AVX2, which is in Intel's new Haswell CPU. The SIMD support enables the compiler to implement an autovectorizer, an optimization technique that translates certain compute-intensive loops into SIMD instruction sequences that operate on multiple chunks of data (instead of one) with each loop iteration. Depending upon the code, Apple saw performance boosts ranging from 1.5x to 7.9x.
Il faudra qu'on m'explique le facteur 8x au passage. Dans le meilleurs des cas, expérience à l'appui, on s'approche d'un facteur 4x. Ce qui est assez logique puisque les opérations arithmétiques sont exécutées par 4.
Au moins avec GCC, on savait que ça marchait pas...
Réponses
Pourquoi tu dis "encore" ? Tu penses à Maverick ?
Parce que moi, Maverick, je l'ai installé sur des machines pas trop vieilles. Résultat, les utilisateurs se plaignent que ça rame...
Alors forcément, quand on nous dit qu'il est optimisé...
Non, je pensais à GCC où l'option d'auto vectorisation était déjà présente alors qu'il n'y avait rien derrière.