Passer au contenu principal
Grâce à la quantification NVFP4, vLLM constitue la solution de mise en service polyvalente la plus performante sur DGX Spark. Elle offre un point de terminaison /v1 compatible avec OpenAI, une prise en charge native de SM121, ainsi que les débits annoncés par la communauté : entre 47 et 50 jetons par seconde pour Qwen3.5-35B-A3B, entre 15 et 20 jetons par seconde pour les modèles denses 70B, et environ 30 jetons par seconde pour les modèles MoE 120B. Cette page vous guide dans l’installation, le premier lancement et les paramètres essentiels.
Moteurs alternatifs. Certains membres de la communauté obtiennent de meilleurs résultats avec SGLang pour certaines configurations de modèles ; le moteur Atlas affirme offrir un gain de 2.8x par rapport à vLLM standard pour Qwen3.6-35B-A3B. Cette page traite toutefois de vLLM standard, car il bénéficie du plus large éventail de compatibilité avec les modèles et de la documentation la plus complète.

Prérequis

Avant de commencer, assurez-vous que votre DGX Spark répond à ces exigences :
  • Système d’exploitation : DGX OS (basé sur Ubuntu, Linux aarch64)
  • CUDA : 13.0 ou version ultérieure — les bibliothèques CUDA 12 échouent sur SM121
  • Python : 3.10 ou version ultérieure (pour l’installation via pip) ou Docker avec prise en charge ARM64
  • Mémoire : 128 Go de mémoire unifiée (valeur par défaut sur toutes les unités DGX Spark / GB10)
Vérifiez la version de CUDA :
Vérifiez que la GPU est bien détectée :
Vous devriez voir la GPU Blackwell GB10 affichant une capacité de 128 Go.
DGX Spark exige exclusivement CUDA 13.0. L’architecture SM121 ne prend pas en charge les bibliothèques CUDA 12. Si nvcc --version affiche CUDA 12.x, mettez à jour vos paquets DGX OS avant de continuer.

Installez vLLM

1

Procédez à l’installation de vLLM via pip

Sur DGX OS, la méthode la plus simple consiste à utiliser pip directement. vLLM fournit des modules ARM64 compatibles avec le processeur Grace.
Si vous souhaitez obtenir la version nocturne incluant les dernières corrections pour NVFP4 ou SM121 :
2

Vous pouvez également récupérer l’image Docker

Pour un déploiement en conteneur, téléchargez l’image compatible ARM64 :
Lancez l’application en activant l’accès à la GPU :
3

Confirmez que l’installation s’est déroulée correctement

Vérifiez que vLLM démarre et détecte bien la GPU.
Si cette commande affiche un numéro de version sans erreurs liées à CUDA, vous êtes prêt à procéder au déploiement.

Lancez votre premier modèle.

Commencez par un modèle MoE de 35B ; il est rapide, éprouvé et laisse suffisamment de mémoire disponible.
Cette commande démarre un serveur compatible OpenAI sur http://127.0.0.1:8000. Pour le tester :
Vous devriez obtenir une réponse en quelques secondes, avec un délai d’obtention du premier jeton d’environ 0.12 secondes.

Paramètres optimaux selon la taille du modèle.

Les paramètres les plus importants sur DGX Spark pour un modèle de 3 sont --gpu-memory-utilization, --max-model-len et --quantization. Voici des valeurs de départ testées :

35B Modèles MoE (Qwen3.5-35B-A3B, Qwen3.6-35B-A3B)

35B Les modèles MoE n’utilisent qu’environ 18 Go pour les poids, ce qui laisse une marge considérable pour le cache KV. Vous pouvez augmenter cette valeur jusqu’à max-model-len si vous avez besoin d’un contexte plus long.

70B Modèles denses

Les modèles denses 70B utilisent ~35 Go pour les poids en NVFP4. Conservez max-model-len à 8192 afin de laisser de la place au cache KV pour les requêtes simultanées. Selon les retours de la communauté, la concurrence multi-utilisateurs est limitée à 5-10 utilisateurs à cette taille.

120B Modèles MoE (Qwen3.5-122B-A10B, Nemotron-3-Super-120B)

