Home Sciences et technologies Firefox AI Runtime boosté avec C ++ natif pour les gains de vitesse majeurs

Firefox AI Runtime boosté avec C ++ natif pour les gains de vitesse majeurs

0 comments 160 views

«` HTML

2025-08-29 20:15:00

Mozilla a suraliné IncendierCapacités AI en échangeant son backend WebAssembly (WASM) pour un C ++ natif plus rapide et natif ONNX Runtime. Cette décision offre une augmentation des performances de 2 à 10 fois pour les fonctionnalités d’apprentissage automatique sur les appareils, abandonnant le décalage de démarrage de Wasm et tirant parti des instructions spécifiques au matériel.

Les fonctionnalités de Firefox AI ont juste obtenu une mise à niveau de vitesse importante grâce à une refonte backend.

  • Mozilla a remplacé le backend WEBAssembly AI de Firefox par l’exécution native C ++ ONNX.
  • Cela augmente les performances des fonctionnalités AI par 2 à 10 fois.
  • Les problèmes clés abordés incluent JS / WasM sur la tête, le SIMD limité et les temps de démarrage lents.
  • Le changement est transparent pour les utilisateurs, avec un déploiement progressif à partir de Firefox 142.

Les ingénieurs de Mozilla ont considérablement accéléré l’exécution de Firefox AI en remplaçant son backend basé sur webassembly par une implémentation d’exécution native C ++ ONNX. Ce changement architectural fournit des gains de performances de 2 à 10 fois pour les caractéristiques d’apprentissage automatique sur les appareils, éliminant les frais généraux d’échauffement de WASM et en utilisant des instructions CPU spécifiques au matériel pour une exécution de modèle plus rapide.

Mozilla Tackles Wasm Pridacter

Auparavant, les fonctionnalités de Firefox AI comme Smart Tab Grouping et PDF.js Alt-Text se sont appuyées sur Transformers.js, qui a utilisé une version WebAssembly de Runtime ONNX. Cette configuration, tout en fournissant la portabilité, a souffert de plusieurs inconvénients:

  • JavaScript / Wasm Overhead: La nécessité de rassembler les données entre JavaScript et WASM a introduit des frais généraux significatifs.
  • SIMD limité: Le support SIMD de Wasm n’a pas été entièrement utilisé, ce qui entrave les performances sur les processeurs modernes.
  • Temps de démarrage lents: Les modules WASM nécessitent une compilation et une initialisation, conduisant à une latence notable, en particulier sur les départs à froid.

Pour répondre à ces limitations, Mozilla a opté pour une intégration directe de l’ONNX Runtime dans Firefox, en tirant parti de son API C ++ native. Cela impliquait une stratégie de migration soigneusement planifiée:

  1. Couche Webidl: Une couche WebIDL légère a été créée pour fournir une API cohérente pour interagir avec le backend d’exécution ONNX.
  2. Connexion transformateurs.js: Transformers.js était connecté au nouveau backend natif.

Cette approche rationalisée signifiait que le code au niveau des fonctionnalités est restée inchangée, toujours en exécutant avec un simple «  Await Pipeline (…) ‘Appelez. Pour gérer les tailles de construction, une version pré-compilée de l’ONNX Runtime est téléchargée à partir du système TaskCluster CI de Mozilla plutôt que d’être ajouté directement au référentiel. Cela a nécessité des correctifs mineurs en amont à ONNX pour la construction sans exception et RTTI, avec la configuration de construction optimisée pour un équilibre de vitesse et de taille binaire en utilisant «Minsizerel» et LTO.

Gains de performance quantifiables

La transition vers C ++ native a apporté des améliorations immédiates et mesurables pour les caractéristiques de Firefox AI:

  • Pdf.js alt-text: La latence pour le modèle d’image à texte est passé de 3,5 secondes à seulement 350 millisecondes sur le même matériel.
  • Groupe d’onglet Smart: Pour le modèle de sujet, la latence de démarrage à froid s’est améliorée de 1920,9 ms (WASM) à 532,2 ms (native ONNX). Le temps d’inférence chaud a également diminué de 31,4 ms à 19,2 ms.

Ce nouveau backend est déployé progressivement, en commençant par le regroupement de l’onglet intelligent dans Firefox 142.

Optimisations futures prévues

Avec l’accès direct à l’API C ++, Mozilla envisage d’autres optimisations:

  • Dequantizelinear multi-jetant: Un patch vise à paralléliser cette opération unique à travers les noyaux, promettant des accélérations presque linéaires.
  • Transposition matricielle optimisée: Le remplacement des boucles inefficaces par un schéma multi-thread et consacré au cache à l’aide de SIMD accélérera considérablement ce processus.
  • Cache graphique compilée: Pour les grands modèles, le temps de compilation du graphique de cinq secondes en cours de lancement sera éliminé en mettant en cache le graphique compilé.
  • Accélération du GPU: Le prochain objectif majeur est d’intégrer les backends ONNX accélérés par le GPU, une tâche complexe nécessitant un sable robuste pour une interaction matérielle sûre.

<

Leave a Comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.