NUMA-lokalitet påverkar acceleratorns matningshastighet eftersom värdförbehandling och överföringar går snabbare när CPU-trådar, minnessidor och enheten delar en närliggande väg.
I en hemm arbetsstation med flera socklar kan varje CPU-kärna adressera allt RAM, men åtkomstkostnaden är inte enhetlig. En GPU eller annan accelerator är vanligtvis ansluten via PCIe-rotkomplexet på en av socklarna. Om förbehandlingen körs på en annan nod och buffertarna allokeras där, kan data behöva färdas över sockelns sammankoppling innan den når enheten, vilket ökar belastningen och ger varierande latens.
NUMA gör avståndet till värdminnet mätbart
Ett NUMA-system delar upp processorer och minne i noder med olika åtkomstavstånd. Linux allokerar vanligtvis en sida på den nod som är lokal för den CPU där sidfelet först uppstår. Trådplaceringen under modellinläsning eller förberedelse av indata kan därför avgöra var stora buffertar faktiskt finns.
Dokumentationen om NUMA-minnespolicyer i Linux beskriver policyer för uppgifter, VMA, delat minne, bindning, preferens och interleaving. Den påpekar också att policyer främst påverkar sidor som allokeras efter att policyn har installerats, vilket gör initieringsordningen viktig. Denna skillnad är fortfarande viktig under realistiska förhållanden i hemmet.
För lokal inferens kan den kritiska sökvägen omfatta tokenisering, bildavkodning, tensorförberedelse, låsta buffertar och enhetsöverföringar. Fjärrplacering skapar en flaskhals på värdsidan även när acceleratorn själv rapporterar outnyttjad beräkningskapacitet. Mellanläget bör förbli synligt vid senare felsökning och granskning.
PCIe-topologin kopplar en accelerator till specifika CPU-noder
Den kortaste vägen mellan värd och enhet går normalt genom den CPU-sockel vars rotkomplex äger acceleratorn. Genom att binda arbetarens CPU-trådar och allokeringspolicy till det området kan bandbredden förbättras och variationen minska, särskilt när stora indata eller frekventa överföringar håller länken upptagen.
NVIDIA:s CUDA-vägledning om NUMA innehåller NUMA-rekommendationer och varnar för att automatisk balansering i vissa fall kan försämra GPU-program. Den rekommenderar att topologin inspekteras och att policyn justeras för den faktiska noden i stället för att man antar att vissa nodnummer är bäst.
Placering är ett grafproblem, inte en regel om att nod noll är snabbast. Den korrekta kopplingen beror på moderkortets ledningsdragning, IOMMU-konfigurationen, andra enheter och på om flera arbetare konkurrerar om samma minneskanaler eller PCIe-länkar.
Bindning kan vara skadlig när arbetsbelastningen använder mer än en nod
Att strikt binda minnet till en nod kan tömma dess bandbredd eller kapacitet medan andra noder står oanvända. En pipeline kan använda en GPU nära en sockel men även ett inspelningskort, en NVMe-enhet eller en andra accelerator nära en annan. En placering kan optimera överföringar men samtidigt fördröja förbehandling eller lagring.
NVIDIA:s projekt GPU-affinitet kopplar processer till CPU-kärnor som hör samman med GPU:er och påpekar att korrekt affinitet kan stabilisera prestandan. Dess flera lägen visar varför unika, sammanhängande, socket- och NUMA-omfattningar passar olika arbetsbelastningar med flera processer.
Felgränsen uppstår när ett riktmärke för en enda enhet generaliseras till hela servern. Binda inte blint på system med integrerat minne, maskiner med en enda nod eller pipelines som sträcker sig över flera enheter; mät latens från början till slut, bandbredd och konkurrens under den avsedda samtidigheten.
Benchmarka topologin, inte bara acceleratorn
Kartlägg CPU-noder, minneskapacitet, PCIe-enheter och acceleratorernas lokalitet. Kör samma inferensarbetsbelastning med standardplacering, bindning endast av CPU, bindning endast av minne samt matchad bindning av CPU och minne. Registrera bandbredd mellan värd och enhet, sidplacering, token per sekund och p95-latens.
Om modellfragment hämtas från nätverkslagring, som i nätverkslagring av modeller, ska lästiden från filer separeras från sidplacering och enhetsöverföring. Värm samma data inför varje körning och upprepa sedan med de avsedda samtidiga arbetarna för att synliggöra konkurrens om minneskanalerna.
Använd bindning endast om den matchade topologin förbättrar de upprepningsbara resultaten från början till slut utan att svälta någon annan tjänst på resurser. Om vinsterna försvinner efter uppvärmning eller vänds vid samtidighet, låt placeringen vara flexibel eller isolera endast de trådar och buffertar som är kritiska för överföringarna.
Teknik- och AI-hubb
Mer att läsa

Vilka faktorer avgör citeringsnoggrannheten för RAG i en hemkunskapsbas?
Lär dig varför en relevant källa fortfarande kan vara en felaktig hänvisning, vilka steg i pipelinen som styr stöd och täckning samt hur du...

Vilka funktioner möjliggör tillförlitlig JSON-utdata från en lokal LLM?
Se vilka funktioner som framtvingar JSON-syntax, vilka som skyddar semantisk korrekthet och hur du testar en lokal modell med olika scheman, promptar och felscenarier.

Lokal AI-dataproveniens: Varför varje svar behöver en spårbar källväg
Lär dig hur källsökvägar gör lokala AI-svar granskningsbara, varför enbart hänvisningar är ofullständiga och hur du kan testa härkomst genom uppdateringar och borttagningar.

