Microsoft a mis à jour le plugin CUDA pour ONNX Runtime en introduisant une fonction qui permet d'exécuter certains modèles Mixture of Experts même lorsqu'ils ne tiennent pas entièrement en mémoire GPU. Le plugin CUDA 0.4.0, publié le 14 novembre, autorise le déplacement des experts les moins sollicités vers la mémoire centrale, tout en conservant sur la GPU ceux nécessaires au traitement. Cette fonction requiert ONNX Runtime 1.32.0.
Comment fonctionne l'offload CPU-GPU
Les modèles Mixture of Experts sont composés de plusieurs sous-réseaux spécialisés, appelés experts. Selon l'entrée, le système n'en active qu'une partie. La nouvelle fonction d'expert offload exploite cette architecture: les experts peuvent rester stockés en mémoire centrale et rejoindre la GPU lorsqu'ils sont requis, ce qui réduit la quantité de VRAM nécessaire pour maintenir le modèle entier sur l'accélérateur.
ONNX Runtime propose un mode automatique qui conserve les experts sur la GPU tant que l'espace le permet, puis bascule en exécution hybride si la mémoire est insuffisante. Un mode obligatoire est également disponible: il provoque l'échec de la création de session si le modèle ne peut pas être géré selon les exigences définies. La configuration s'effectue via les options de session, sans modifier le modèle lui-même.
Moins de VRAM, mais la latence doit être mesurée
Cette mise à jour peut élargir le nombre de configurations matérielles capables d'exécuter des modèles MoE compatibles. Cela ne signifie pas pour autant que chaque modèle peut fonctionner sur n'importe quelle GPU: la prise en charge concerne des nœuds et des formats spécifiques, notamment QMoE et les modèles quantifiés compatibles.
Le compromis sur les performances doit être vérifié au cas par cas. Déplacer une partie du traitement vers la CPU peut alléger la pression sur la mémoire graphique, mais les notes de publication n'indiquent pas de valeur unique pour l'éventuelle hausse de latence. Le résultat dépendra du modèle, de la quantification, de la CPU, de la mémoire centrale et de la GPU utilisée.
Prérequis: versions compatibles
Le plugin CUDA 0.4.0 est couplé à ONNX Runtime 1.32.0. Certaines fonctions, en particulier l'offload MoE, exigent les nouvelles capacités introduites dans le runtime principal. Microsoft recommande d'aligner les versions et signale que des différences dans les schémas d'opérateurs peuvent provoquer des exécutions incorrectes ou des arrêts inattendus.
Cette version inclut également la prise en charge des poids GGUF et block-packed, des noyaux quantifiés, ainsi que des optimisations pour les contextes longs et le décodage spéculatif. Pour les développeurs et les équipes qui déploient des modèles, l'apport central reste la possibilité de combiner CPU et GPU lorsque la mémoire vidéo constitue le facteur limitant. Le gain réel en capacité et en vitesse devra être évalué à partir de benchmarks conduits sur du matériel et des modèles concrets.
Sources: ONNX Runtime CUDA Plugin EP 0.4.0 · ONNX Runtime 1.32.0



