Canaux mémoire et bande passante : peupler correctementMemory channels and bandwidth: populating correctly

Deux serveurs dotés de la même quantité de mémoire peuvent afficher des performances très différentes selon la façon dont les barrettes sont réparties. Le contrôleur mémoire lit en parallèle sur plusieurs canaux : n'en peupler qu'une partie divise mécaniquement la bande passante disponible, quelle que soit la capacité totale installée.Two servers holding the same amount of memory can perform very differently depending on how the modules are distributed. The memory controller reads in parallel across several channels: populating only some of them mechanically divides the available bandwidth, whatever the total capacity installed.

Le parallélisme des canauxChannel parallelism

Chaque canal mémoire est un chemin indépendant entre le processeur et ses barrettes. Le contrôleur les exploité simultanément et entrelace les accès, si bien que la bande passante théorique est proportionnelle au nombre de canaux effectivement peuplés. Une plateforme à huit canaux dont seuls quatre sont utilisés perd donc environ la moitié de sa bande passante, même si la capacité totale reste confortable.Each memory channel is an independent path between the processor and its modules. The controller uses them simultaneously and interleaves accesses, so theoretical bandwidth is proportional to the number of channels actually populated. An eight-channel platform with only four in use therefore loses roughly half its bandwidth, even if total capacity remains comfortable.

  • La bande passante suit le nombre de canaux peuplés
  • Peupler tous les canaux avant d'ajouter une seconde barrette par canal
  • Des modules de plus petite capacité mais mieux répartis sont préférables
  • La matrice de peuplement du constructeur fait foi
  • Bandwidth follows the number of populated channels
  • Fill every channel before adding a second module per channel
  • Smaller modules better distributed are preferable
  • The vendor population matrix is authoritative

Les charges limitées par la mémoireMemory-bound workloads

Le calcul scientifique, la simulation, l'analytique en mémoire et l'inférence de modèles sur processeur passent le plus clair de leur temps à attendre la mémoire plutôt qu'à calculer. Sur ces charges, ajouter des cœurs ne sert à rien si la bande passante ne suit pas : les cœurs supplémentaires se contentent d'attendre. La bande passante par cœur devient alors le vrai critère de dimensionnement.Scientific computing, simulation, in-memory analytics and CPU model inference spend most of their time waiting on memory rather than actually computing. On such workloads, adding cores achieves nothing if bandwidth does not follow: the extra cores simply wait their turn. Bandwidth per core then becomes the real sizing criterion.

  • HPC et simulation : bande passante souvent limitante
  • Inférence sur processeur : vitesse liée à la bande passante
  • Des cœurs supplémentaires n'aident pas si la mémoire sature
  • Raisonnez en bande passante par cœur, pas en capacité totale
  • HPC and simulation: bandwidth is often the limit
  • CPU inference: speed tied to memory bandwidth
  • Extra cores do not help when memory saturates
  • Think in bandwidth per core, not total capacity

NUMA et placement des processusNUMA and process placement

Sur une machine à plusieurs sockets ou à architecture en chiplets, la mémoire est attachée à un domaine précis. Un processus qui accède à de la mémoire rattachée à un autre domaine subit une latence supérieure et consomme de la bande passante d'interconnexion. Les hyperviseurs et les ordonnanceurs savent tenir compte de cette topologie, à condition que les machines virtuelles soient dimensionnées pour tenir dans un domaine. Reprendre le peuplement d'une machine existante coûte quelques barrettes et améliore parfois nettement les performances.On a multi-socket machine or a chiplet architecture, memory is attached to a specific domain. A process accessing memory belonging to another domain suffers higher latency and consumes interconnect bandwidth. Hypervisors and schedulers can account for that topology, provided virtual machines are sized to fit inside a single domain. Reworking the population of an existing machine costs a few modules and sometimes markedly improves performance.

  • La mémoire est rattachée à un domaine NUMA précis
  • Un accès distant coûte en latence et en interconnexion
  • Dimensionnez les machines virtuelles pour tenir dans un domaine
  • Peuplez les canaux de façon identique sur chaque socket
  • Memory is attached to a specific NUMA domain
  • A remote access costs latency and interconnect bandwidth
  • Size virtual machines to fit within one domain
  • Populate channels identically on each socket

Repères de configurationConfiguration guidance

Canaux peuplésPopulated channelsDéterminent la bande passante réellement disponible
Peuplement partielPartial populationRéduit la bande passante proportionnellement
Second module par canalSecond module per channelÀ ajouter seulement une fois tous les canaux peuplés
Charges concernéesAffected workloadsHPC, simulation, analytique, inférence sur processeur
NUMANUMALatence accrue sur les accès hors domaine
SymétrieSymmetryPeuplement identique recommandé sur tous les sockets

Repères indicatifs : la configuration finale est validée avec vous selon vos contraintes réelles (charge, budget, environnement).Indicative guidance: the final configuration is validated with you against your real constraints (workload, budget, environment).

Questions fréquentesFrequently asked questions

Sur une plateforme à huit canaux, huit modules plus petits l'emportent nettement : ils exploitent tous les canaux et doublent la bande passante disponible par rapport à quatre modules. Le seul argument en faveur des grosses barrettes est de conserver des slots libres pour une extension de capacité ultérieure.On an eight-channel platform, eight smaller modules win clearly: they use every channel and double the available bandwidth compared with four modules. The only argument for large modules is keeping slots free for a later capacity expansion.
Les outils système comme dmidecode sous Linux ou l'inventaire du contrôleur de gestion listent chaque emplacement avec son canal d'appartenance. Le manuel du serveur donne par ailleurs l'ordre de peuplement recommandé, qui n'est presque jamais l'ordre naturel des numéros de slots imprimés sur la carte.System tools such as dmidecode on Linux, or the management controller inventory, list every slot with the channel it belongs to. The server manual also gives the recommended population order, which is almost never the natural order of the slot numbers printed on the board.
Cela arrive. Ajouter un second module par canal augmente le nombre de rangs et peut faire baisser la fréquence mémoire d'un cran selon la plateforme. Un peuplement asymétrique désactive par ailleurs l'entrelacement optimal. La capacité gagnée compense généralement, mais l'effet mérite d'être connu avant l'opération.It happens. Adding a second module per channel raises the rank count and can drop the memory frequency one step depending on the platform. Asymmetric population also disables optimal interleaving. The capacity gained usually compensates, but the effect is worth knowing before the operation.

Un besoin précis à chiffrer ?A specific need to quote?

Décrivez votre contexte : nous revenons sous 24 à 72 heures avec une approche et un devis.Tell us your context: we come back within 24-72 hours with an approach and a quote.