NEON, Tegra, Flash et WebM : explications
Après notre passage au MWC, nous avons pu discuter avec quelques constructeurs de l'intérêt du jeu d'instructions SIMD « Neon » et de son intégration dans les puces ARM actuelles. Expliquons.
NEON, c'est quoi ?
NEON (alias MPE, Media Processing Engine) est un jeu d'instructions SIMD — Single Input Multiple Data — destiné aux puces ARM. En simplifiant, le SIMD permet d'appliquer une instruction sur plusieurs données à la fois, ce qui permet d'accélérer certains traitements de façon importante, comme le décodage vidéo. Un exemple de jeux d'instructions SIMD est le SSE, proposé en diverses versions dans les processeurs x86 depuis une dizaine d'années. NEON est généralement intégré dans les puces ARM de type ARMv7 : les Cortex A8, les Cortex A9, le Scorpion de Qualcomm, utilisent tous NEON. Tous ? Non. Tegra 2, le SoC de NVIDIA, n'intègre pas NEON.
L'intérêt de NEON
Dans la pratique, NEON est très utilisé. Les raisons sont multiples, mais une est intéressante : les instructions SIMD sont utilisées pour pallier les faiblesses de la FPU des Cortex A8. En effet, si le Cortex A9 a une unité à peu près correcte au niveau des performances, celle du très utilisé Cortex A8 est par contre très lente. La raison principale est qu'elle n'est pas pipeliné, ce qui limite très fortement le nombre d'instructions exécutées par cycle. Dans les faits, NEON est donc utilisé pour du décodage vidéo ou de l'affichage 2D (le SIMD est très efficace pour filtrer une image) mais aussi pour remplacer la FPU classique. La société ARM nous a par exemple expliqué que les routines de décodage de WebM, le format vidéo de Google, contenaient plus de 10 000 lignes de code utilisant NEON. Et l'implémentation Android de Flash 10.1 nécessite aussi NEON pour fonctionner.
Le problème de NVIDIA
Le dilemme de NVIDIA a été le suivant sur Tegra 2 : intégrer NEON, qui augmente la taille du core d'environ 30 %, ou s'en passer et optimiser certains logiciels pour Tegra 2 et la FPU du Cortex A9, au détriment de la compatibilité. C'est le second choix qui a été fait, et NVIDIA a dû travailler avec Adobe pour effectuer certaines parties du décodage sur la carte graphique dans Flash pour Android, mais la société a visiblement changé d'avis depuis. En effet, « Tegra 3 », qui porte encore le nom de code Kal-El, sera compatible NEON, c'est une des petites différences entre la puce actuelle et son successeur. La taille du core devrait donc augmenter, mais les performances, dans certains cas, être meilleures. Point intéressant, nous avons rencontré NVIDIA avant la présentation de Kal-El et le responsable nous a bien indiqué que le rapport place/intérêt de NEON rendait son utilisation caduque...
Reste que le raisonnement original de NVIDIA se tient : la société pousse les développeurs à utiliser les fonctions de décodage vidéo du GPU et pour des calculs en flottant, la FPU du Cortex A9 est plus performante que NEON. Mais, comme souvent dans l'informatique la rétrocompatibilité gagne, même si elle implique quelques sacrifices.
- Carte graphique,
- Processeur,
- Nvidia,
- NEON ,
- flash ,
- tegra
- Mageia, une nouvelle distribution Linux en alpha
- Doom sur une calculatrice
- La fin des tablettes
- Le « retour » de MemoRight dans les SSD
- Dans le petit monde des GPU, il y a... Vivante
- Pas (encore) de 25 nm pour Mushkin
- BenQ XL2410T : un 24" 120Hz pour joueurs
- LightPeak sur de nouveaux MacBook Pro demain ?
- Transcend JetFlash 560 : une clé USB design
- Le SDK Kinect for Windows officialisé
- Le supercalculateur chinois 300 TFLOPS à venir
- Le CPU z196 d’IBM atteint les 5,2 GHz
- La feuille de route de Windows 8 dévoilée
- TDJ : Cideko Air Keyboard, NZXT Phantom
- Flash sur Android 3.0 : pas tout de suite...
- Des premiers cartes mères Z68
- MSI croit toujours aux netbooks
- L’IEEE 802.15.6 pour concurrencer le Bluetooth






Donc les Tegra2 sont a éviter car ils ne seront pas compatible avec les applications Android qui utilisent NEON ?
Non, pas réellement, y a toujours une couche de compatibilité vu qu'Android tourne pas que sur ARMv7, mais ça peut poser des problèmes de perfs dans certains cas
merci pour l'info