Sur les 32 Go de mémoire vive du système, 4 Go sont alloués de manière permanente dans le BIOS au processeur graphique intégré (iGPU) en tant que mémoire vidéo (VRAM). Cela a une incidence sur la manière dont les pilotes OpenCL signalent la mémoire à darktable :

  • Rusticl (Mesa) : Respecte strictement la limite imposée par le BIOS. Il n’affiche que les 4 Go comme mémoire maximale disponible. Par conséquent, darktable doit se contenter d’une mémoire limitée, ce qui entraîne un affichage en mosaïque (3×3) et des temps de traitement plus longs (9,43 s).
  • ROCm : Tire pleinement parti de l’architecture de mémoire unifiée (UMA). Il contourne la limite artificielle de 4 Go imposée par le BIOS et accède de manière flexible à la mémoire vive disponible du système (13,8 Go détectés). Cela permet à darktable de traiter des sections d’image plus volumineuses en une seule fois, ce qui réduit au minimum le découpage en mosaïque et améliore considérablement les performances (5,88 s).
L’attribut alt de cette image est vide, son nom de fichier est Bildschirmfoto_20260118_001626.webp.
L’attribut alt de cette image est vide, son nom de fichier est Bildschirmfoto_20260118_001739.webp.
L’attribut alt de cette image est vide, son nom de fichier est Bildschirmfoto_20260118_001850.webp.
L’attribut alt de cette image est vide, son nom de fichier est Bildschirmfoto_20260118_001920.webp.

Pourquoi est-ce important ?

L’APU utilisé est un AMD Ryzen AI 395+ Max équipé d’un iGPU 8060S, qui partage la mémoire avec le CPU (mémoire unifiée).

En temps normal, le CPU et le GPU se partagent la mémoire de manière intelligente, ce qui signifie que l’iGPU ne réserve que la quantité de mémoire dont il a besoin à un moment donné (dans la limite d’un plafond éventuel). Le reste de la mémoire est mis à la disposition du CPU.

Dans notre exemple, au moins 4 Go sont alloués à l’iGPU ; cette quantité est réservée de manière permanente. Il reste environ 28 Go de mémoire vive au CPU.

Si nous lançons l’exportation avec Rusticl, seuls les 4 Go sont détectés, alors que le système pourrait allouer davantage de mémoire à l’iGPU. Cela entraîne un effet de mosaïque : 🧩 denoiseprofile : 3×3 🧩 exposure : 1×1 🧩 atrous : 3×4, et le traitement est plus lent.

Nous lançons maintenant l’exportation avec ROCm. DT reçoit une notification du pilote indiquant qu’il peut utiliser jusqu’à 14 Go de mémoire. Bien que cela ne suffise pas tout à fait à éliminer complètement le mosaïquage, celui-ci est considérablement réduit : denoiseprofile : 2×1 🧩 atrous : 2×1, et le traitement est plus rapide.

Alors pourquoi ne pas simplement allouer davantage de mémoire à l’iGPU, par exemple 16 Go ? Avec la même quantité de mémoire, Rusticl est en réalité plus rapide que ROCm (dans cet exemple, ce n’est pas le cas pour tous les (i)GPU), mais le CPU ne disposerait alors que d’un maximum de 16 Go au lieu de 28 Go.

20 avril 2026