From 3b9727c1e1cb219049202c0b3f95ce98ef8ebe64 Mon Sep 17 00:00:00 2001 From: Hongsheng Liu Date: Mon, 17 Aug 2026 16:07:42 +0800 Subject: [PATCH] [Docs] Reorder no-AllGather architecture diagram Signed-off-by: Hongsheng Liu --- .../dlo/dlo_no_allgather_shared_host.svg | 205 +++++++++--------- 1 file changed, 107 insertions(+), 98 deletions(-) diff --git a/docs/design/figures/dlo/dlo_no_allgather_shared_host.svg b/docs/design/figures/dlo/dlo_no_allgather_shared_host.svg index 2217106db..da4b9ca67 100644 --- a/docs/design/figures/dlo/dlo_no_allgather_shared_host.svg +++ b/docs/design/figures/dlo/dlo_no_allgather_shared_host.svg @@ -1,6 +1,6 @@ No-AllGather DLO shared host weights and independent runtime orchestration - Two independently scheduled diffusion engines on one node map the same immutable runtime-cache weight pages. Each worker owns its mmap view, optional host registration, DLO hooks, streams, events, and two GPU device slots. Complete blocks move independently from the shared host pages to each GPU without a cross-engine DLO AllGather. TP1 is shown; tensor parallel deployments repeat one shared cache entry per TP coordinate. + An external orchestrator routes requests to two independently scheduled diffusion engines on one node. Each engine has its own loader, mmap view, DLO runtime hooks, streams, events, and GPU device slots. Both engines map the same immutable runtime-cache weight pages stored at the bottom of the diagram, without a cross-engine DLO AllGather. TP1 is shown; tensor parallel deployments repeat one shared cache entry per TP coordinate. @@ -35,16 +35,17 @@ .box-text { font: 500 10.5px system-ui, -apple-system, Segoe UI, sans-serif; fill: #475569; } .payload-title { font: 700 14px system-ui, -apple-system, Segoe UI, sans-serif; fill: #ffffff; } .payload-text { font: 500 11px system-ui, -apple-system, Segoe UI, sans-serif; fill: #ffffff; } - .slot-text { font: 700 10px system-ui, -apple-system, Segoe UI, sans-serif; fill: #ffffff; } - .slot-next-text { font: 700 10px system-ui, -apple-system, Segoe UI, sans-serif; fill: #166534; } + .slot-text { font: 700 9px system-ui, -apple-system, Segoe UI, sans-serif; fill: #ffffff; } + .slot-next-text { font: 700 9px system-ui, -apple-system, Segoe UI, sans-serif; fill: #166534; } .arrow-label { font: 600 10.5px system-ui, -apple-system, Segoe UI, sans-serif; fill: #475569; } .request-label { font: 600 10.5px system-ui, -apple-system, Segoe UI, sans-serif; fill: #6d28d9; } + .mapping-label { font: 600 10.5px system-ui, -apple-system, Segoe UI, sans-serif; fill: #b45309; } .no-title { font: 700 12px system-ui, -apple-system, Segoe UI, sans-serif; fill: #b91c1c; } .no-text { font: 500 10.5px system-ui, -apple-system, Segoe UI, sans-serif; fill: #7f1d1d; } .request-path { fill: none; stroke: #7c3aed; stroke-width: 2; marker-end: url(#request-arrow); } .mapping-path { fill: none; stroke: #d97706; stroke-width: 2; marker-end: url(#mapping-arrow); } .runtime-path { fill: none; stroke: #2563eb; stroke-width: 2; marker-end: url(#runtime-arrow); } - .control-path { fill: none; stroke: #2563eb; stroke-width: 1.5; stroke-dasharray: 4 3; marker-end: url(#runtime-arrow); } + .startup-path { fill: none; stroke: #94a3b8; stroke-width: 1.5; stroke-dasharray: 4 3; marker-end: url(#runtime-arrow); } @@ -53,122 +54,130 @@ No-AllGather DLO: one shared host payload, independent runtimes TP1 shown; TP>1 repeats this mapping once per TP coordinate, shared by equivalent workers across engines - + External router / orchestrator independent request placement · outside vLLM-Omni DLO - + - ONE NODE · SHARED PHYSICAL HOST MEMORY, PROCESS-LOCAL RUNTIMES + ONE NODE · PROCESS-LOCAL ENGINES OVER SHARED PHYSICAL HOST MEMORY - - SHARING SCOPE - TP1: one full cache entry - TP>1: one entry per TP coordinate - Equivalent engines reuse that entry; - different TP ranks never alias layouts. - - - NODE-LOCAL IMMUTABLE RUNTIME CACHE - - 1× physical runtime-weight payload - file-backed tensor pages shared by the OS page cache - Identity includes final layout + TP coordinate; engine and DP replica are excluded - - - WHAT STAYS PRIVATE - Per worker / process - mmap object and validation state - optional host registration - hooks, streams, events, GPU slots + + + request A + + request B - - Independent engine A - own request schedule · own DLO backend state + + Independent engine A + own request schedule · own DLO backend state - - STARTUP - ordinary loader - final transforms → publish / join + + STARTUP + ordinary loader + final transforms + publish / join + runtime cache - - HOST VIEW - mmap of shared pages - optional process-local registration + + HOST VIEW + mmap of shared + weight pages + process-local view + optional registration - - RUNTIME CONTROL - DLO backend + block hook - select · prefetch · repoint · rotate + + RUNTIME CONTROL + DLO backend + + block hook + select · prefetch + repoint · rotate - - GPU A · TWO DEVICE SLOTS - - SLOT 0 - current - - SLOT 1 - prefetch + + GPU A + two device slots + + SLOT 0 · NOW + + SLOT 1 · NEXT + + + + - - Independent engine B - own request schedule · own DLO backend state + + Independent engine B + own request schedule · own DLO backend state - - STARTUP - ordinary loader - final transforms → publish / join + + STARTUP + ordinary loader + final transforms + publish / join + runtime cache - - HOST VIEW - mmap of shared pages - optional process-local registration + + HOST VIEW + mmap of shared + weight pages + process-local view + optional registration - - RUNTIME CONTROL - DLO backend + block hook - select · prefetch · repoint · rotate + + RUNTIME CONTROL + DLO backend + + block hook + select · prefetch + repoint · rotate - - GPU B · TWO DEVICE SLOTS - - SLOT 0 - current - - SLOT 1 - prefetch + + GPU B + two device slots + + SLOT 0 · NOW + + SLOT 1 · NEXT - - - request A - - request B + + + - + + + + + No cross-engine DLO AllGather + shared host pages do not couple request order, progress, or failure domains + Ordinary TP / SP model collectives, when configured, remain inside each engine - - same pages - - same pages + + + same pages + + same pages - - - tensor views - - full-block H2D + + + SHARING SCOPE + TP1: one full cache entry + TP>1: one entry per TP coordinate + Equivalent engines reuse that entry; + different TP ranks never alias layouts. - - tensor views - - full-block H2D + + NODE-LOCAL IMMUTABLE RUNTIME CACHE + + 1× physical runtime-weight payload + file-backed tensor pages shared by the OS page cache + Identity includes final layout + TP coordinate; engine and DP replica are excluded - Ordinary TP / SP model collectives, when configured, remain inside each engine - - - - No cross-engine DLO AllGather - shared host pages do not couple request order, progress, or failure domains + + WHAT STAYS PRIVATE + Per worker / process + mmap object and validation state + optional host registration + hooks, streams, events, GPU slots