120B Les modèles MoE requièrent environ 60 Go pour stocker leurs poids. La limite de contexte fixée à 8192 permet de maintenir la taille du cache KV sous contrôle. Pour une inférence effectuée par un seul utilisateur, on observe une vitesse d’environ 30 jetons par seconde.
Pour un réglage mémoire détaillé — notamment la taille du cache KV, les compromis liés à la taille des lots et l’--kv-cache-dtype fp8 — consultez le guide Réglage mémoire sur DGX Spark.

Recettes de configuration NVFP4

NVFP4 est le format de quantification recommandé pour DGX Spark. Il s’exécute nativement sur SM121 et réduit la taille du modèle de 75% sans nuire notablement à la qualité.

Utilisez un modèle déjà quantifié

NVIDIA met à disposition des checkpoints NVFP4 sur Hugging Face. Veillez à utiliser le préfixe nvidia/ :

Quantification en ligne lors du chargement

Si aucun checkpoint pré-quantifié n’est disponible, vLLM peut effectuer la quantification en temps réel à partir d’un modèle BF16.
Ce processus rallonge le temps de chargement (le modèle doit d’abord être quantifié en mémoire), mais il fonctionne avec toutes les architectures de modèles prises en charge par vLLM.

Alternative SGLang

Certains membres de la communauté préconisent l’utilisation de SGLang plutôt que de la version standard de vLLM pour des charges de travail DGX Spark spécifiques. SGLang s’exécute sur la même pile CUDA 13.0 et utilise les mêmes formats de modèles.
Il convient d’envisager SGLang si la configuration par défaut de vLLM ne répond pas à vos exigences de débit pour un modèle donné. Les options de configuration diffèrent ; consultez donc la documentation de SGLang pour connaître les paramètres propres à DGX Spark.

ARM64 and SM121 gotchas

Le processeur Grace (ARM64) et la carte graphique Blackwell (SM121) de DGX Spark présentent quelques particularités de plateforme qu’il est utile de connaître au préalable.
Sur les systèmes DGX Spark, le système devient inactif au lieu d’afficher une erreur de dépassement de mémoire CUDA. Dans les configurations dotées de mémoire unifiée, lorsque la taille du modèle et du cache KV excède la capacité mémoire disponible, le système se fige au lieu de signaler l’erreur. Il convient de commencer avec des valeurs gpu_memory_utilization prudentes (0.85 pour les modèles volumineux) et d’augmenter ces valeurs uniquement après avoir vérifié la stabilité du système.

Testez les performances de votre configuration.

Une fois le lancement effectué, vérifiez le débit via un test de benchmark rapide.
Comparez vos résultats au nombre de jetons par seconde attendu indiqué dans le tableau ci-dessus. Si le débit est nettement inférieur, assurez-vous que CUDA 13.0 est activé et qu’aucun autre processus ne consomme la mémoire GPU. Surveillez l’utilisation de la mémoire pendant le déploiement.

Exposez votre point de terminaison à l’aide de Tokios.

vLLM sur Spark met à votre disposition un point de terminaison local /v1. Pour y accéder depuis votre ordinateur portable, vos agents de codage ou vos collègues sans recourir à des tunnels SSH ou à des ports ouverts, exécutez le connecteur Tokios en parallèle de vLLM.
1

Démarrez vLLM sur Spark.

Lancez votre modèle selon les indications ci-dessus. Vérifiez qu’il répond correctement sur http://127.0.0.1:8000/v1.
2

Installez et associez le connecteur.

Sur l’interface Tokios dashboard, ouvrez la section Setup puis sélectionnez Start pairing afin d’obtenir une clé API. Sur Spark :
3

Enregistrez un déploiement.

Dans l’onglet Models, associez l’ID de modèle amont de vLLM à un nom de déploiement. Les clients utilisent ce nom de déploiement plutôt que l’ID de modèle amont.
Consultez le guide complet sur les cas d’usage de DGX Spark ici pour obtenir des exemples de configuration client.

Compatibilité des modèles

Vérifiez quels modèles peuvent tenir dans 128 Go et quelle est leur productivité attendue.

Réglage de la mémoire

Dimensionnement du cache KV, gestion du cache KV en précision flottante FP8 et paramètres de réglage pour des charges de travail de production.

Accès à distance à vLLM

Principaux schémas d’accès à distance à vLLM en dehors de DGX Spark.

Un ou deux systèmes Spark

Possibilité de déployer jusqu’à 405B modèles grâce à un second système Spark et au parallélisme tensoriel.