vllm-project/vllm-omni

[Feature]: Make diffusion worker process titles and log prefixes topology-aware

Offen

#6.297 geöffnet am 18.08.2026

 (3 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Python (1.067 Forks)github user discovery
diffusionenhancementhelp wanted

Repository-Metriken

Stars
 (4.990 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 7T 6h) (387 gemergte PRs in 30 T)

Beschreibung

🚀 The feature, motivation and pitch

Diffusion worker process titles currently expose only the global worker rank:

vLLM-Omni::DiffusionWorker-0
vLLM-Omni::DiffusionWorker-1
vLLM-Omni::DiffusionWorker-2
vLLM-Omni::DiffusionWorker-3

This makes workers visible in ps, htop, and tools such as nvidia-smi, but it does not identify which parallel groups each worker belongs to. The same four process names could represent DP=4, TP=4, SP=4, TP=2×CFG=2, or another topology.

The current title is assigned before the distributed groups are initialized:

https://github.com/vllm-project/vllm-omni/blob/main/vllm_omni/diffusion/worker/diffusion_worker.py

Diffusion model-parallel groups are later initialized with rank order tp-sp-pp-cfg-dp:

https://github.com/vllm-project/vllm-omni/blob/main/vllm_omni/diffusion/distributed/parallel_state.py

Upstream precedent

After model-parallel initialization, upstream vLLM reads the initialized process groups and updates both the process title and log prefix. For example:

VLLM::Worker_DP0_PP0_TP1_EP1

Implementation:

https://github.com/vllm-project/vllm/blob/main/vllm/v1/executor/multiproc_executor.py

Original upstream change:

https://github.com/vllm-project/vllm/pull/22205

vLLM-Omni PR #3602 introduced the current diffusion process title. Its follow-up discussion already noted that multi-DP diffusion deployments should adopt the upstream naming approach:

https://github.com/vllm-project/vllm-omni/pull/3602#issuecomment-4466904703

Proposed change

Refactor diffusion process-title construction into a shared helper that runs after initialize_model_parallel() and before model loading.

The helper should preserve the recognizable prefix and append each active parallel rank:

vLLM-Omni::DiffusionWorker_TP1
vLLM-Omni::DiffusionWorker_DP0_CFG1_TP1
vLLM-Omni::DiffusionWorker_DP1_PP0_SP1_CFG0_TP0

As in upstream vLLM, dimensions whose world size is 1 should be omitted.

At minimum, include:

  • data parallelism (DP)
  • pipeline parallelism (PP)
  • sequence parallelism (SP)
  • classifier-free-guidance parallelism (CFG)
  • tensor parallelism (TP)

Expert-parallel and HSDP/fully-sharded configurations should also remain uniquely identifiable when enabled.

Ranks should be read from the initialized process groups rather than recomputed from the global rank. The same topology identifier should be used for the worker log prefix where practical.

Use the upstream vllm.utils.system_utils.set_process_title helper with the vLLM-Omni prefix instead of importing setproctitle directly.

Cross-platform behavior

Process-title construction should be accelerator-neutral. CUDA, ROCm, Intel XPU, MUSA, and Ascend NPU diffusion workers share the common worker lifecycle, so the implementation must not depend on a vendor-specific API.

The title should be observable through ps/htop on supported Linux deployments. Accelerator-specific tools such as nvidia-smi may also display it where their process views expose OS titles.

Acceptance criteria

  • Titles are updated after distributed/model-parallel initialization and before model loading.
  • Every active DP/PP/SP/CFG/TP dimension appears with its local group rank.
  • Dimensions with world size 1 are omitted.
  • Supported EP/HSDP layouts still produce unambiguous worker identifiers.
  • The vLLM-Omni::DiffusionWorker prefix remains stable for existing reliability and diagnostic tooling.
  • Worker log prefixes use the same topology identifier.
  • Process-title handling is accelerator-neutral.
  • Missing process-title support remains a non-fatal no-op.
  • Titles remain reasonably readable in standard process-monitoring output.
  • There is no scheduling, communication, output, or performance behavior change.

Testing

Add CPU-friendly unit coverage for the title-building helper with mocked group sizes and ranks:

  • all parallel sizes equal to 1
  • TP-only
  • DP-only
  • TP × CFG
  • DP × SP × TP
  • applicable EP/HSDP configurations
  • unavailable process-title support

Add a Linux subprocess test that checks the resulting title through ps. Optional platform smoke tests may verify the corresponding accelerator monitoring tool when it exposes process names.

Alternatives

  1. Keep the global-rank-only title and manually derive topology from the deploy configuration. This is cumbersome during live debugging and incident response.
  2. Log the topology once during startup. This helps postmortem analysis but does not identify live processes in ps, htop, or accelerator monitoring tools.
  3. Recompute all dimensions from the global rank. This duplicates topology logic and may drift from the actual initialized process groups.

Additional context

The standard diffusion topology is:

world_size = DP × CFG × SP × PP × TP
rank order = TP-SP-PP-CFG-DP

The existing global-rank suffix identifies the worker but not its role within that topology.

A duplicate search found no issue specifically tracking topology-aware diffusion worker names. Open PR #5441 refactors stage process/client structure but does not implement this process-title change.

Before submitting a new issue...

  • Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

Contributor Guide