You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue tracks the broader roadmap for distributed multi-GPU support in QDP.
The goal is not only to make larger QDP states feasible on one machine, but also to establish a distributed foundation that can grow toward richer placement strategies, stronger communication backends, broader workflow support, multi-node execution, and performance hardening over time.
Roadmap Goal
Build a distributed GPU architecture for QDP that can evolve in stages while remaining understandable, maintainable, and extensible.
At a high level, this roadmap should enable QDP to:
handle workloads that exceed single-GPU limits
preserve a simple path for workloads that do not need distribution
fail clearly when a distributed request is invalid or infeasible
expose distributed state without forcing immediate gather/readback
support multiple workflows on top of a shared distributed foundation
evolve from a first single-node path toward true MPI-backed execution
Current Architecture Direction
The distributed runtime should be rank-local:
each rank owns a local DeviceMesh
each rank materializes only its local shards
scalar global coordination happens through CollectiveCommunicator
GPU-resident collectives are reserved behind DeviceCollectiveCommunicator
consumers can use zero-copy local shard views when they can consume GPU pointers directly
The roadmap keeps four concerns separate:
Planning: global placement, rank-local shard ownership, and memory feasibility.
Runtime: local shard materialization, normalization, and encoding.
Summary
This issue tracks the broader roadmap for distributed multi-GPU support in QDP.
The goal is not only to make larger QDP states feasible on one machine, but also to establish a distributed foundation that can grow toward richer placement strategies, stronger communication backends, broader workflow support, multi-node execution, and performance hardening over time.
Roadmap Goal
Build a distributed GPU architecture for QDP that can evolve in stages while remaining understandable, maintainable, and extensible.
At a high level, this roadmap should enable QDP to:
Current Architecture Direction
The distributed runtime should be rank-local:
DeviceMeshCollectiveCommunicatorDeviceCollectiveCommunicatorThe roadmap keeps four concerns separate:
collectives later.
gather/export contracts.
flowchart LR subgraph Rank0[Rank 0] R0M[local DeviceMesh] --> R0S[local shards] R0S --> R0N[local contribution] end subgraph Rank1[Rank 1] R1M[local DeviceMesh] --> R1S[local shards] R1S --> R1N[local contribution] end R0N --> AR[CollectiveCommunicator] R1N --> AR AR --> G[global result]Roadmap Stages
Stage 1. Rank-local single-node foundation
Add the first distributed amplitude foundation:
Tracked by #1295 and implemented by #1296.
Stage 2. True MPI communicator and launcher path
Add real MPI-backed distributed execution:
mpirun -n Nlaunch pathStage 3. CUDA-aware MPI / NCCL device collectives
Add GPU-resident communication backends where appropriate:
Stage 4. Better placement and communication behavior
Improve how distributed execution uses available hardware:
Stage 5. Distributed state usability
Make distributed state easier for the rest of QDP to consume:
Stage 6. Broader workflow support
Expand the distributed foundation beyond the first amplitude path:
Stage 7. Multi-node evolution and performance hardening
Extend beyond the initial single-node scope when the foundation is ready:
Non-Goals For Early Stages
The early stages should avoid promising: