La localité NUMA modifie le débit d’alimentation de l’accélérateur, car le prétraitement et les transferts côté hôte sont plus rapides lorsque les threads du processeur, les pages mémoire et le périphérique partagent un chemin proche.
Dans une station de travail domestique à plusieurs sockets, chaque cœur de processeur peut accéder à toute la RAM, mais le coût d’accès n’est pas uniforme. Un GPU ou un autre accélérateur est généralement connecté via le complexe racine PCIe d’un socket. Si le prétraitement s’exécute sur un autre nœud et que les tampons y sont alloués, les données peuvent traverser l’interconnexion entre sockets avant d’atteindre le périphérique, ce qui ajoute de la contention et une latence variable.
NUMA rend observable la distance par rapport à la mémoire hôte
Un système NUMA répartit les processeurs et la mémoire entre des nœuds présentant différentes distances d’accès. Linux alloue généralement une page sur le nœud local du processeur qui provoque sa première faute de page. Le placement des threads lors du chargement du modèle ou de la préparation des entrées peut donc déterminer l’emplacement physique des grands tampons.
La documentation Linux sur les politiques de mémoire NUMA décrit les politiques de tâche, de VMA, de mémoire partagée, d’attachement, de préférence et d’entrelacement. Elle précise également que les politiques concernent principalement les pages allouées après leur activation, ce qui rend l’ordre d’initialisation important. Cette distinction reste importante dans des conditions réalistes d’utilisation domestique.
Pour l’inférence locale, le chemin critique peut inclure la tokenisation, le décodage d’images, la préparation des tenseurs, les tampons épinglés et les transferts vers le périphérique. Un placement distant ajoute un goulot d’étranglement côté hôte, même lorsque l’accélérateur signale une capacité de calcul inutilisée. L’état intermédiaire doit rester visible lors des diagnostics et des vérifications ultérieurs.
La topologie PCIe relie un accélérateur à certains nœuds de processeur
Le chemin hôte-périphérique le plus court passe normalement par le socket du processeur dont le complexe racine contrôle l’accélérateur. L’association des threads du processeur utilisés par le processus et de la politique d’allocation à cette zone peut améliorer la bande passante et réduire les variations, en particulier lorsque de grandes entrées ou des transferts fréquents sollicitent fortement la liaison.
Les recommandations NUMA de NVIDIA incluent des conseils sur NUMA et avertissent que l’équilibrage automatique peut dégrader les applications GPU dans certains cas. Elles recommandent d’examiner la topologie et d’adapter la politique au nœud réel plutôt que de supposer que les numéros de nœud suffisent.
Le placement est un problème de graphe, et non une règle selon laquelle le nœud zéro serait le plus rapide. L’association correcte dépend du câblage de la carte mère, de la configuration de l’IOMMU, des autres périphériques et de la concurrence éventuelle de plusieurs processus pour les mêmes canaux mémoire ou liaisons PCIe.
La liaison peut nuire lorsque la charge utilise plusieurs nœuds
Attacher strictement la mémoire à un seul nœud peut épuiser sa bande passante ou sa capacité tandis que les autres nœuds restent inactifs. Un pipeline peut utiliser un GPU proche d’un socket, mais aussi une carte d’acquisition, un périphérique NVMe ou un second accélérateur proche d’un autre. Un placement peut optimiser les transferts tout en ralentissant le prétraitement ou le stockage.
Le projet GPU affinity de NVIDIA associe les processus aux cœurs de processeur liés aux GPU et indique qu’une affinité correcte peut stabiliser les performances. Ses différents modes illustrent pourquoi les portées unique, contiguë, par socket et NUMA conviennent à des charges de travail multiprocessus différentes.
La limite d’échec consiste à généraliser à l’ensemble du serveur les résultats d’une référence sur un seul périphérique. N’appliquez pas de liaison à l’aveugle sur les systèmes à mémoire intégrée, les machines à nœud unique ou les pipelines répartis entre plusieurs périphériques ; mesurez la latence de bout en bout, la bande passante et la contention avec le niveau de concurrence prévu.
Évaluez la topologie, pas seulement l’accélérateur
Cartographiez les nœuds de processeur, la capacité mémoire, les périphériques PCIe et la localité des accélérateurs. Exécutez la même charge d’inférence avec le placement par défaut, une liaison limitée au processeur, une liaison limitée à la mémoire, puis une liaison coordonnée du processeur et de la mémoire. Relevez la bande passante hôte-périphérique, le placement des pages, le nombre de jetons par seconde et la latence p95.
Si les fragments de modèle proviennent d’un stockage réseau, comme dans le stockage réseau des modèles, séparez le temps de lecture des fichiers du placement des pages et du transfert vers le périphérique. Préchargez les mêmes données pour chaque exécution, puis répétez le test avec le nombre de processus simultanés prévu afin de révéler la contention des canaux mémoire.
N’adoptez la liaison que si la topologie correspondante améliore de manière reproductible les résultats de bout en bout sans affamer un autre service. Si les gains disparaissent après la phase de préchauffage ou s’inversent en situation de concurrence, laissez le placement flexible ou isolez uniquement les threads et tampons critiques pour les transferts.
Centre Tech & IA
Plus à lire

Étalonnage du score de recherche privée : comment la similarité brute devient un indicateur de confiance exploitable
Découvrez pourquoi la similarité cosinus n’est pas un indicateur de confiance, comment les requêtes étiquetées calibrent les scores et comment surveiller les seuils lorsqu’un...

Mappage mémoire des fichiers de modèle : comment les pages partagées réduisent l’utilisation de RAM en double
Comprenez comment les pages mémoire mappées sont chargées en mémoire et partagées, pourquoi le RSS peut être trompeur et quels caches et tampons consomment...

Traces d’audit privés de l’IA : comment les journaux d’événements reconstituent les décisions des agents
Découvrez ce qu’une piste d’audit d’agent doit enregistrer, pourquoi les journaux ordinaires sont incomplets et comment rejouer un workflow privé sans exposer les données...

