Developpez.com

Le Club des Développeurs et IT Pro

Microsoft Edge : Intel apporte le support de SIMD à Chakra

Le 2015-05-27 11:31:37, par Hinault Romaric, Responsable .NET
Microsoft accorde une attention particulière aux performances de son moteur JavaScript Chakra pour le navigateur Edge. La firme n’a pas hésité à collaborer avec d’autres entreprises de l’IT dans la conception de son navigateur, pour fournir une alternative sérieuse à Chrome, Firefox et Internet Explorer.

Après la prise en charge d’Asm.js, suite à une collaboration avec la fondation Mozilla, Microsoft annonce le support de SIMD (Single Instruction Multiple Data) dans Edge, fruit de la participation d’Intel au développement du navigateur.

Pour rappel, le projet SIMD exploite le parallélisme qu’offrent les instructions matérielles spécifiques SIMD, qui sont prises en charge dans la plupart des chipsets modernes indépendamment des types d’architecture.

SIMD permet d’accélérer les performances des applications grâce à l’utilisation du parallélisme pour traiter simultanément la même opération sur plusieurs éléments de données.

À titre d’exemple, l’addition de deux vecteurs de données ayant pour taille quatre sans recours à SIMD, donnera lieu à quatre opérations d’addition différentes. Avec SIMD, l’addition se fera en une seule instruction, comme l’illustre l’image ci-dessous.


SIMD est une technique très populaire pour accélérer le calcul dans les graphiques, l’audio, les codecs, la cryptographie, les simulations en physique et bien plus.

SIMD devrait être intégré dans une future spécification ECMAScript. Le projet avait été approuvé par le comité ECMA International TC39, responsable de la standardisation de la norme ECMAscript

La prise en charge de SIMD dans le navigateur Edge, combinée au support de Asm.js, permettra de booster considérablement le moteur JavaScript Chakra. Le navigateur sera capable d’offrir des performances proches du natif.

Le support de SIMD dans Edge peut être testé par les développeurs dans la dernière Preview de Windows 10. Pour cela, ils devront dans un premier temps activer Asm.js via l’onglet « À propos ». Microsoft leur a développé une page de démonstration.

SIMD est activé pour le code qui utilise Asm.js. Bien que les API JavaScript de SIMD puissent être exploités en dehors de Asm.js, Microsoft a choisi, pour l’instant, de coupler les deux technologies. Les avantages ne sont visibles pour l’instant que sur les dispositifs 64 bits.

Toutefois, Microsoft compte étendre le support de SIMD pour qu’il ne nécessite plus Asm.js et puisse fonctionner sur n’importe quel matériel.

En plus de SIMD, Intel a également contribué sur d’autres aspects de Microsoft Edge comme l’amélioration du temps de chargement des pages contenant de multiples éléments multimédias.

Source : blog Windows
  Discussion forum
205 commentaires
  • Uther
    Expert éminent sénior
    Envoyé par Chuck_Norris
    Sérieusement je doute qu'utiliser les instructions SIMD soit la solution royale pour accélérer l'exécution du code Javascript. Avant ça, je testerai le JIT pour compiler le Javascript en code totalement natif et l'exécuter ainsi en exploitant les pleines ressources du processeur sans surcouche ni VM.
    Justement c'est plus ou moins ce que permet asm.js (à la condition d'avoir un code Javascript particulier) et ce qui rend d'autant plus utile le SIMD.

    Envoyé par Chuck_Norris
    Bref, une nouveauté qui n'en est pas une, juste pour faire le buzz, ça commence à devenir fatigant. Si Edge veut vraiment percer, qu'il apporte de véritables avantages à l'utilisateur plutôt que de communiquer sur une optimisation interne qui sera obscure pour 95% de ses utilisateurs.
    Bah personne n'a dit que SIMD est nouveau, ni que c'est MS qui en a eu l'idée d'autant plus que ça fait partie de la spec Javascript. Et oui ce n'est pas une optimisation prévue pour les utilisateurs, mais pour améliorer les capacités des développeur particulièrement dans une appli web lourde en calculs.

    Je n'ai vu dire nulle part que ça allait chambouler la vie de qui que ce soit. Microsoft communique juste de manière tout a fait normale sur ses nouveautés, comme il en a intérêt s'il veut qu'elles soit utilisées
  • Urubu
    Candidat au Club
    Bin ça servira principalement pour emscripten, le compilateur C++ -> java utilise massivement asm.js et les perfs sont excellentes.
    Sur mon moteur 3D, je ne perd que "50%" de CPU par rapport à une version desktop.
  • dlandelle
    Membre du Club
    J'ai vu du SIMD depuis longtemps 1988 (CRAY) 1992 (i860) 1994 (CNAPS) 1996 (MMX) 2012 (CUDA).
    Ce n'est pas une révolution.
    On se fait bien chier à coder.

    Avant de parler d'optimisation, il faudrait déjà que :
    1) ça fonctionne
    2) on identifie ce qui rame, et pourquoi (profiling)
    3) qu'on explique ce qu'on va gagner

    Mon premier browser était Mosaic en 1993, et ça fonctionnait bien sur du html super simple sur un 486 ;-)

    4) pourquoi n'arrive-t-on plus à browser le web correctement ?

    Le contenu mis en ligne avec plein de publicités vidéo et du spyware n'aide pas. Je pense qu'il faut surtout rationaliser (w3c) et limiter les appétits des producteurs de contenu.

    Et de manière générale, il existe plein de super produits (opensource ou pas) qui avec le temps fonctionnent de moins en moins bien, pour finir par ne plus fonctionner du tout, pour nous occuper et nous vendre (ou nous donner) autre chose.

    Ce perpétuel recommencement est là pour nous occuper, avec une bande de tricheurs qui tirent les ficelles avec des dollars ;-)
  • Chuck_Norris
    Membre émérite
    Sérieusement je doute qu'utiliser les instructions SIMD soit la solution royale pour accélérer l'exécution du code Javascript. Avant ça, je testerai le JIT pour compiler le Javascript en code totalement natif et l'exécuter ainsi en exploitant les pleines ressources du processeur sans surcouche ni VM. Quand on y sera, alors on pourra éventuellement envisager le SIMD même si je vois difficilement l'intérêt pour un langage Javascript (le SIMD ayant été conçu pour optimiser le calcul matriciel essentiellement utilisé pour du rendu 3D ou l'encodage/décodage)... Le retour du MMX, vendu à l'époque par Intel comme solution miracle, encore mieux que le Pentium III qui "permettait d'accélérer Internet" comme osait affirmer Intel sans rougir de honte.

    Bref, une nouveauté qui n'en est pas une, juste pour faire le buzz, ça commence à devenir fatigant. Si Edge veut vraiment percer, qu'il apporte de véritables avantages à l'utilisateur plutôt que de communiquer sur une optimisation interne qui sera obscure pour 95% de ses utilisateurs.