Développer avec l’IA

Le Global Performance Tuner de TensorRT 11.1 optimise les routes d'inférence des LLM

Le nouveau Global Performance Tuner de NVIDIA dans TensorRT 11.1 utilise plus de 200 paramètres du compilateur pour trouver des chemins d'inférence plus rapides tout en respectant les contraintes de précision.

Un cube en verre avec des circuits lumineux représentant des routes de construction optimisées, accompagné de notes.
Illustration générée pour cet article

Traduit automatiquement depuis l'original anglais.

NVIDIA a introduit le Global Performance Tuner dans TensorRT 11.1, une fonctionnalité conçue pour automatiser l'optimisation des performances des modèles d'apprentissage profond. Lancé fin 2026, cet outil permet aux développeurs de dépasser les stratégies de compilation par défaut uniques en explorant plusieurs configurations du compilateur. Il cible spécifiquement les défis complexes de planification rencontrés lors de l'inférence de grands modèles de langage (LLM) sur le matériel NVIDIA.

Ce qui s'est passé

L'innovation majeure réside dans la manière dont TensorRT représente désormais les stratégies de planification. Au lieu de dépendre d'un chemin de compilation unique et statique, le système traite les stratégies alternatives comme des routes de construction explicites et explorables. Chaque route est définie par une combinaison spécifique de paramètres du compilateur, qui sont des réglages contrôlant certains aspects du pipeline de compilation, tels que les décisions de fusion ou les chemins de génération de code. TensorRT 11.1 expose plus de 200 de ces paramètres ajustables, chacun disposant d'un ensemble fini de valeurs autorisées et d'une valeur par défaut.

Pour rendre cela accessible, NVIDIA a fourni des API C++ permettant aux développeurs d'appliquer des routes de construction fixes, d'inspecter la route actuelle et de découvrir l'espace de configuration complet. L'outil en ligne de commande trtexec implémente une boucle d'ajustement qui développe les expressions définies par l'utilisateur en routes de construction concrètes. Il construit et mesure chaque moteur candidat, écartant ceux qui plantent ou échouent aux vérifications de précision. Le système sélectionne ensuite le moteur admissible le plus rapide parmi les candidats restants. Cette implémentation Python est également prévue pour être incluse dans Torch-TensorRT 2.15.

Comment ça fonctionne

Le processus d'ajustement sépare l'optimisation des performances de la validation de la précision. Dans les compilateurs traditionnels, des optimisations agressives peuvent involontairement dégrader la précision du modèle, créant un compromis complexe entre vitesse et exactitude. Le Global Performance Tuner démêle ces préoccupations en traitant la précision comme une contrainte stricte et les performances comme critère de classement. Les utilisateurs définissent un seuil de tolérance de précision, et l'ajusteur filtre toute route de construction produisant des résultats hors de cette limite. Parmi les routes valides restantes, il sélectionne celle offrant la meilleure latence de bout en bout.

Cette approche repose sur un cadre mathématique où une route de construction est une composition de passes du compilateur. Par exemple, un paramètre binaire peut contrôler si une passe spécifique utilise une fusion horizontale ou verticale. Aucune stratégie n'est universellement supérieure ; le choix optimal dépend de l'architecture du modèle, des formes des tenseurs et du GPU cible. En testant systématiquement les combinaisons de ces paramètres, l'ajusteur identifie le chemin spécifique qui offre les meilleures performances pour un scénario de déploiement donné sans compromettre la qualité prédictive du modèle.

Détails clés

  • TensorRT 11.1 expose plus de 200 paramètres ajustables du compilateur via des API C++.
  • L'outil trtexec automatise la recherche, la construction et la mesure des moteurs candidats.
  • L'ajustement conscient de la précision filtre les candidats en fonction d'un seuil de tolérance défini par l'utilisateur avant de les classer par vitesse.
  • Les charges de travail évaluées ont montré des améliorations de performance comprises entre 1,14x et 1,63x par rapport aux paramètres par défaut.
  • Les routes de construction peuvent être inspectées et appliquées programmatiquement à l'aide de setBuildRoute et getBuildRoute.
  • Le processus d'ajustement prend en charge les recherches incrémentielles et reprenables à l'aide de fichiers cache.

Pourquoi c'est important

Pour les ingénieurs développant des produits IA, les paramètres de compilation par défaut laissent souvent passer des gains de performance significatifs. Une seule stratégie de planification ne peut pas tenir compte des caractéristiques structurelles diverses des différents réseaux neuronaux. En automatisant l'exploration de l'espace de configuration, le Global Performance Tuner permet aux équipes d'extraire un rendement maximal de leur matériel sans expérimentation manuelle et sujette aux erreurs. Cela est particulièrement critique pour les LLM, où de petites réductions de latence peuvent se traduire par des économies de coûts substantielles et une amélioration de l'expérience utilisateur à grande échelle.

De plus, la séparation explicite entre précision et performances réduit le risque de déployer des modèles optimisés qui dégradent silencieusement leur qualité. Les développeurs peuvent définir des limites de précision strictes à l'aide de jeux de données de référence (« golden datasets »), garantissant que les gains de vitesse ne se font pas au détriment de la fiabilité. Cette approche systématique remplace les conjectures heuristiques par des données mesurées, fournissant une méthode reproductible pour atteindre des performances d'inférence de niveau production.

Ce que vous pouvez faire

  • Utilisez l'indicateur --dryRun dans trtexec pour inspecter les routes de construction potentielles avant de lancer des constructions coûteuses.
  • Définissez des métriques de précision claires et des jeux de données de référence pour établir des seuils de tolérance appropriés pour votre modèle.
  • Adaptez votre stratégie de recherche à la taille de l'espace de configuration afin d'éviter des temps d'ajustement excessifs.
  • Activez l'ajustement incrémentiel avec --tuningCacheFile et --continue pour reprendre les recherches interrompues.
  • Relancez le processus d'ajustement chaque fois que vous modifiez le modèle, les formes d'entrée, le GPU cible ou la pile logicielle.
  • Examinez l'implémentation open-source de trtexec pour comprendre la boucle d'ajustement et l'étendre avec des stratégies personnalisées.
  • #tensorrt
  • #nvidia
  • #llm inference
  • #performance tuning
  • #compiler optimization

Outils de la Boutique Bytechap

$89

DocBento

Gestion documentaire auto-hébergée qui analyse chaque scan et répond avec des citations de pages.

Démo en ligne

Continuer la lecture

Tous les articles